Skip to main content
Every workspace has usage limits based on its plan. There are two kinds:
  • Rate limits — how many requests you can make to certain endpoints within a time window. They reset as the window rolls over.
  • Usage quotas — caps on how much a workspace uses: the number of objects it ingests and the size of each one, and the number of questions it asks. These counts don’t reset with time, and deleting data doesn’t lower them; you upgrade.
Paid plans raise or remove most of these caps (see Paid plan limits), and workspaces created before limits were introduced are unaffected — except for a ceiling on ingest requests (120 per minute) that applies to every workspace.

Flex plan limits

Paid workspaces keep generous per-minute caps on the two query endpoints and the shared ingest ceiling. They are sized well above normal usage and exist to stop runaway retry loops, not to meter your traffic. Everything else — usage quotas, shared workspaces, snapshots, refresh — is uncapped.

Rate limits

The per-minute and per-hour endpoints above are request-rate limited per workspace. When you exceed one, the API returns 429 Too Many Requests with an RFC 9457 application/problem+json body and standard RateLimit-* headers:
Wait Retry-After seconds, then retry — ideally with exponential backoff and jitter for bursts of calls. RateLimit-Remaining tells you how many requests are left in the current window, so you can pace ahead of the limit.

Usage quotas

Ingestion is bounded by the object limit and the per-document size cap. These are checked when you push data and when connected sources sync, separately from the ingest rate limit above (which counts requests, not items), and — unlike rate limits — retrying won’t clear them. The object limit counts the distinct objects a workspace has ever ingested. An object is one item from one source — an email, a file, a message, or an item you push with its external_id — and it counts the first time it’s ingested. Sending it again, for example to update it, doesn’t count it again and is accepted even at the limit. Deleting it doesn’t take it back: the limit counts what you’ve brought in, not what you hold now. Because an ingest request can carry many items, the response tells you per item what happened. Partial acceptance — some items fit under the cap, some don’t. You get 200, and the over-cap items are listed in rejected (the rest are ingested normally):
Full rejection — nothing could be admitted (you’re at or over the cap). You get 402 Payment Required, and nothing is ingested:
Each rejected item’s resource identifies which cap it hit — documents for the object limit, or doc_size — in both the partial (200) and full (402) responses. A file upload is a single document, so a rejected upload always returns 402.
A 402 is not retryable the way a 429 is — the request didn’t fail transiently, your workspace is over its quota. Deleting data doesn’t give back object headroom; upgrade, then retry. An oversized document needs to be made smaller.

Asks

The ask allowance counts every question a workspace asks, ever: POST /v1/knowledge/ask, its streaming and async-job variants, and the MCP ask tools all draw on it. An ask counts when it’s made. One that fails to produce an answer — an error, or the notice that your data is still being processed — doesn’t count. Polling an async job is free. Once the allowance is used up, asks return 402 Payment Required:
Over MCP, the ask tools return an error result that says the same thing. The allowance never resets, so upgrade rather than retry.

Workspace limits

On the Flex plan you can own one shared workspace in addition to your personal workspace (see Workspaces). Creating another returns 422 Unprocessable Entity:

Checking your usage

Call GET /v1/usage/current to see where a workspace stands before you hit a limit. The entitlements block reports your plan, a meter per resource, and your rate-limit policies:
state is ok, approaching (≥ 80%), or exceeded. Poll this to show usage meters in your app and to back off before you’re rejected. A null limit means that resource or policy is uncapped for your plan: paid workspaces report null for the per-resource limits and a limit only on the ask, search, and ingest rate-limit policies; grandfathered workspaces carry a limit on ingest alone. The asks meter appears only on plans that cap asks.

Upgrading

Paid plans remove the usage quotas and workspace caps above and raise the query rate limits to 30 ask / 60 search per minute (ingest keeps its 120-per-minute ceiling) — see Paid plan limits. Upgrade from your workspace settings in mind.adapter.com.