Última atualização
LIVE
Sessões de LIVE registradas, desempenho por criador e a fonte de vídeo da LIVE.
Toda operação se autentica com uma chave de API (Authorization: Bearer <key>) e os erros usam o envelope comum descrito em Erros. Gerado a partir do documento OpenAPI da API.
Obter o desempenho de LIVE de um criador
/v1/live/creators/{uid}/performanceUma linha por sessão registrada: duração, pico de espectadores, presentes, diamantes e presenteadores distintos.
Parâmetros de caminho
| Name | Type | Description |
|---|---|---|
uidRequired | string | Nome de usuário do criador sem @ (linh.live) ou ID numérico de usuário do TikTok. |
Parâmetros de query
| Name | Type | Description |
|---|---|---|
cursorOptional | string | Cursor opaco obtido do nextCursor da página anterior. |
limitOptional | integer | Linhas por página. Faixa 1–100. Default: 50 |
Requisição
curl "https://api.toktokdata.live/v1/live/creators/linh.live/performance" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Resposta
{ "data": { "items": [ { "sessionId": "f18eaa3e-a762-543d-9ea5-178271dc43f9", "sessionStartedAt": "2026-11-01T07:51:44.935Z", "creatorUniqueId": "linh.live", "roomKey": "room:linh.live", "durationSeconds": 7200, "peakViewerCount": 2000, "eventCount": 1000, "chatCount": 600, "giftCount": 80, "totalGiftDiamonds": 5000, "distinctGifterCount": 2 }, { "sessionId": "278f3a86-af07-5768-85d2-6dfff8efee7d", "sessionStartedAt": "2026-10-31T07:51:44.935Z", "creatorUniqueId": "linh.live", "roomKey": "room:linh.live", "durationSeconds": 7200, "peakViewerCount": 1000, "eventCount": 500, "chatCount": 300, "giftCount": 40, "totalGiftDiamonds": 2500, "distinctGifterCount": 2 } ], "nextCursor": null, "historyWindowDays": 365, "historyTruncated": false }, "provenance": { "observedAt": "2026-11-01T07:51:44.935Z", "freshness": "historical", "source": "platform_observed_live_stream", "sourceKind": "derived", "coverageStatus": "observed", "methodologyVersion": "live-history-v1", "window": null }}Erros
400Parâmetro ou corpo inválido;codeindica o problema.401Chave de API ausente ou desconhecida.402A carteira de créditos do espaço de trabalho não cobre a chamada;resetAtindica quando os créditos são renovados.403A chave não tem o escopo, ou o plano não inclui o recurso.429Taxa de requisições excedida; respeite oRetry-After.
Obter a fonte de vídeo da LIVE de um criador
/v1/live/creators/{uid}/playbackA URL de vídeo assinada e temporária da sala LIVE atual do criador. Seu player a carrega diretamente da CDN do TikTok (source: tiktok-cdn); a RoomScope nunca faz proxy do vídeo. Prefira hlsUrl; flvUrl é a fonte das salas que só oferecem FLV (reproduza com um motor MSE como o mpegts.js); com status: live, pelo menos uma das duas vem preenchida, e expiresAt indica quando essa URL deixa de funcionar. renditions costuma vir vazio. avatarUrl, followerCount e region são null quando desconhecidos. Outras respostas: status: offline (não está ao vivo), status: no_playback (ao vivo, mas o TikTok não expõe uma fonte reproduzível), 202 status: resolving (consulte a mesma URL de novo após o Retry-After), 503 collection_saturated ou live_playback_upstream_unavailable (tente de novo) e 503 live_playback_not_configured enquanto o recurso estiver desativado nesta implantação (não tente de novo). Exige o escopo live:stream, não live:read.
Parâmetros de caminho
| Name | Type | Description |
|---|---|---|
uidRequired | string | Nome de usuário do criador (linh.live); um @ no início é ignorado. |
Requisição
curl "https://api.toktokdata.live/v1/live/creators/linh.live/playback" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Resposta
{ "status": "live", "roomId": "7665709659185105682", "title": "Friday night karaoke", "nickname": "Linh", "hlsUrl": "https://pull-hls-l1-sg01.tiktokcdn.com/stage/stream-7665709727191485202_hd/index.m3u8?expire=1786024940&sign=ea92cabbf90993d50a0e3d50ee9ed526", "flvUrl": "https://pull-flv-l1-sg01.tiktokcdn.com/stage/stream-7665709727191485202_hd.flv?expire=1786024940&sign=ea92cabbf90993d50a0e3d50ee9ed526", "expiresAt": "2026-08-06T14:02:20.000Z", "startedAt": "2026-07-23T09:46:40.000Z", "renditions": [], "avatarUrl": "https://p16-sign-sg.tiktokcdn.com/avatar.jpeg", "verified": true, "followerCount": 894314, "region": "VN", "source": "tiktok-cdn", "cached": false}Erros
401Chave de API ausente ou desconhecida.402A carteira de créditos do espaço de trabalho não cobre a chamada;resetAtindica quando os créditos são renovados.403A chave não tem o escopo, ou o plano não inclui o recurso.429Taxa de requisições excedida; respeite oRetry-After.503Indisponível temporariamente; tente de novo após oRetry-Afterquandoretryablefor true.
Enfileirar uma atualização do status ao vivo
/v1/live/creators/{uid}/refreshPede aos workers que verifiquem agora se o criador está ao vivo. Cobrado pela tarifa de atualização.
Parâmetros de caminho
| Name | Type | Description |
|---|---|---|
uidRequired | string | Nome de usuário do criador sem @ (linh.live) ou ID numérico de usuário do TikTok. |
Requisição
curl -X POST "https://api.toktokdata.live/v1/live/creators/linh.live/refresh" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Resposta
{ "queued": true, "jobId": "1761994604935-0"}Erros
400Parâmetro ou corpo inválido;codeindica o problema.401Chave de API ausente ou desconhecida.402A carteira de créditos do espaço de trabalho não cobre a chamada;resetAtindica quando os créditos são renovados.403A chave não tem o escopo, ou o plano não inclui o recurso.429Taxa de requisições excedida; respeite oRetry-After.
Listar sessões de LIVE registradas
/v1/live/sessionsSessões que a RoomScope registrou para os criadores do espaço de trabalho, das mais recentes às mais antigas. Uma sessão ainda em andamento tem endedAt: null.
Parâmetros de query
| Name | Type | Description |
|---|---|---|
creatorUniqueIdOptional | string | Somente as sessões deste criador (nome de usuário sem @). |
cursorOptional | string | Cursor opaco obtido do nextCursor da página anterior. |
limitOptional | integer | Sessões por página. Faixa 1–100. Default: 50 |
Requisição
curl "https://api.toktokdata.live/v1/live/sessions" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Resposta
{ "data": { "items": [ { "id": "f18eaa3e-a762-543d-9ea5-178271dc43f9", "roomKey": "room:linh.live", "roomId": "7990000000000000001", "creatorUniqueId": "linh.live", "creatorAvatarUrl": null, "startedAt": "2026-11-01T07:51:44.935Z", "endedAt": "2026-11-01T09:51:44.935Z", "peakViewerCount": 2000, "eventCount": 1000, "chatCount": 600, "giftCount": 80, "totalGiftDiamonds": 5000, "durationSeconds": 7200 }, { "id": "278f3a86-af07-5768-85d2-6dfff8efee7d", "roomKey": "room:linh.live", "roomId": "7990000000000000001", "creatorUniqueId": "linh.live", "creatorAvatarUrl": null, "startedAt": "2026-10-31T07:51:44.935Z", "endedAt": "2026-10-31T09:51:44.935Z", "peakViewerCount": 1000, "eventCount": 500, "chatCount": 300, "giftCount": 40, "totalGiftDiamonds": 2500, "durationSeconds": 7200 } ], "nextCursor": null, "historyWindowDays": 365, "historyTruncated": false }, "provenance": { "observedAt": "2026-11-01T09:51:44.935Z", "freshness": "historical", "source": "platform_observed_live_stream", "sourceKind": "derived", "coverageStatus": "observed", "methodologyVersion": "live-history-v1", "window": null }}Erros
400Parâmetro ou corpo inválido;codeindica o problema.401Chave de API ausente ou desconhecida.402A carteira de créditos do espaço de trabalho não cobre a chamada;resetAtindica quando os créditos são renovados.403A chave não tem o escopo, ou o plano não inclui o recurso.429Taxa de requisições excedida; respeite oRetry-After.
Obter uma sessão de LIVE
/v1/live/sessions/{session_id}Uma sessão com os totais agregados de presentes e presenteadores.
Parâmetros de caminho
| Name | Type | Description |
|---|---|---|
session_idRequired | string | ID da sessão, obtido na listagem. |
Requisição
curl "https://api.toktokdata.live/v1/live/sessions/f18eaa3e-a762-543d-9ea5-178271dc43f9" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Resposta
{ "data": { "id": "278f3a86-af07-5768-85d2-6dfff8efee7d", "roomKey": "room:linh.live", "roomId": "7990000000000000001", "creatorUniqueId": "linh.live", "creatorAvatarUrl": null, "startedAt": "2026-10-31T07:51:44.935Z", "endedAt": "2026-10-31T09:51:44.935Z", "peakViewerCount": 1000, "eventCount": 500, "chatCount": 300, "giftCount": 40, "totalGiftDiamonds": 2500, "durationSeconds": 7200, "giftRollups": [ { "giftId": "5269", "giftName": "TikTok", "giftType": 1, "giftCount": 10, "diamondTotal": 2470, "senderCount": 2 }, { "giftId": "5655", "giftName": "Rose", "giftType": 1, "giftCount": 30, "diamondTotal": 30, "senderCount": 2 } ], "gifterRollups": [ { "gifterUserId": "991000000000000001", "gifterUniqueId": "gifter.1", "gifterNickname": "Gifter 1", "giftCount": 20, "diamondTotal": 1500 }, { "gifterUserId": "991000000000000002", "gifterUniqueId": "gifter.2", "gifterNickname": "Gifter 2", "giftCount": 20, "diamondTotal": 1000 } ] }, "provenance": { "observedAt": "2026-10-31T09:51:44.935Z", "freshness": "stale", "source": "platform_observed_live_stream", "sourceKind": "derived", "coverageStatus": "stale", "methodologyVersion": "live-history-v1", "window": null }}Erros
400Parâmetro ou corpo inválido;codeindica o problema.401Chave de API ausente ou desconhecida.402A carteira de créditos do espaço de trabalho não cobre a chamada;resetAtindica quando os créditos são renovados.403A chave não tem o escopo, ou o plano não inclui o recurso.429Taxa de requisições excedida; respeite oRetry-After.