Rate limits

Quotas apply per API key and per brand, grouped as below. Over a quota the API answers RATE_LIMIT_EXCEEDED with a 429.

Requests are subject to quotas applied per API key and per brand, grouped as shown below. When a quota is exceeded, the API returns RATE_LIMIT_EXCEEDED; the response's details.retry_after_seconds indicates how long to wait before retrying, and details.scopes identifies the quota groups that were exceeded. The exact limit for each group is available in the dashboard.

Requests made with an API key

GroupScope (details.scopes)
Generalglobal
AI Analysisai_analysis
Data Recordsdata_records

Requests an AI client makes

GroupScope (details.scopes)
Generalmcp
AI Analysismcp.ai_analysis
Data Recordsmcp.data_records

Handling a 429

The error carries details.retry_after_seconds, which is how long to wait, and details.scopes, which names the groups that were hit. Every client retries a safe request on a 429 for you, honouring that wait. Writes are never retried, because the API publishes no idempotency key.

Reading usage.retrieve costs no quota, so an agent can check what is left before spending it.