HTTP Response Codes
Asynchronous endpoints answer
202 Accepted — creating an export, for example, or requesting a test delivery of a scheduled report.
For 5xx responses, branch on error.code (see Internal Errors), not on the status: the same internal failure can surface under different 5xx statuses.
Error Response Format
All v4 errors follow a single envelope keyed undererror. There is no envelope-level meta (or _meta) key — validation field errors live inside error.details as {field, message} pairs:
error.details is omitted entirely (rather than emitted as null or []) when the failure is not field-scoped — for example, a 401 unauthorized or a 404 resource-not-found returns just {type, code, message}.
Error Types
Error Codes
Request Errors
Resource Errors
Logical Errors
Internal Errors
Rate limits
The analytics endpoints (/v4/analytics/*) are limited to 30 requests per minute per project. Over the limit you get 429 with too_many_requests and a Retry-After header; requests sent while you are limited extend the wait.