Skip to main content
Errors use HTTP status codes and a JSON body with a single error object:

Codes

Reports that ask for too much

A report may compute at most 1000 rows. period_too_long is raised from the window and interval alone; too_many_groups after grouping. The message names what the request would produce and the ceiling:
Reports are never partial. A request either returns a complete answer or fails.

Rate limits

Each key may make 120 requests a minute. Requests without a valid key share 60 a minute per IP address. Every request counts as one, whatever its page size, so paging with limit=500 is the cheapest way to pull large ranges. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. A 429 also carries Retry-After. Both Reset and Retry-After count the seconds until the minute resets.

Unknown ids

Fetching an id that does not exist in the key’s workspace returns 404, including ids that exist in another workspace. The API never confirms the existence of data you cannot read.