Rate limits
Partner-backed routes use separate read and write budgets. Canonical aliases share those budgets with their compatibility routes.
| Budget | Default | Key |
|---|---|---|
| Partner reads | 120 requests per minute | Partner and credential |
| Partner writes | 30 requests per minute | Partner and credential |
| Public partner discovery | 120 requests per minute | Client IP |
| Procedural messages | 20 writes per rolling hour | Credential 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.