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. Counts 1. |
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. |
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_embedcarrying 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.
Only calls you make through the API count. Searches your visitors run on a hosted search page, and indexing done by the Web Crawler on its own schedule, do not draw on this allowance.
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.