StreamLive Pro

My StreamLive Pro API call fails: error codes and fixes

StreamLive Pro API errors explained: invalid or expired key, missing permission, plan limit, 409 conflicts, 429 and 5xx, plus the older uppercase key codes.

Updated · 5 min read

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.

Symptom, cause, fix

Status and codeLikely causeFix
401 missing_credentialsNo Authorization header, or not in the form Bearer and the keySend Authorization: Bearer slp_...
401 invalid_api_keyA typo, a key that was revoked, or a value that is not a StreamLive Pro keyCopy the key again; if it was revoked, create a new one
401 expired_api_keyThe key passed its expiry dateCreate a new key in Settings, Security, Connected apps and API
401 invalid_tokenAn OAuth access token that expired or is not for this APIRefresh the token, or connect again
403 insufficient_scopeThe key lacks the permission this endpoint needsCreate a key with that permission; the endpoint table shows which
403 plan_limitAPI 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_blockedThe account is blockedWrite to support
403 not_availableThe API is not open to this account yetWrite to support
400 invalid_argumentsA field is missing, too long, of the wrong type, or unknownFix the field the message names
400 invalid_bodyThe body is not a JSON objectSend JSON with Content-Type: application/json
404 not_found / unknown_endpointThe id is not in this account, or the path does not existCheck the id prefix and the path in openapi.json
409 conflict codesThe state does not allow it nowRead the object again; see the list below
422 idempotency_key_reusedThe Idempotency-Key was used for a different requestUse a new key for each action
429 rate_limitedToo many calls in the windowWait Retry-After seconds
501 not_implementedA planned endpoint (uploads, camera pairing)Not available yet
500, 502, 503A problem on our side, or a service that did not answer in timeRetry with the same Idempotency-Key after a pause

Request codes you may meet

CodeMeaning
destinations_required, unknown_destination, too_many_destinationsNo destination, an id not in this account, or more than 30
destination_needs_attentionThe channel must be reconnected first: Reconnect a channel whose connection expired
not_live_capableThe channel cannot carry a live; Instagram and TikTok need a saved live key
publish_in_appTikTok, Pinterest and WhatsApp posts are made on the publish screen
youtube_privacy_requiredA YouTube destination needs public, unlisted or private
invalid_time, time_in_past, time_too_farNot 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_privacyA missing title, an empty change, a wrong id prefix, a wrong privacy value
unsupported_language, too_many_languagesCaption translation outside the 19 supported codes, or more than 3
streaming_software_not_includedThe stream key on the trial, which goes live from the browser studio
already_live, not_live, live_ended, has_historyChanging a live on air, ending one not on air, changing an ended one, cancelling one that aired (409)
no_recording, file_not_ready, key_unavailableNo recording to cut Shorts from, no ready file in that format, no key for that live (409)

Steps

  1. Read the status and the code. 401 is about the key itself; 403 about what the key or plan allows; 400 and 409 about the request.
  2. Test the key alone. Call GET /me. If that fails, the problem is the key or the plan, not your request.
  3. Check the key's permissions. A key carries the permissions that were ticked when it was created. If the one you need is missing, create a new key with it and revoke the old one.
  4. Check the plan. API keys are part of the Studio plan. If the plan changed, existing keys stop working with plan_limit until it is restored.
  5. Check the ids. Every id needs its prefix: live_, clip_, post_, dest_. Destination ids come from GET /connections.
  6. Look at the Request-Id. Keep it for support.

Older keys and uppercase codes

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.

When to contact support

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.

Frequently asked questions

Why does the StreamLive Pro API say invalid_api_key?

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.

What does insufficient_scope mean?

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.

My key worked yesterday and now returns plan_limit. Why?

API keys are part of the Studio plan. If the plan changed or ended, keys stop working until the plan includes them again.

Should I retry a 409?

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.

What should I send to support about an API error?

The request_id, the time, the method and path, and the status code. Never the key.

Keep reading

I cannot schedule: "You can schedule up to" a date

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-Key

StreamLive 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 list

Facebook 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 Pro

The 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
Mobile app Home Help Center Guides PrivacyTermsAccessibility