get
https://api-v2.pandavideo.com.br/lives/
Lists live streams in the account. Paginated with ?page=, ?limit=, and optional ?status= filter. The canonical response is { data, total, per_page, trial_limit_reached }; legacy formats (raw array, or { lives: [...] }) may also be returned.
Recent Requests
Log in to see full request history
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Loading…
GET /lives
Lists the live streams in your account. Results are paginated: use the page query parameter to fetch additional pages.
AuthorizationRequires a valid Panda API token sent in the
Authorizationheader (no Bearer prefix).
HTTP Method & Path
GET /lives
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) |
Query Parameters
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
page | integer | No | Page number for pagination. Defaults to 1. Use successive page values to fetch all lives when total > per_page. | min: 1, default: 1 |
limit | integer | No | Page size (lives per page). Defaults to 100. | min: 1, default: 100 |
status | string | No | Optional filter by live status. | enum: online, offline, canceled, finished, finished_imported |
Response
Success Response (200) — canonical format
{
"data": [
{
"id": "11111111-2222-3333-4444-555555555555",
"title": "My live stream",
"status": "offline",
"stream_key_id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"stream_key": "sk_live_xxxxx",
"rtmp": "rtmps://...ivs.us-east-1.amazonaws.com/app/",
"live_hls": "https://.../live.m3u8",
"live_player": "https://player.pandavideo.com.br/embed/?v=11111111-2222-3333-4444-555555555555",
"scheduled_at": null,
"started_at": null,
"ended_at": null,
"active_dvr": true,
"latency_type": "low",
"bitrate": ["360p", "720p"],
"folder_id": null,
"created_at": "2026-05-28T00:00:00.000Z"
}
],
"total": 1,
"per_page": 100,
"trial_limit_reached": false
}Response Schema
| Field | Type | Description |
|---|---|---|
data | array of objects | Page of LiveItem objects (same shape as the Create live response). |
total | integer | Total number of lives in the account. |
per_page | integer | Page size used by the API. |
trial_limit_reached | boolean | true when the trial plan's live limit has been reached. |
Heads up — response shape variations: the backend may also return the list in one of two legacy shapes:
- Raw array (oldest):
[ LiveItem, LiveItem, ... ]— no pagination metadata.liveskey (legacy):{ "lives": [ LiveItem, ... ], ... }When integrating, accept any of the three shapes:
const items = Array.isArray(resp) ? resp : (resp.data ?? resp.lives ?? [])
Error Responses
- 401 Unauthorized — Missing or invalid API token.
- 500 Internal Server Error — Server-side error.
Example Usage
cURL — list first page
curl -X GET \
'https://api-v2.pandavideo.com.br/lives?page=1' \
-H 'Authorization: your_api_token_here' \
-H 'Accept: application/json'cURL — filter by status
curl -X GET \
'https://api-v2.pandavideo.com.br/lives?page=1&status=online' \
-H 'Authorization: your_api_token_here' \
-H 'Accept: application/json'Fetching all pages (JavaScript)
async function fetchAllLives() {
let page = 1, all = [], total = 0, perPage = 100
while (true) {
const resp = await fetch(`/lives?page=${page}`, { headers: { Authorization: token } }).then(r => r.json())
const items = Array.isArray(resp) ? resp : (resp.data ?? resp.lives ?? [])
all.push(...items)
if (!Array.isArray(resp)) { total = resp.total ?? total; perPage = resp.per_page ?? perPage }
if (items.length < perPage || all.length >= total) break
page++
}
return all
}