Rate limits

A request counts against the same budget whether it arrives over REST or MCP. "API client" below means the OAuth client, not a client record.

LimitPerCovers
120 requests per rolling minuteAPI clientReads outside the computation domain
60 requests per rolling minuteAPI clientThe computation domain: the catalog, target-contract reads, batch and rollover execution, and saved-state scenarios
240 requests per rolling minutePrincipal, MCP onlyEvery MCP request after the bearer token is verified, including initialize, tool and resource listing, and notifications
30 attempts per rolling minuteAPI client (verified), across source IPs; per practitioner and workspace for delegated grantsToken minting
90 requests per rolling minuteSource IPPre-authentication work on REST and the OAuth endpoints, plus rejected MCP authentication attempts
500 requests per five minutesSource IPAll traffic

Delegated-user tokens (delegated access) draw on the read and computation budgets per practitioner and workspace rather than per application, so two hosts authorized by the same user share that user's allowance.

The source-IP budgets are raised for the published address ranges of interactive AI hosts, where many users share a few addresses: 1,000 per minute for pre-authentication work and 5,000 per five minutes for all traffic. On REST and the OAuth endpoints an independent budget of 240 per minute per presented bearer token also applies, wherever the token is sent from; both must pass.

Exhausting a budget is a 429. Token-minting exhaustion carries the OAuth error temporarily_unavailable; the MCP transport budget carries {"error": "rate_limit_exceeded"}; read or computation exhaustion inside an MCP tool call is a tool error with retry guidance rather than an HTTP status.

Filemark | Rate limits