Updates an existing live stream. All body fields are optional. region, quality_package and save_vod are set at creation only and cannot be changed here.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
PUT /lives/{live_id}
{live_id}Updates an existing live stream. All body fields are optional — only the fields included in the request will be changed. Returns the updated live object.
AuthorizationRequires a valid Panda API token sent in the
Authorizationheader (no Bearer prefix).
Set at creation only.region,quality_packageandsave_vodcannot be changed withPUT /lives. To use different values, create another live.
HTTP Method & Path
PUT /lives/{live_id}
Base URL: https://api-v2.pandavideo.com.br
Authentication Requirements
| Security Scheme | Header | Note |
|---|---|---|
| API Key | Authorization | Panda API token (without Bearer prefix) |
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
Authorization | header | string | Yes | Panda API token (without Bearer prefix) |
Path Parameters
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
live_id | string (uuid) | Yes | ID of the live stream to update. | uuid |
Request Body
Content-Type: application/json
All fields are optional — only the fields included in the body will be updated.
Body Parameters
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
title | string | No | Updated title of the live stream. | min 3 chars |
scheduled_at | string | No | Updated scheduled start, with no timezone suffix. At most 30 days ahead. | e.g. 2026-09-20T14:30:00 |
bitrate | array of strings | No | Updated set of video qualities for adaptive playback. | 240p, 360p, 480p, 720p, 1080p, 2160p |
latency_type | string | No | Updated latency profile of the live stream. | enum: low (5-7s), default (15-20s), high (60-70s) |
active_dvr | boolean | No | Toggles DVR (allow viewers to rewind during the broadcast). | — |
folder_id | string (uuid) | No | Folder where the recorded video will be stored after the live ends. | uuid |
status | string | No | Override the live status. Typically used to cancel a scheduled live by sending "canceled". Other values are usually managed automatically. | enum: online, offline, canceled, finished, finished_imported |
{
"title": "Updated live title",
"scheduled_at": "2026-09-20T14:30:00",
"latency_type": "low",
"active_dvr": true
}
No timezone suffix. Send2026-09-20T14:30:00. A trailingZ(2026-09-20T14:30:00Z), whichtoISOString()always adds, is rejected. Scheduling is limited to 30 days ahead.
Heads up: the field isscheduled_at(notscheduled_time). To cancel a scheduled live, send{"status": "canceled"}.
Maximum quality is 720p. Values above it — the1080p/2160pentries ofbitrate— are accepted and silently reduced to 720p.
Response
Success Response (200)
Returns the updated live object:
{
"id": "{live_id}",
"title": "Updated live title",
"status": "offline",
"stream_key_id": "{stream_key_id}",
"stream_key": "{stream_key}",
"region": "us",
"quality_package": "hd",
"save_vod": true,
"ingest_endpoint": "rtmp://vz-{hash}.us.pandavideo.live/live/{stream_key}",
"ingest_hostname": "vz-{hash}.us.pandavideo.live",
"rtmp": "rtmp://vz-{hash}.us.pandavideo.live/live",
"playback_url": null,
"live_hls": "https://b-vz-{hash}.tv.pandavideo.com.br/{live_id}/playlist.m3u8.live",
"live_player": "https://player-vz-{hash}.tv.pandavideo.com.br/embed/live/?v={live_id}",
"scheduled_at": "2026-09-20T14:30:00",
"started_at": null,
"ended_at": null,
"vod_id": null,
"video_id": null,
"bitrate": ["360p", "480p", "720p"],
"active_dvr": true,
"latency_type": "low",
"folder_id": "{folder_id}",
"created_at": "2026-09-07T02:37:22.591Z"
}Response Schema
Same shape as the Create live response — see that page for the full field list, including ingest_endpoint, ingest_hostname, playback_url, region, quality_package, save_vod, video_id, view_metrics, config, chat_id and chat_status.
Live status values
| Status | Meaning | Final? |
|---|---|---|
provisioning | The live is being prepared — it does not accept the encoder yet. | No — moves to offline |
offline | Ready, waiting for the signal from your encoder. | No |
online | On air. | No |
finishing | End requested, still finalizing. | No — moves to finished |
finished | Ended. | Yes |
finished_imported | Ended, and the video of the recording has been created. | Yes |
expired | Became ready but no signal ever arrived — it never went on air. | No — see Regenerate live |
canceled | Canceled. | Yes |
Error Responses
- 400 Bad Request — Invalid body, or a field that cannot be updated (
region,quality_package,save_vod). - 401 Unauthorized — Missing or invalid API token.
- 404 Not Found — Live not found for the given
live_id. - 500 Internal Server Error — Server-side error.
Example Usage
cURL — update title and schedule
curl -X PUT \
'https://api-v2.pandavideo.com.br/lives/{live_id}' \
-H 'Authorization: {api_key}' \
-H 'Content-Type: application/json' \
-d '{
"title": "Updated live title",
"scheduled_at": "2026-09-20T14:30:00"
}'cURL — cancel a scheduled live
curl -X PUT \
'https://api-v2.pandavideo.com.br/lives/{live_id}' \
-H 'Authorization: {api_key}' \
-H 'Content-Type: application/json' \
-d '{
"status": "canceled"
}'