API Quota - Which Endpoints Are Metered

What the monthly allowance covers, and how calls are counted

API Quota

Your plan includes a monthly allowance of API requests to the metered endpoints listed below. Every other endpoint on the platform — creating an Opensolr Index, listing indexes, running a search, starting a crawl, reading logs, taking a backup — is not metered by this allowance and never counts against it. Those are bounded by the per-minute and per-hour rate limits instead, which are a separate thing.

The allowance is monthly. It resets on the first of the month and it does not roll over. You can see what you have used, at any time, on your API Usage page.

The metered endpoints

This is the live list. It is read from the platform at the moment this page is served, so it is never out of date with what the API actually enforces.

Endpoint How it is counted
embed One text or one search query turned into a vector. Counts 1.
batch_embed Up to 50 documents embedded in one call. Counts once per document, not once per call.
ai_summary One answer or summary written from your own documents. Counts 1, and only when it is not already cached.
image_to_text One picture read into search words: its text read by OCR (0.5) and what it shows worked out (0.5), 1 in all. With meaning_only, the description alone: 0.5. A picture answered from cache counts nothing.
embed_and_search A hybrid query embedded and run in one round trip. Counts 1, and only when the query vector is not already cached.
embed_opensolr_index Every document already in an index embedded in bulk. Counts once per document encoded.
image_clip One picture read into search words by what it shows, no OCR. Counts 0.5 per picture the model ran on; a cached picture counts nothing.
image_index Up to 5 pictures read into search words with CLIP, each with the vector of those words. Counts once per picture that needed the GPU, not once per call.
image_ocr Up to 5 pictures, each read for the text printed in it (receipts, labels, screenshots). Counts 0.5 per picture actually read; a picture read before is free.
doc_to_text Up to 5 documents (PDF, Word, RTF, OpenDocument, HTML, text) read into plain text; a PDF page by page, with the pictures inside it read by OCR. The text itself is free; each picture OCR actually reads counts 0.5. A document read before is free.

Full request and response documentation for each of these lives in the REST API Reference.

What counts as one request

One unit is one piece of work the platform actually performed for you. That distinction matters in three places:

  • Batch calls count per item, not per call. A batch_embed carrying 50 documents costs 50, because 50 documents were embedded. Counting it as 1 would let a single call consume an unbounded amount of work for free.
  • Cached answers are free. If the platform already holds the answer, no model runs, no upstream provider is called, and nothing is counted. Repeating an identical request costs you nothing.
  • Failures are free. A request that did not produce a usable result is not counted and is not cached, so a bad minute on our side never consumes your allowance.
  • Pictures count half. Reading the text printed in a picture (OCR) counts 0.5. Working out what a picture shows, its meaning, counts 0.5. A picture with no text in it gets both, so 1 in all. The plain text of a document costs nothing: only its pictures count. Halves add up until they make a whole request. On an Opensolr Photos index every photo counts 0.1, whatever is done with it. See it live on 33 test PDFs.

Searches your visitors run on a hosted search page never draw on this allowance. The Web Crawler does, for the work it hands to the AI: the vectors of the pages it indexes (1 per page whose vector is computed) and the meaning of pictures without text inside the PDFs it finds (0.5 each). The text it reads from pictures on its own servers is free.

Eligibility comes first

These endpoints require a plan that includes them. If your plan does not, the call is refused with 403 VECTOR_NOT_ALLOWED before any work is done and before anything is counted — there is nothing to meter on a plan that does not carry the feature. See the pricing page for which plans include it.

When you reach the ceiling

Once the month's allowance is spent, further calls to the metered endpoints are answered with 429 Too Many Requests and a body that tells you exactly where you stand:

{
  "status": false,
  "msg": "ERROR_AI_MONTHLY_QUOTA_EXCEEDED",
  "cap": 100000,
  "used": 100000,
  "requested": 50,
  "resets_at": "2026-10-01 00:00:00"
}

The response also carries a Retry-After header holding the number of seconds until the allowance resets. Nothing else on your account is affected: your indexes stay online, searches keep serving, and every non-metered endpoint keeps working normally.

Need a larger allowance? Ask us and we will quote it against the volume you actually need.