StreamLive Pro

StreamLive Pro REST API reference: endpoints and fields

Every StreamLive Pro REST API endpoint under /api/v1 with its parameters, request fields and answer fields: lives, chat, stream keys, Shorts, posts, analytics.

Updated · 5 min read

The StreamLive Pro REST API runs the same operations as the ChatGPT and Claude tools, for your own code. The base address is https://streamlivepro.io/api/v1. You call it with an API key (Studio plan) as a Bearer token. This page lists every endpoint with its parameters and the fields it returns. Creating and protecting a key is in API keys for developers: create, use and revoke; error codes are in My StreamLive Pro API call fails: error codes and fixes.

The machine-readable description is at https://streamlivepro.io/api/v1/openapi.json. It marks the API as a private beta, so check it before you build.

Basics

A first call:


curl https://streamlivepro.io/api/v1/me -H "Authorization: Bearer slp_..."

Account and channels

Method and pathPermissionWhat you get
GET /meread:accountname, email, plan, on_trial, trial_days_left, can_start_live, streaming_software_allowed, limits (channels_at_once, live_hours_per_month, clips_per_period, storage_gb: a number, or a word instead of a number when the plan sets no cap), usage
GET /connectionsread:streamsconnections with network, account, status (ready or needs_attention), problem, can_go_live, live_needs_key, can_publish_here, destinations (id, name, kind); not_connected_main_networks; connect_url
GET /readinessread:account, read:streamsready_to_go_live, next_steps in order, ways_to_go_live

A connection can hold several destinations, for example a Facebook account with several Pages. Use the destination id, not the network name, in the calls below.

Lives

Method and pathPermissionParameters or body
GET /livesread:streamsstatus (live, scheduled, ready, ended), limit 1-50 (default 20), cursor from next_cursor
POST /liveswrite:streamstitle (1-200, required), destination_ids (1-30, required), description (up to 5,000), source (camera or encoder), youtube_privacy (public, unlisted, private), scheduled_at
GET /lives/{id}read:streamsnone
PATCH /lives/{id}write:streamsany of title, description, scheduled_at, destination_ids, youtube_privacy
DELETE /lives/{id}write:streamsnone; cancels a live that never aired
POST /lives/{id}/endwrite:streamsnone; ends a live on air on every channel
GET /lives/{id}/chatread:commentslimit 1-100 (default 50)
GET /lives/{id}/ingestread:stream_keysreveal=true to see the full key

POST /lives without scheduled_at prepares a live to start now; with scheduled_at it schedules it. Nothing goes on air until video arrives from the browser studio, the phone or an encoder.

A live in the answer has: id, title, description, status (live, scheduled, ready, ended), scheduled_at, started_at, ended_at, duration_seconds, privacy, destinations (id, network, network_name, name), peak_viewers, total_views, recording_available and links. GET /lives/{id} adds video_arriving and destination_problems before and during air time. PATCH adds updated, the list of fields that changed.

Rules the server applies: an ended live cannot be changed; during a live the time and the channels cannot change, while title and description changes are also sent to the networks; a live that already aired is not deleted. Chat messages carry network_name, author, text, from_moderator, from_you and at. The ingest answer carries rtmp_server, srt_url, stream_key (masked as the last four characters unless reveal=true) and revealed; on the trial it is refused, because streaming software is not included.


curl -X POST https://streamlivepro.io/api/v1/lives \
  -H "Authorization: Bearer slp_..." -H "Content-Type: application/json" \
  -H "Idempotency-Key: weekly-qa-2026-11-10" \
  -d '{"title":"Weekly Q&A","destination_ids":["dest_..."],"scheduled_at":"2026-11-10T20:00:00+02:00","source":"camera"}'

Shorts

Method and pathPermissionParameters or body
GET /clipsread:clipslive_id (optional), limit 1-50 (default 20)
POST /clipswrite:clipslive_id (required), translate_to: up to 3 language codes

POST /clips starts cutting Shorts from an ended live that has a recording, with captions in the spoken language. It counts toward the account's Shorts allowance. translate_to accepts he, en, ar, ru, es, fr, de, pt, it, yi, am, uk, tr, hi, zh, ja, ko, nl and pl. The answer says started; the Shorts appear in GET /clips when ready. Each Short has id, live_id, title, duration_seconds, score, status, created_at and files (aspect, caption_language, duration_seconds, download_url).

Posts

Method and pathPermissionParameters or body
GET /postsread:clipsstatus (scheduled, pending, processing, completed, failed, cancelled, partial), limit 1-50
POST /postspublishclip_id and destination_ids and title (1-100) required; description (up to 2,000), publish_at, youtube_privacy, aspect (for example 9:16), caption_language
GET /posts/{id}read:clipsnone; adds results per network
PATCH /posts/{id}publishany of publish_at, title, description, for a post that is still scheduled
DELETE /posts/{id}publishnone; cancels a scheduled post

POST /posts publishes at once, or at publish_at. Through the API there is no preview step: the request you send is the decision. youtube_privacy is required when a YouTube destination is included. TikTok, Pinterest and WhatsApp destinations are refused with publish_in_app; those posts are made on the publish screen. Per-network results carry network_name, destination, status, post_url and problem.

Analytics, podcast and help

Method and pathPermissionParameters
GET /analytics/summaryread:analyticsdays: 7, 28, 90 or 365 (default 28); network, for example youtube
GET /podcasts/feedsread:streamsnone
GET /help/searchread:accountq, 2 to 120 characters

The analytics answer has period_days, data_as_of, totals (views, watch_time_minutes, engagement, posts with current, previous and change_pct; followers; live_hours), networks, top_posts (up to 5), insights (up to 5) and networks_without_numbers. The podcast answer lists each show with feed_url, episodes_in_feed, latest_episode, readiness flags and a state per directory (needs_setup, feed_ready, waiting_for_claim, waiting_for_verification, connected).

Planned endpoints

POST /uploads, PUT /uploads/{id}/parts/{n}, POST /uploads/{id}/complete and POST /camera-pairings are listed as planned and answer 501 not_implemented today. Any other path answers 404 unknown_endpoint.

The same operations as assistant tools: StreamLive Pro MCP tools: full list for ChatGPT and Claude. What the stream key answer protects: Get your OBS stream key from ChatGPT or Claude. What the tools leave to the app: What ChatGPT and Claude cannot do in StreamLive Pro.

Limits

Rate limits and safe retries with Idempotency-Key are explained in API keys for developers: create, use and revoke. Your plan's limits apply to every call, exactly as on the website.

Frequently asked questions

What is the base URL of the StreamLive Pro API?

https://streamlivepro.io/api/v1, with an API key sent as a Bearer token.

How do I schedule a live through the API?

Send POST /lives with a title, destination ids from GET /connections and scheduled_at. Without scheduled_at the live is prepared to start now.

Does the API ask for confirmation before publishing?

No. POST /posts publishes as soon as it is accepted. Test with a scheduled post you can cancel.

Can I upload a video through the API?

Not yet. The upload endpoints are planned and answer 501.

Why is my request refused with publish_in_app?

TikTok, Pinterest and WhatsApp posts are made on the StreamLive Pro publish screen, not through the API.

Keep reading

What ChatGPT and Claude can access: permissions explained

Every permission ChatGPT or Claude can get on your StreamLive Pro account, what each one allows, which tools need it, which you can leave off, and how to change them.

What is MCP (Model Context Protocol)? A plain explanation

What MCP, the Model Context Protocol, means in plain words: servers, tools, OAuth and scopes, and how ChatGPT and Claude use it to work with StreamLive Pro.

StreamLive Pro MCP tools: full list for ChatGPT and Claude

All 24 StreamLive Pro MCP tools that ChatGPT and Claude can use: what each one does, which only read, which change things and which need your approval.

Webhooks for developers: events, signature and delivery

StreamLive Pro webhooks for developers: add an https address in Settings, receive stream.started and other events, and verify the HMAC-SHA256 signature in Node or Python.

Want to try it? 7-day trial, no credit card.

Start free
Mobile app Home Help Center Guides PrivacyTermsAccessibility