Última atualização
Criadores
Perfis de criadores armazenados, alterações, grafo de seguidores e análises.
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.
Buscar criadores
/v1/creatorsTrecho do nome de usuário ou do nome de exibição, sem diferenciar maiúsculas de minúsculas, com os mais seguidos primeiro. Um q vazio percorre o conjunto armazenado.
Parâmetros de query
| Name | Type | Description |
|---|---|---|
qOptional | string | Nome de usuário (com ou sem @) ou parte do nome de exibição. |
limitOptional | integer | Número máximo de resultados. Faixa 1–100. Default: 20 |
Requisição
curl "https://api.toktokdata.live/v1/creators" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Resposta
{ "data": { "query": "linh.live", "results": [ { "tiktokUserId": "990000000000000001", "uniqueId": "linh.live", "displayName": "Linh Live", "region": "VN", "avatarUrl": null, "followerCount": 123456, "verified": true } ] }, "provenance": { "observedAt": "2026-11-01T10:36:44.935Z", "freshness": "near_realtime", "source": "public_creator_profile", "sourceKind": "derived", "coverageStatus": "observed", "methodologyVersion": "creators-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 o perfil de um criador
/v1/creators/{uid}O perfil público armazenado e o histórico recente dos seus contadores.
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 "https://api.toktokdata.live/v1/creators/linh.live" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Resposta
{ "data": { "creator": { "tiktokUserId": "990000000000000001", "uniqueId": "linh.live", "secUid": null, "displayName": "Linh Live", "region": "VN", "language": null, "signature": "Daily LIVE from Hanoi", "avatarUrl": null, "followerCount": 123456, "followingCount": 321, "awemeCount": 3, "totalFavorited": 9876543, "favoritingCount": null, "verified": true, "customVerify": null, "enterpriseVerifyReason": null, "instagramId": null, "youtubeChannelId": null, "twitterId": null, "firstSeenAt": "2026-10-02T10:51:44.935Z", "lastRefreshedAt": "2026-11-01T10:36:44.935Z", "history": [] } }, "provenance": { "observedAt": "2026-11-01T10:36:44.935Z", "freshness": "near_realtime", "source": "public_creator_profile", "sourceKind": "derived", "coverageStatus": "observed", "methodologyVersion": "creators-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.
Analisar os vídeos de um criador
/v1/creators/{uid}/analysisRelatório de engajamento calculado apenas a partir dos vídeos armazenados: totais, medianas e frequência de publicaçã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 "https://api.toktokdata.live/v1/creators/linh.live/analysis" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Resposta
{ "data": { "creator": { "tiktokUserId": "990000000000000001", "uniqueId": "linh.live", "displayName": "Linh Live", "avatarUrl": null, "region": "VN", "verified": true, "followerCount": 123456, "followingCount": 321, "awemeCount": 3, "totalFavorited": 9876543, "firstSeenAt": "2026-10-02T10:51:44.935Z", "lastRefreshedAt": "2026-11-01T10:36:44.935Z" }, "sample": { "videosAnalyzed": 3, "oldestVideoAt": "2026-10-29T10:51:44.935Z", "newestVideoAt": "2026-10-31T10:51:44.935Z", "spanDays": 2, "shareOfCatalog": 1 }, "engagement": { "totalPlays": 60000, "totalLikes": 6000, "totalComments": 600, "totalShares": 0, "avgPlays": 20000, "medianPlays": 20000, "avgLikes": 2000, "avgComments": 200, "avgShares": 0, "engagementRate": 0.11, "likeRate": 0.1, "commentRate": 0.01, "shareRate": 0, "viewsPerFollower": 0.162 }, "cadence": { "postsPerWeek": 7, "avgDaysBetweenPosts": 1, "longestGapDays": 1, "busiestWeekday": 4, "postsByWeekday": [ 0, 0 ] }, "topByPlays": [ { "videoId": "7990000000000000003", "description": "Video 3", "createTime": "2026-10-29T10:51:44.935Z", "playCount": 30000, "diggCount": 3000, "commentCount": 300, "shareCount": null, "engagementRate": 0.11 }, { "videoId": "7990000000000000002", "description": "Video 2", "createTime": "2026-10-30T10:51:44.935Z", "playCount": 20000, "diggCount": 2000, "commentCount": 200, "shareCount": null, "engagementRate": 0.11 } ], "topByEngagement": [ { "videoId": "7990000000000000001", "description": "Video 1", "createTime": "2026-10-31T10:51:44.935Z", "playCount": 10000, "diggCount": 1000, "commentCount": 100, "shareCount": null, "engagementRate": 0.11 }, { "videoId": "7990000000000000002", "description": "Video 2", "createTime": "2026-10-30T10:51:44.935Z", "playCount": 20000, "diggCount": 2000, "commentCount": 200, "shareCount": null, "engagementRate": 0.11 } ], "audience": null, "growth": null, "limits": [ { "code": "thin-video-sample", "message": "Only 3 video(s) analysed — too few to describe the account's typical performance." }, { "code": "single-observation", "message": "This account has been observed only once, so no follower growth can be shown yet." } ] }, "provenance": { "observedAt": "2026-11-01T10:36:44.935Z", "freshness": "near_realtime", "source": "derived_creator_analysis", "sourceKind": "derived", "coverageStatus": "partial", "methodologyVersion": "analysis-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.
Listar alterações de perfil
/v1/creators/{uid}/changesAlterações de nome de usuário, nome, bio e verificação observadas ao longo do tempo, das mais recentes às mais antigas.
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 |
|---|---|---|
limitOptional | integer | Número máximo de alterações. Faixa 1–200. Default: 50 |
Requisição
curl "https://api.toktokdata.live/v1/creators/linh.live/changes" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Resposta
{ "data": { "tiktokUserId": "990000000000000001", "uniqueId": "linh.live", "changes": [] }, "provenance": { "observedAt": "2026-10-02T10:51:44.935Z", "freshness": "stale", "source": "public_creator_profile", "sourceKind": "derived", "coverageStatus": "partial", "methodologyVersion": "creators-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.
Listar os seguidores de um criador
/v1/creators/{uid}/followersSeguidores armazenados, no mesmo formato da lista de seguidos.
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 | Entradas por página. |
Requisição
curl "https://api.toktokdata.live/v1/creators/linh.live/followers" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Resposta
{ "data": { "tiktokUserId": "990000000000000001", "uniqueId": "linh.live", "direction": "following", "entries": [], "nextCursor": null, "hasMore": false, "totalReported": null, "storedCount": 0, "isPrivate": false }, "provenance": { "observedAt": "2026-11-01T11:18:49.084Z", "freshness": "stale", "source": "public_follow_graph", "sourceKind": "derived", "coverageStatus": "not-covered", "methodologyVersion": "follow-list-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.
Listar as contas que um criador segue
/v1/creators/{uid}/followingGrafo de seguidos armazenado. Contas privadas retornam isPrivate: true e nenhuma entrada.
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 | Entradas por página. |
Requisição
curl "https://api.toktokdata.live/v1/creators/linh.live/following" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Resposta
{ "data": { "tiktokUserId": "990000000000000001", "uniqueId": "linh.live", "direction": "following", "entries": [], "nextCursor": null, "hasMore": false, "totalReported": null, "storedCount": 0, "isPrivate": false }, "provenance": { "observedAt": "2026-11-01T11:18:49.084Z", "freshness": "stale", "source": "public_follow_graph", "sourceKind": "derived", "coverageStatus": "not-covered", "methodologyVersion": "follow-list-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 os top presenteadores de um criador
/v1/creators/{uid}/giftersPresenteadores das salas LIVE do criador nos últimos 7 ou 30 dias, por diamantes: quantidade de presentes, sessões, último presente e o criador da última sala em que enviaram presentes. Lido das sessões que a RoomScope registrou, por isso a cobertura é sempre partial. Exige o plano Pro ou superior.
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 |
|---|---|---|
windowOptional | "7d" | "30d" | 7d ou 30d.Default: 7d |
limitOptional | integer | Número máximo de linhas. Faixa …–100. Default: 20 |
Requisição
curl "https://api.toktokdata.live/v1/creators/linh.live/gifters" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Resposta
{ "data": { "creatorUid": "7012345678901234567", "uniqueId": "linh.live", "window": "7d", "gifters": [ { "gifterUserId": "6987001122334455667", "gifterUniqueId": "minh.fan", "gifterNickname": "Minh", "avatarUrl": null, "diamondTotal": 18450, "giftCount": 312, "sessions": 4, "lastGiftAt": "2026-11-02T15:41:07.512Z", "lastRoomCreator": "linh.live" } ] }, "provenance": { "observedAt": "2026-11-02T15:41:07.512Z", "freshness": "historical", "source": "platform_observed_gifter_events", "sourceKind": "derived", "coverageStatus": "partial", "methodologyVersion": "gifters-observed-v1", "window": { "from": "2026-10-27T04:00:00.000Z", "to": "2026-11-03T04:00:00.000Z", "label": "7d" } }}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 os insights de um criador
/v1/creators/{uid}/insightsHistórico de nomes de usuário, diamantes diários dos últimos 30 dias (mais recentes primeiro), snapshots diários da liga e a sala LIVE do criador. liveExact é true quando a pontuação do dia foi lida no reinício do ranking; caso contrário, liveScore é a maior pontuação lida naquele dia. observedCoins conta os diamantes que a RoomScope registrou nas sessões de LIVE do criador. Um nome de usuário que mudou continua sendo resolvido pelo histórico de aliases.
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 "https://api.toktokdata.live/v1/creators/linh.live/insights" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Resposta
{ "data": { "creator": { "uid": "6990000000000000001", "uniqueId": "linh.live" }, "aliases": [ { "uniqueId": "linh.live", "firstSeenAt": "2026-10-12T09:15:02.118Z", "lastSeenAt": "2026-11-01T14:02:41.530Z" }, { "uniqueId": "linh.official", "firstSeenAt": "2026-09-30T11:40:19.004Z", "lastSeenAt": "2026-10-12T08:55:47.912Z" } ], "daily": [ { "boardDay": "2026-10-31", "countryCode": "VN", "tiktokScore": 184250, "observedCoins": 171932, "liveScore": 184250, "liveExact": true, "leagueClass": "B2" }, { "boardDay": "2026-10-30", "countryCode": "VN", "tiktokScore": 97410, "observedCoins": null, "liveScore": 97410, "liveExact": false, "leagueClass": "B2" } ], "league": [ { "day": "2026-10-31", "leagueClass": "B2", "leagueRank": 14, "leagueCountry": "VN", "followers": 412880 } ], "roomOwner": { "roomId": "7432000000000000001", "ownerUid": "6990000000000000001", "ownerUniqueId": "linh.live", "claimantUid": null, "reason": "claim_confirmed", "checkedAt": "2026-11-01T14:00:03.221Z" } }, "provenance": { "observedAt": "2026-11-01T14:02:41.530Z", "freshness": "near_realtime", "source": "creator_analytics", "sourceKind": "derived", "coverageStatus": "observed", "methodologyVersion": "creator-analytics-v1", "window": { "from": "2026-10-02T14:02:41.530Z", "to": "2026-11-01T14:02:41.530Z", "label": "30d" } }}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 o melhor horário para entrar ao vivo
/v1/insights/best-timeDiamantes e horas-presenteador das sessões de LIVE registradas de uma região nos últimos windowDays dias, por dia da semana (0 = segunda-feira) e hora UTC. Recalculado diariamente; cells fica vazio enquanto nada tiver sido registrado para a região.
Parâmetros de query
| Name | Type | Description |
|---|---|---|
regionOptional | string | Código de região ISO 3166-1 alpha-2. Default: VN |
Requisição
curl "https://api.toktokdata.live/v1/insights/best-time" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Resposta
{ "data": { "region": "VN", "windowDays": 28, "computedAt": "2026-11-01T01:00:04.870Z", "cells": [ { "weekday": 0, "hour": 12, "diamonds": 418230, "gifterHours": 1874 }, { "weekday": 0, "hour": 13, "diamonds": 652910, "gifterHours": 2410 }, { "weekday": 0, "hour": 14, "diamonds": 701455, "gifterHours": 2689 } ] }, "provenance": { "observedAt": "2026-11-01T01:00:04.870Z", "freshness": "near_realtime", "source": "creator_analytics", "sourceKind": "derived", "coverageStatus": "observed", "methodologyVersion": "creator-analytics-v1", "window": { "from": "2026-10-04T01:00:04.870Z", "to": "2026-11-01T01:00:04.870Z", "label": "28d" } }}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 presença em LIVE por hora
/v1/insights/presencePor hora, quantos dos criadores ranqueados e monitorados da região estavam ao vivo, do mais antigo ao mais recente.
Parâmetros de query
| Name | Type | Description |
|---|---|---|
regionOptional | string | Código de região ISO 3166-1 alpha-2. Default: VN |
hoursOptional | integer | Quantas horas para trás. Faixa 1–168. Default: 48 |
Requisição
curl "https://api.toktokdata.live/v1/insights/presence" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Resposta
{ "data": { "region": "VN", "hours": 48, "points": [ { "hourStart": "2026-11-01T12:00:00.000Z", "liveCreators": 214, "trackedCreators": 1630 }, { "hourStart": "2026-11-01T13:00:00.000Z", "liveCreators": 251, "trackedCreators": 1642 }, { "hourStart": "2026-11-01T14:00:00.000Z", "liveCreators": 268, "trackedCreators": 1655 } ] }, "provenance": { "observedAt": "2026-11-01T14:05:01.402Z", "freshness": "near_realtime", "source": "creator_analytics", "sourceKind": "derived", "coverageStatus": "observed", "methodologyVersion": "creator-analytics-v1", "window": { "from": "2026-10-30T14:05:01.402Z", "to": "2026-11-01T14:05:01.402Z", "label": "48h" } }}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.