RoomScope

Ú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

GET/v1/live/creators/{uid}/performance

Uma linha por sessão registrada: duração, pico de espectadores, presentes, diamantes e presenteadores distintos.

Escopolive:readCréditosLeitura em cache

Parâmetros de caminho

Parâmetros de caminho · GET /v1/live/creators/{uid}/performance
NameTypeDescription
uidRequired
stringNome de usuário do criador sem @ (linh.live) ou ID numérico de usuário do TikTok.

Parâmetros de query

Parâmetros de query · GET /v1/live/creators/{uid}/performance
NameTypeDescription
cursorOptional
stringCursor opaco obtido do nextCursor da página anterior.
limitOptional
integerLinhas 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

200 OK
{  "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

  • 400 Parâmetro ou corpo inválido; code indica o problema.
  • 401 Chave de API ausente ou desconhecida.
  • 402 A carteira de créditos do espaço de trabalho não cobre a chamada; resetAt indica quando os créditos são renovados.
  • 403 A chave não tem o escopo, ou o plano não inclui o recurso.
  • 429 Taxa de requisições excedida; respeite o Retry-After.

Obter a fonte de vídeo da LIVE de um criador

GET/v1/live/creators/{uid}/playback

A 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.

Escopolive:streamCréditosLeitura em cache

Parâmetros de caminho

Parâmetros de caminho · GET /v1/live/creators/{uid}/playback
NameTypeDescription
uidRequired
stringNome 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

200 OK
{  "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

  • 401 Chave de API ausente ou desconhecida.
  • 402 A carteira de créditos do espaço de trabalho não cobre a chamada; resetAt indica quando os créditos são renovados.
  • 403 A chave não tem o escopo, ou o plano não inclui o recurso.
  • 429 Taxa de requisições excedida; respeite o Retry-After.
  • 503 Indisponível temporariamente; tente de novo após o Retry-After quando retryable for true.

Enfileirar uma atualização do status ao vivo

POST/v1/live/creators/{uid}/refresh

Pede aos workers que verifiquem agora se o criador está ao vivo. Cobrado pela tarifa de atualização.

Escopolive:readCréditosAtualização ao vivo

Parâmetros de caminho

Parâmetros de caminho · POST /v1/live/creators/{uid}/refresh
NameTypeDescription
uidRequired
stringNome 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

202 Accepted
{  "queued": true,  "jobId": "1761994604935-0"}

Erros

  • 400 Parâmetro ou corpo inválido; code indica o problema.
  • 401 Chave de API ausente ou desconhecida.
  • 402 A carteira de créditos do espaço de trabalho não cobre a chamada; resetAt indica quando os créditos são renovados.
  • 403 A chave não tem o escopo, ou o plano não inclui o recurso.
  • 429 Taxa de requisições excedida; respeite o Retry-After.

Listar sessões de LIVE registradas

GET/v1/live/sessions

Sessõ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.

Escopolive:readCréditosLeitura em cache

Parâmetros de query

Parâmetros de query · GET /v1/live/sessions
NameTypeDescription
creatorUniqueIdOptional
stringSomente as sessões deste criador (nome de usuário sem @).
cursorOptional
stringCursor opaco obtido do nextCursor da página anterior.
limitOptional
integerSessõ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

200 OK
{  "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

  • 400 Parâmetro ou corpo inválido; code indica o problema.
  • 401 Chave de API ausente ou desconhecida.
  • 402 A carteira de créditos do espaço de trabalho não cobre a chamada; resetAt indica quando os créditos são renovados.
  • 403 A chave não tem o escopo, ou o plano não inclui o recurso.
  • 429 Taxa de requisições excedida; respeite o Retry-After.

Obter uma sessão de LIVE

GET/v1/live/sessions/{session_id}

Uma sessão com os totais agregados de presentes e presenteadores.

Escopolive:readCréditosLeitura em cache

Parâmetros de caminho

Parâmetros de caminho · GET /v1/live/sessions/{session_id}
NameTypeDescription
session_idRequired
stringID 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

200 OK
{  "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

  • 400 Parâmetro ou corpo inválido; code indica o problema.
  • 401 Chave de API ausente ou desconhecida.
  • 402 A carteira de créditos do espaço de trabalho não cobre a chamada; resetAt indica quando os créditos são renovados.
  • 403 A chave não tem o escopo, ou o plano não inclui o recurso.
  • 429 Taxa de requisições excedida; respeite o Retry-After.
Esta página foi útil?