Limits
What each account can do, what a publisher may send, and the sizes of everything the API accepts.
Account limits
New accounts start with conservative limits. An account is made trusted by hand, on request, once we know what you broadcast.
| Limit | New | Trusted | Error when reached |
|---|---|---|---|
| Streams live at once | 1 | 10 | publisher refused |
| Streams waiting to go live at once | 2 | 20 | limit_pending_streams |
| Streams created per hour | 10 | 100 | limit_creation_rate |
| Ingest hours per month | 20 | No cap (credit is the limit) | limit_ingest_hours |
Highest max_resolution | 720 | 1080 | limit_resolution |
| Longest stream | 4 hours | 24 hours | ends with duration_limit |
| Active API keys | 20 | 20 | limit_api_keys |
| Webhook endpoints | 5 | 5 | limit_webhook_endpoints |
What a publisher may send
| Limit | |
|---|---|
| Bitrate | 6 Mbps of video; the stream ends above 7.5 Mbps sustained, everything included, after a 20 s warning |
| Resolution | Within the declared max_resolution in either orientation, with 12% slack |
| Video tracks | One (simulcast is refused) |
| Codec | H.264 |
| Publishers per stream | One at a time |
Sizes
| Field | Limit |
|---|---|
name | 100 characters |
metadata | 2 KB of JSON |
Idempotency-Key | 1–255 characters, remembered for 24 hours |
Playback link lifetime (expires_in) | 60 seconds to 7 days |
| Recording download link | 60 seconds to 7 days, default 1 hour |
recording_retention_days | 1 to 3650, or null for no limit |
GET /v1/streams page | Up to 100 |
GET /v1/usage | Up to 90 days |
| Webhook delivery log | Kept 30 days |
Viewers
There is no cap on viewers. Delivery is paid per GB from your credit, and the credit is the real limit: when it reaches zero, live streams end. The CDN has its own protection against abuse, and requests to a single URL are rate limited per viewer.