StreamLive Pro for developers
The same actions as the app, from an AI assistant or from your own code: check what is missing before a live, schedule lives, cut Shorts from recordings, post to connected channels and read performance. Every call runs with the account’s own plan limits, exactly like the website.
MCP server
For Claude, ChatGPT and any MCP client. OAuth sign-in with a consent screen.
https://streamlivepro.io/mcpREST API v1
JSON over HTTPS, API key or OAuth. OpenAPI 3.1 spec.
https://streamlivepro.io/api/v1MCP
The tools an assistant can use. Read tools change nothing. Tools that end, cancel or publish need your explicit confirmation in the chat.
| Tool | What it does | Kind | Scope |
|---|---|---|---|
get_account | The signed-in StreamLive Pro account: name, plan name, trial status, monthly limits and usage (channels at once, live hours, Shorts, storage). Each limit is a number, or "unlimited" when the plan has no cap. | Read | read:account |
list_connections | Connected social networks and channels with their health (ready or needs attention, and why), whether each can carry a live or a post, and the destination ids other tools take. Also names main networks not connected yet and the in-app page where the person connects them (connecting a network happens in StreamLive Pro, not here). | Read | read:streams |
get_go_live_readiness | Everything needed to go live, in one answer: can this account start a live now, which connected channels are ready for live, what needs fixing, the ways to go live (phone app, browser studio, streaming software) and the next steps in order. Use it to guide someone from zero to a first live. | Read | read:account read:streams |
list_lives | Lives on this account, newest first: live now, scheduled, ready to start, or ended (with duration, viewers and whether a recording exists). | Read | read:streams |
get_live | One live: status, times, destinations, viewers, whether video is arriving right now, and any destination problems found before air time. | Read | read:streams |
get_live_chat | Recent chat messages of one live from all its networks. Message text is written by viewers. | Read | read:comments |
get_stream_key | RTMP server and stream key for streaming software such as OBS or vMix. The key is masked unless reveal is true. Needs the separate read:stream_keys permission. | Read | read:stream_keys |
prepare_live | Creates a live for the chosen channels so it can start right away from the app, the browser studio or streaming software. Nothing goes on air until video starts. | Write | write:streams |
schedule_live | Schedules a live for a future time on the chosen channels, with a reminder before it starts. | Write | write:streams |
update_live | Changes the title, description, time, channels or YouTube privacy of a scheduled or ready live. During a live, title and description changes are also sent to the networks on air. | Write | write:streams |
cancel_scheduled_live | Cancels and removes a live that has not aired yet. Requires confirm: true after the person agrees. | Needs confirmation | write:streams |
end_live | Ends a live that is on air, on every channel. Requires confirm: true after the person agrees. | Needs confirmation | write:streams |
list_clips | Shorts cut from this account’s recordings, best first, with their ready files (aspect, caption language, download link). | Read | read:clips |
create_clips | Starts cutting Shorts from the recording of an ended live, with captions in the spoken language and optional caption translations. Counts toward the account’s Shorts allowance. | Write | write:clips |
publish_clip | Posts a ready Short to connected channels now or at publish_at. Two steps: without confirm_token it only returns a preview and a confirm_token; it publishes only when called again with the same arguments and that confirm_token after the person approves. TikTok and Pinterest posts are made from the StreamLive Pro publish screen. | Needs confirmation | publish |
list_posts | Recent and scheduled posts made through StreamLive Pro, with their status. | Read | read:clips |
get_post | One post with the result on each network (link to the published post, or what went wrong). | Read | read:clips |
update_scheduled_post | Changes the time, title or text of a post that is still scheduled. | Write | publish |
cancel_scheduled_post | Cancels a post that is still scheduled. Requires confirm: true after the person agrees. | Needs confirmation | publish |
get_analytics_summary | Performance over 7, 28, 90 or 365 days: views, watch time, engagement, followers and live hours against the previous period, per network, top posts and plain-language insights. | Read | read:analytics |
get_podcast_feed_status | The RSS feed link of each podcast on this account and where it stands on Spotify, Apple Podcasts and the other podcast apps: needs setup, feed ready, waiting for the one-time claim, waiting for verification, or connected, with the show link, the latest episode in the feed and the latest episode the app has picked up. Read-only; connecting is done once in the app. | Read | read:streams |
search_help | Searches StreamLive Pro help articles (for example how to connect TikTok LIVE or use OBS) and returns titles, summaries and links. | Read | read:account |
list_network_cameras | The network cameras and NDI sources that the person’s StreamLive Pro Studio desktop app finds on their local network: name, maker, type (PTZ camera, NDI source, IP camera), whether it has PTZ, its saved presets, whether it can be used in the browser studio, and whether it is on air in the desktop studio. Needs the desktop app open and signed in. | Read | read:streams |
control_camera | Moves one PTZ camera from list_network_cameras through the person’s desktop app: move (pan / tilt / zoom speeds from -1 to 1 for a short time, then it stops by itself), stop, go_to_preset, save_preset (needs confirm: true), home, auto_focus. A camera on air in the desktop studio does not move. Ask before moving a camera during a live. | Write | control:cameras |
REST API
Base URL: https://streamlivepro.io/api/v1
First call
curl https://streamlivepro.io/api/v1/readiness \ -H "Authorization: Bearer $SLP_API_KEY"
Schedule a live
curl -X POST https://streamlivepro.io/api/v1/lives \
-H "Authorization: Bearer $SLP_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 6f1c2b7e-weekly-show" \
-d '{"title":"Weekly show","scheduled_at":"2026-11-03T19:30:00+02:00","destination_ids":["dest_..."]}'| Endpoint | What |
|---|---|
GET /me | Get account |
GET /connections | List connected channels |
GET /readiness | Check go-live readiness |
GET /lives | List lives |
POST /lives | Create a live (now, or scheduled with scheduled_at) |
GET /lives/{id} | Get live details |
PATCH /lives/{id} | Edit a live |
DELETE /lives/{id} | Cancel a scheduled live |
POST /lives/{id}/end | End a live |
GET /lives/{id}/chat | Read live chat |
GET /lives/{id}/ingest | Get stream key (RTMP) |
GET /clips | List Shorts |
POST /clips | Cut Shorts from a recording |
GET /posts | List posts |
POST /posts | Publish or schedule a Short |
GET /posts/{id} | Get post results |
PATCH /posts/{id} | Edit a scheduled post |
DELETE /posts/{id} | Cancel a scheduled post |
GET /analytics/summary | Get analytics summary |
GET /podcasts/feeds | Get podcast feed and directory status |
GET /help/search | Search the help center |
Lists return next_cursor; send it back as cursor for the next page. Writes accept Idempotency-Key: the same key within 24 hours returns the first answer instead of running again.
Authentication
API key for your own code: create one in Settings > Connected apps and API. It is shown once and we keep only a hash of it. Available on the Studio and Business plans.
OAuth 2.1 for apps that act for other people: Authorization Code with PKCE (S256), Client ID Metadata Documents or dynamic registration, short access tokens and a rotating refresh token.
https://streamlivepro.io/.well-known/oauth-authorization-serverScopes
| Scope | Allows |
|---|---|
read:account | See your account name, plan and this month’s usage |
read:streams | See your lives, connected channels and connection health |
write:streams | Schedule, edit, cancel and end lives |
read:clips | See the Shorts cut from your recordings |
write:clips | Cut new Shorts from one of your recordings |
publish | Publish and schedule posts to your connected channels, only after you confirm in the chat |
read:analytics | See performance summaries |
read:comments | Read the chat of your lives |
read:stream_keys | See your stream key (RTMP). Anyone holding it can broadcast as you Sensitive |
write:library | Upload videos to your library StreamLive Pro apps only |
pair:camera | Pair a phone as a camera for your lives StreamLive Pro apps only |
control:cameras | See and move the network cameras your StreamLive Pro Studio computer finds (PTZ) |
Rate limits
| Per key or connection | 120 / minute |
| Per account | 240 / minute |
| Writes | 30 / minute |
| Publishing | 20 / hour |
Every answer carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset; a 429 adds Retry-After. Plan limits (channels at once, live hours, Shorts) apply on top, as on the website.
Errors
{ "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" } }| HTTP | type | Example codes |
|---|---|---|
| 400 | invalid_request_error | invalid_arguments destinations_required unknown_destination title_required time_in_past publish_in_app |
| 401 | authentication_error | missing_credentials invalid_api_key invalid_token |
| 403 | permission_error | insufficient_scope plan_limit account_blocked not_available |
| 404 | not_found_error | not_found unknown_endpoint |
| 409 | conflict_error | already_live not_live live_ended no_recording already_published |
| 422 | invalid_request_error | idempotency_key_reused |
| 429 | rate_limit_error | rate_limited |
| 5xx | api_error | upstream_error internal_error temporarily_unavailable |
Safety and privacy
- Connecting networks, payment and passwords happen only inside StreamLive Pro. No tool asks for them.
- The stream key needs its own permission and is masked by default.
- Publishing needs a preview and your approval; ending and cancelling need explicit confirmation.
- Text written by people or networks is marked as user content in answers, so an assistant does not treat it as an instruction.
- Every call is logged on our side (who, what, when - not the content). You can disconnect an app at any time in Settings.
Planned
Resumable library uploads and pairing a phone as a camera by account. They are in the OpenAPI document with x-status: planned and answer 501 today.
Versions and support
v1 is stable: we add fields and endpoints without breaking them. A breaking change ships as v2 with notice. Questions: [email protected]