On this page
Authentication
Create an API key under Account → API keys in the dashboard. Authenticated endpoints accept either of these headers:
X-API-Key: YOUR-API-KEYAuthorization: Bearer YOUR-API-KEYThe key is shown once when created. Store it securely. Send requests over HTTPS.
Rate limits
Limits apply per API key. Exceeding the limit returns HTTP 429.
| Plan | Requests / minute |
|---|---|
| Starter / Creator | 60 |
| IRL Pro / IRL Pro+ | 600 |
Responses & errors
| HTTP | Meaning |
|---|---|
200 / 201 | Successful request |
202 | Request accepted for processing |
400 | Invalid input; see response details |
401 | Missing or invalid API key |
404 | Resource not found |
409 | Operation conflicts with the current state |
429 | Too many requests |
500 | Server error; retry later |
Endpoints
POST /v1/scenes/switch
Switch the active scene in a running Cloud OBS session.
Example request body
{ "scene": "BRB" }GET /v1/destinations
Read your saved streaming destinations. Stream keys are not included in the response.
POST /v1/destinations
Save a streaming destination (up to 10 saved entries). The number of simultaneous outputs depends on your plan and streaming setup. Use the actual RTMP URL and stream key provided by your destination.
Example request body
{
"name": "My destination",
"platform": "custom",
"rtmp_url": "rtmp://YOUR-INGEST-HOST/live",
"stream_key": "YOUR-STREAM-KEY",
"enabled": true
}platform: twitch, youtube, kick, facebook, tiktok, instagram, custom
GET /v1/stats/live
Read a snapshot of your stream: bitrate, state and Cloud OBS activity.
POST /v1/clips
Request a clip from the running stream. duration_s: 5–300 seconds, default 30. A successful response may report a queued request; it does not always mean the clip is already available.
Example request body
{ "duration_s": 30, "title": "Stream highlight" }GET /v1/overlays
Read your overlays, configuration and assigned scenes.
PATCH /v1/overlays/:id
Update your overlay. All fields are optional. Config is merged at the top level: a supplied nested object replaces the previous object at that key.
Example request body
{
"config": { "fontSize": 22, "showAvatars": true },
"is_active": true,
"scene_names": ["Live", "BRB"]
}Need help with an integration?
Describe the endpoint, HTTP status and expected result in Discord. Remove API keys and stream keys before sharing examples.
Discord Support