Skip to main content
Every status code the Read API returns is below, with what causes it and what you do about it.

Error shape

Every error is JSON with an error string:
/ads adds a stable code. /commerce-metrics and the cost-import routes add a stable reason. Branch on code or reason rather than the error text, which we reword.

Status codes

Never treat 503 from /ads or /commerce-metrics as zero spend or zero revenue. These endpoints fail loudly on purpose, so that a read you could not complete never lands in a report as a real number.

Rate limit

The limit counts requests, not rows. One /events request for 1000 rows costs the same as one /workspace request.

Parameter limits

We clamp a value above the maximum instead of returning 400, so an oversized limit still gives you a page of data.

Ingest limits

Event ingest runs on a different host, https://ingest.datalyr.com, and has its own limits. The ingest rate limit counts events, not requests. A batch of 50 events costs 50.

Verify a limit

Send 101 /v1/workspace requests inside one minute. Request 101 returns 429 and the header Retry-After: 60.

Next