Rate limits
Keyed calls are limited per account over a sliding 60-second window. Every metered call counts once, whether it was a cache hit, a live extraction or a miss. There is no daily cap and no concurrency cap; the monthly allowance of trusted reads is separate and enforced as a 402.
| Plan | Calls per minute |
|---|---|
| Free | 60 |
| Starter | 600 |
| Growth | 3,000 |
An account without an active subscription gets 60 calls per minute. report_outcome is not rate limited.
Response headers
Every keyed response from read_product, resolve_product, compare_products and brief_product carries:
x-ratelimit-limit: 600 x-ratelimit-remaining: 587 x-ratelimit-reset: 60
x-ratelimit-reset is in seconds, not a timestamp, and is the window length.
429 response
HTTP/1.1 429
retry-after: 60
{ "error": "rate_limited", "message": "Rate limit exceeded." }Wait retry-after seconds before retrying. On MCP, a keyed tools/call over the limit returns HTTP 429 with JSON-RPC error -32099 and the same headers.
x402 calls
MCP calls paid per call with x402 are not rate limited and do not use an account's quota: each one is paid on-chain before it runs.
