Skip to main content

Errors

Errors return a non-2xx status and a body with a stable, machine-readable code you can branch on (the message is for humans and may change):

Error codes

Any endpoint can return: Specific endpoints can also return:

Quotas

Your plan sets how many calls you can make per period. Each call is charged to one bucket.
  • Endpoints that need an extra permission draw from that permission’s own bucket if your plan puts a limit on it.
  • Every other call — and any of the above when your plan doesn’t limit that permission separately — draws from your account-wide base bucket.
All 5xx, 429, and 403 responses will not count against your quota. When a bucket quota is exceeded, calls return 429 with the code quota_exceeded until the period resets. Retry-After says how many seconds that is. Every response for a call charged to a limited bucket carries:

Rate limits

Separately from quotas, calls are limited per second. Going over returns 429 with the code rate_limited, even if your quota has calls left. These responses do not carry X-RateLimit-* headers, which describe quotas only.