Errors and limits
Every error is JSON:
{ "error": "invalid_tier", "detail": "tier must be standard_1080p or pro_4k" }| Status | error |
Meaning |
|---|---|---|
| 400 | invalid_body, missing_field, invalid_* |
The request is malformed; detail names the field |
| 401 | unauthenticated |
Missing, unknown or revoked key, or a suspended organization |
| 402 | cap_exceeded |
Your organization’s monthly cap is spent (only if one was set) |
| 402 | payment_failed |
Paying an invoice: the card was declined |
| 404 | not_found |
No such stream for this key |
| 409 | stream_ended |
The stream is over and cannot be started again |
| 409 | not_published_yet |
Live, but no video has arrived yet |
| 410 | recording_expired |
The recording is past its 30 days |
| 422 | idempotency_key_reused |
That Idempotency-Key was used for a different request |
| 429 | too_many_attempts |
Too many wrong access codes; see Retry-After |
| 429 | (no body) | More than 500 requests in a minute from one IP address; slow down |
| 5xx | internal, unavailable |
Ours; safe to retry |
start and end are idempotent; every 5xx is safe to retry.
Limits
Section titled “Limits”- A stream runs for at most 12 hours. Book a new one for anything longer.
- No webhooks. Poll
GET /v1/streams/{playback_id}for state changes. - Five restream destinations per stream, RTMPS only.
- No limit on streams on air at once; each is billed on its own. Send an
Idempotency-Keywhen booking so a retry is never a second stream. - List pages return at most 200 streams, with a cursor for the rest.
- 500 requests a minute from one IP address. Past that the API answers
429, with no body, until the rate falls back under the limit. A server that makes every call from one address should spread a large backfill out and back off on a429rather than retry at once.