Skip to content
unzoi docs

Limits and plans

Three limits. All three are visible on every response, so none of them has to be discovered by hitting it.

How they interact

They are checked in order, and each answers a different question:

LimitQuestionHit it and…
Rate How fast? 429. Transient — wait a second.
Quota How much this month? Either overage is billed, or 429 until the month resets.
Archive depth How far back? Nothing fails. Your window is narrowed and the response says so.

The third is the one to internalise, because it is the only one that changes your results rather than refusing your request. Fewer articles than you expected is a plan boundary you can read off the response, not coverage you have to guess at.

The headers

Every authenticated response carries all of them.

Header Meaning
x-plan-history-days How far back this plan may query. Absent means the full archive.
x-quota-limit Included requests this calendar month. Absent when unlimited.
x-quota-remaining Requests left in the monthly allowance.
x-quota-reset Seconds until the quota period resets.
x-quota-used Requests used this month, from the durable counters.
x-ratelimit-limit Requests per minute allowed by this plan.
x-ratelimit-remaining Requests left in the current minute.
x-ratelimit-reset Seconds the bucket refills over.

GET /account returns the same figures as a body, and account_status does the same over MCP.

Everything counts once

A request is a request whichever surface it came in on. A tools/call over MCP costs exactly what the equivalent REST call costs, and both draw on one allowance — there is no separate MCP budget, and no discount for either.

initialize and tools/list are not tool calls and are not billed as searches. Errors are billed: a request that returns 404 or a bad filter value still consumed a rate-limit token and origin work.