Rate limits

Partner-backed routes use separate read and write budgets. Canonical aliases share those budgets with their compatibility routes.

BudgetDefaultKey
Partner reads120 requests per minutePartner and credential
Partner writes30 requests per minutePartner and credential
Public partner discovery120 requests per minuteClient IP
Procedural messages20 writes per rolling hourCredential and case

Hosted PostgreSQL deployments share the request budgets across replicas. A service outage may produce quota refusals even before the ordinary budget is exhausted.

These are partner limits, not a universal account OAuth quota. Account operations also enforce their underlying route limits. The message quota is checked atomically when the message commits.

Handle a limit

Partner request throttling returns 429 with code: rate_limited and Retry-After in seconds. Message throttling uses message_rate_limit_exceeded. Wait for the returned interval when present; otherwise use exponential backoff with jitter. Bound retries and keep the same body and idempotency key for a mutation whose outcome is unknown.

Use webhooks and cursor polling to follow changes. Avoid polling each artifact separately. See errors for other status codes.