StreamLive Pro API errors explained: invalid or expired key, missing permission, plan limit, 409 conflicts, 429 and 5xx, plus the older uppercase key codes.
Most failed API calls come from the key, not the request: the key was mistyped, revoked or expired, it lacks the permission for that endpoint, or the account's plan no longer includes API keys. Every error from https://streamlivepro.io/api/v1 has the same shape, so you can read the type and code and fix the right thing. ChatGPT and Claude get the same codes and usually tell you the message in plain words.
{ "error": { "type": "permission_error", "code": "plan_limit",
"message": "The plan on this account allows up to 3 channels at once; 5 were chosen.",
"request_id": "req_...", "doc_url": "https://streamlivepro.io/developers#errors" } }
Some errors add info_url, a link to read more. The message is written for people, so log it as it is.
| Status and code | Likely cause | Fix |
|---|---|---|
| 401 missing_credentials | No Authorization header, or not in the form Bearer and the key | Send Authorization: Bearer slp_... |
| 401 invalid_api_key | A typo, a key that was revoked, or a value that is not a StreamLive Pro key | Copy the key again; if it was revoked, create a new one |
| 401 expired_api_key | The key passed its expiry date | Create a new key in Settings, Security, Connected apps and API |
| 401 invalid_token | An OAuth access token that expired or is not for this API | Refresh the token, or connect again |
| 403 insufficient_scope | The key lacks the permission this endpoint needs | Create a key with that permission; the endpoint table shows which |
| 403 plan_limit | API keys are not in the account's plan, or a plan limit was hit (channels at once, Shorts, trial) | Read the message; see /pricing?lang=en |
| 403 account_blocked | The account is blocked | Write to support |
| 403 not_available | The API is not open to this account yet | Write to support |
| 400 invalid_arguments | A field is missing, too long, of the wrong type, or unknown | Fix the field the message names |
| 400 invalid_body | The body is not a JSON object | Send JSON with Content-Type: application/json |
| 404 not_found / unknown_endpoint | The id is not in this account, or the path does not exist | Check the id prefix and the path in openapi.json |
| 409 conflict codes | The state does not allow it now | Read the object again; see the list below |
| 422 idempotency_key_reused | The Idempotency-Key was used for a different request | Use a new key for each action |
| 429 rate_limited | Too many calls in the window | Wait Retry-After seconds |
| 501 not_implemented | A planned endpoint (uploads, camera pairing) | Not available yet |
| 500, 502, 503 | A problem on our side, or a service that did not answer in time | Retry with the same Idempotency-Key after a pause |
| Code | Meaning |
|---|---|
| destinations_required, unknown_destination, too_many_destinations | No destination, an id not in this account, or more than 30 |
| destination_needs_attention | The channel must be reconnected first: Reconnect a channel whose connection expired |
| not_live_capable | The channel cannot carry a live; Instagram and TikTok need a saved live key |
| publish_in_app | TikTok, Pinterest and WhatsApp posts are made on the publish screen |
| youtube_privacy_required | A YouTube destination needs public, unlisted or private |
| invalid_time, time_in_past, time_too_far | Not ISO 8601 with a time zone, less than a minute ahead, or more than a year ahead |
| title_required, nothing_to_change, invalid_id, invalid_privacy | A missing title, an empty change, a wrong id prefix, a wrong privacy value |
| unsupported_language, too_many_languages | Caption translation outside the 19 supported codes, or more than 3 |
| streaming_software_not_included | The stream key on the trial, which goes live from the browser studio |
| already_live, not_live, live_ended, has_history | Changing a live on air, ending one not on air, changing an ended one, cancelling one that aired (409) |
| no_recording, file_not_ready, key_unavailable | No recording to cut Shorts from, no ready file in that format, no key for that live (409) |
Keys made before the current system start with sl_. When such a key calls the website's own routes directly instead of /api/v1, errors come with uppercase codes: API_KEY_INVALID, API_KEY_REVOKED and API_KEY_EXPIRED (401); ACCOUNT_BLOCKED; UPGRADE_REQUIRED, "API access requires the Studio plan" (403); SCOPE_INSUFFICIENT, "This API key is read-only"; API_KEY_SCOPE_PATH, "This endpoint is not available to API keys"; and API_KEY_NOT_ALLOWED for admin routes. The fix is the same as above, and the simplest path is to move to /api/v1 with a new slp_ key.
Write to [email protected] when you get 403 account_blocked or not_available, or when 500, 502 or 503 continue for more than a few minutes. Send the request_id, the time, the method and path, and the status. Never send the API key itself.
More: StreamLive Pro REST API reference: endpoints and fields, API keys for developers: create, use and revoke.
The key is mistyped, was revoked, or is not a StreamLive Pro key. Copy it again, or create a new key if it was revoked or lost.
The key does not have the permission that endpoint needs, for example read:stream_keys for the ingest endpoint. Create a key with that permission.
API keys are part of the Studio plan. If the plan changed or ended, keys stop working until the plan includes them again.
Not as it is. A 409 means the live or post is in a state that does not allow the action. Read it again and decide.
The request_id, the time, the method and path, and the status code. Never the key.
Scheduling a post or a live is refused: the date is past your trial or plan period, the account has no active plan, TikTok is ticked, or the time has passed.
API rate limits, retries and Idempotency-KeyStreamLive Pro API rate limits per key, per account, for writes and for publishing; the RateLimit headers, what to do on 429, and safe retries with Idempotency-Key.
My Facebook Page is not in the listFacebook Page missing after you connect Facebook? Usually it was not ticked on Facebook's approval screen. How to add it with Reconnect, and the other causes.
What ChatGPT and Claude cannot do in StreamLive ProThe limits of ChatGPT and Claude in StreamLive Pro, with the reason for each and what to do instead: connecting networks, TikTok posts, uploads, approvals and more.
Want to try it? 7-day trial, no credit card.
Start free