Rate limits and quotas
Partner API keys are rate limited per client. A limited call returns a RATE_LIMITED error in the tool result, with the seconds to wait. There are no RateLimit-* headers and no HTTP 429: a tool result travels inside the MCP transport, which carries no per-tool status.
| Fact | Value |
|---|---|
| Limit applies to | Each partner client (all its keys together) |
| Calls per minute | 60 by default |
| Calls per day | 5,000 by default; the day turns at midnight Sydney time |
| A refused call | Counts against the window, and is not billed |
| Subscribers | No per-call rate limit |
Limits are set per client and raised on request once usage is understood.
What a limited call returns
The tool result is an error envelope with retryable set to true and the seconds to wait:
{
"schema_version": "3.5",
"error": {
"code": "RATE_LIMITED",
"message": "This API key's client has used its calls for this minute (60 a minute, 5000 a day).",
"retryable": true,
"retry_after_seconds": 25
}
}
What this means for your code
- Back off for
retry_after_seconds, then retry. Do not retry sooner: a refused call still counts. - Spread work across the minute rather than sending bursts.
- Use one client per workload, so a busy workload cannot use another's calls.
Billing
Each call that returns an answer is billed once, to the AI Pro subscription that owns the key or connection, at the published price. A search that runs and finds no results is an answer. A call that returns an error (for example NOT_FOUND or TITLE_NOT_IN_FORCE), is refused, or fails is not billed. Prices are on the pricing page; for partners, see Usage and billing.