Skip to main content
Every REST endpoint shares the same authentication model, error format and rate-limit rules. This page is the reference for what happens when a request is refused and how to handle it in a production client.

Rate limits

“No fixed limit” still means you must behave well. Aggressive polling or parallel fan-out against the analytics endpoints can be throttled at the edge. Poll build status every 30 to 60 seconds and live stats every few seconds at most; if you need more, contact support.
When you exceed a limit the API returns 429 Too Many Requests with a Retry-After header (seconds). The read limit and the date-window ceiling apply to API-key callers. They are abuse brakes: 300 reads a minute is far above what an integration needs, and a 92-day window covers any report. To read a longer period, move the window and page through it. A wider window is refused up front with 400 VALIDATION_FAILED naming startDate and maxDays, before anything is queried.

Error response format

Every error is JSON with a human-readable message. Newer endpoints add a stable code you can branch on, and where useful a field naming what was wrong:
Always read message. Branch on code where present; treat it as optional on the older endpoints. There is no errors[] array or nested envelope.

Stable codes

HTTP status codes

Common causes

  • Required field omitted (fileUrl, projectId, buildId).
  • Wrong type or out-of-range value; enums are case-sensitive (H264, not h264).
  • A settings field that is not on the allow-list, such as region or allowedUsers.
  • Cross-field conflict: minBitrate above the stored maxBitrate, odd resX.
  • Webhook URL pointing at a private address.

Retry strategy

  • Retry on 429 (after Retry-After or the seconds in the message) and on 5xx, with exponential backoff and jitter.
  • Do not retry other 4xx responses; the request is wrong and retrying will not fix it.
  • Control actions are idempotent: repeating enable, disable or sessions/end after a timeout is safe. Repeating active-build re-queues distribution, which is harmless but wasteful. Repeating PATCH /settings with the same body is safe.