Última actualización
Creadores
Perfiles de creadores almacenados, cambios, red de seguidos y analítica.
Cada operación se autentica con una clave de API (Authorization: Bearer <key>) y los errores usan el sobre compartido que se describe en Errores. Generado a partir del documento OpenAPI de la API.
Buscar creadores
/v1/creatorsSubcadena del nombre de usuario o del nombre visible, sin distinguir mayúsculas de minúsculas, primero los más seguidos. Un q vacío recorre el conjunto almacenado.
Parámetros de consulta
| Name | Type | Description |
|---|---|---|
qOptional | string | Nombre de usuario (con o sin @) o parte del nombre visible. |
limitOptional | integer | Máximo de resultados. Rango 1–100. Default: 20 |
Solicitud
curl "https://api.toktokdata.live/v1/creators" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Respuesta
{ "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 }}Errores
400Parámetro o cuerpo no válido;codeindica el problema.401Clave de API ausente o desconocida.402La billetera de créditos del espacio de trabajo no alcanza para cubrir la llamada;resetAtindica cuándo se reinician los créditos.403La clave no tiene el alcance, o el plan no incluye la función.429Se superó el ritmo de solicitudes; respetaRetry-After.
Obtener el perfil de un creador
/v1/creators/{uid}El perfil público almacenado y el historial reciente de sus contadores.
Parámetros de ruta
| Name | Type | Description |
|---|---|---|
uidRequired | string | Nombre de usuario del creador sin @ (linh.live) o ID numérico de usuario de TikTok. |
Solicitud
curl "https://api.toktokdata.live/v1/creators/linh.live" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Respuesta
{ "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 }}Errores
400Parámetro o cuerpo no válido;codeindica el problema.401Clave de API ausente o desconocida.402La billetera de créditos del espacio de trabajo no alcanza para cubrir la llamada;resetAtindica cuándo se reinician los créditos.403La clave no tiene el alcance, o el plan no incluye la función.429Se superó el ritmo de solicitudes; respetaRetry-After.
Analizar los videos de un creador
/v1/creators/{uid}/analysisReporte de interacción calculado solo a partir de los videos almacenados: totales, medianas, frecuencia de publicación.
Parámetros de ruta
| Name | Type | Description |
|---|---|---|
uidRequired | string | Nombre de usuario del creador sin @ (linh.live) o ID numérico de usuario de TikTok. |
Solicitud
curl "https://api.toktokdata.live/v1/creators/linh.live/analysis" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Respuesta
{ "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 }}Errores
400Parámetro o cuerpo no válido;codeindica el problema.401Clave de API ausente o desconocida.402La billetera de créditos del espacio de trabajo no alcanza para cubrir la llamada;resetAtindica cuándo se reinician los créditos.403La clave no tiene el alcance, o el plan no incluye la función.429Se superó el ritmo de solicitudes; respetaRetry-After.
Listar cambios de perfil
/v1/creators/{uid}/changesCambios de nombre de usuario, nombre, biografía y verificación observados a lo largo del tiempo, del más reciente al más antiguo.
Parámetros de ruta
| Name | Type | Description |
|---|---|---|
uidRequired | string | Nombre de usuario del creador sin @ (linh.live) o ID numérico de usuario de TikTok. |
Parámetros de consulta
| Name | Type | Description |
|---|---|---|
limitOptional | integer | Máximo de cambios. Rango 1–200. Default: 50 |
Solicitud
curl "https://api.toktokdata.live/v1/creators/linh.live/changes" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Respuesta
{ "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 }}Errores
400Parámetro o cuerpo no válido;codeindica el problema.401Clave de API ausente o desconocida.402La billetera de créditos del espacio de trabajo no alcanza para cubrir la llamada;resetAtindica cuándo se reinician los créditos.403La clave no tiene el alcance, o el plan no incluye la función.429Se superó el ritmo de solicitudes; respetaRetry-After.
Listar los seguidores de un creador
/v1/creators/{uid}/followersSeguidores almacenados, con la misma estructura que los seguidos.
Parámetros de ruta
| Name | Type | Description |
|---|---|---|
uidRequired | string | Nombre de usuario del creador sin @ (linh.live) o ID numérico de usuario de TikTok. |
Parámetros de consulta
| Name | Type | Description |
|---|---|---|
cursorOptional | string | Cursor opaco tomado de nextCursor de la página anterior. |
limitOptional | integer | Entradas por página. |
Solicitud
curl "https://api.toktokdata.live/v1/creators/linh.live/followers" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Respuesta
{ "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 }}Errores
400Parámetro o cuerpo no válido;codeindica el problema.401Clave de API ausente o desconocida.402La billetera de créditos del espacio de trabajo no alcanza para cubrir la llamada;resetAtindica cuándo se reinician los créditos.403La clave no tiene el alcance, o el plan no incluye la función.429Se superó el ritmo de solicitudes; respetaRetry-After.
Listar las cuentas que sigue un creador
/v1/creators/{uid}/followingRed de seguidos almacenada. Las cuentas privadas devuelven isPrivate: true y ninguna entrada.
Parámetros de ruta
| Name | Type | Description |
|---|---|---|
uidRequired | string | Nombre de usuario del creador sin @ (linh.live) o ID numérico de usuario de TikTok. |
Parámetros de consulta
| Name | Type | Description |
|---|---|---|
cursorOptional | string | Cursor opaco tomado de nextCursor de la página anterior. |
limitOptional | integer | Entradas por página. |
Solicitud
curl "https://api.toktokdata.live/v1/creators/linh.live/following" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Respuesta
{ "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 }}Errores
400Parámetro o cuerpo no válido;codeindica el problema.401Clave de API ausente o desconocida.402La billetera de créditos del espacio de trabajo no alcanza para cubrir la llamada;resetAtindica cuándo se reinician los créditos.403La clave no tiene el alcance, o el plan no incluye la función.429Se superó el ritmo de solicitudes; respetaRetry-After.
Obtener los top donadores de un creador
/v1/creators/{uid}/giftersDonadores de las salas LIVE del creador en los últimos 7 o 30 días, por diamantes: cantidad de regalos, sesiones, último regalo y el creador de la última sala en la que enviaron regalos. Se lee de las sesiones que registró RoomScope, por lo que la cobertura siempre es partial. Requiere el plan Pro o superior.
Parámetros de ruta
| Name | Type | Description |
|---|---|---|
uidRequired | string | Nombre de usuario del creador sin @ (linh.live) o ID numérico de usuario de TikTok. |
Parámetros de consulta
| Name | Type | Description |
|---|---|---|
windowOptional | "7d" | "30d" | 7d o 30d.Default: 7d |
limitOptional | integer | Máximo de filas. Rango …–100. Default: 20 |
Solicitud
curl "https://api.toktokdata.live/v1/creators/linh.live/gifters" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Respuesta
{ "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" } }}Errores
400Parámetro o cuerpo no válido;codeindica el problema.401Clave de API ausente o desconocida.402La billetera de créditos del espacio de trabajo no alcanza para cubrir la llamada;resetAtindica cuándo se reinician los créditos.403La clave no tiene el alcance, o el plan no incluye la función.429Se superó el ritmo de solicitudes; respetaRetry-After.
Obtener los insights de un creador
/v1/creators/{uid}/insightsHistorial de nombres de usuario, diamantes diarios de los últimos 30 días (del más reciente al más antiguo), instantáneas diarias de liga y la sala LIVE del creador. liveExact es true cuando la puntuación del día se leyó en el reinicio del ranking; si no, liveScore es la puntuación más alta leída ese día. observedCoins cuenta los diamantes que RoomScope registró en las sesiones LIVE del creador. Un nombre de usuario que cambió se sigue resolviendo a través del historial de alias.
Parámetros de ruta
| Name | Type | Description |
|---|---|---|
uidRequired | string | Nombre de usuario del creador sin @ (linh.live) o ID numérico de usuario de TikTok. |
Solicitud
curl "https://api.toktokdata.live/v1/creators/linh.live/insights" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Respuesta
{ "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" } }}Errores
400Parámetro o cuerpo no válido;codeindica el problema.401Clave de API ausente o desconocida.402La billetera de créditos del espacio de trabajo no alcanza para cubrir la llamada;resetAtindica cuándo se reinician los créditos.403La clave no tiene el alcance, o el plan no incluye la función.429Se superó el ritmo de solicitudes; respetaRetry-After.
Obtener el mejor horario para salir en LIVE
/v1/insights/best-timeDiamantes y horas-donador de las sesiones LIVE registradas de una región en los últimos windowDays días, por día de la semana (0 = lunes) y hora UTC. Se recalcula a diario; cells está vacío mientras no se haya registrado nada para la región.
Parámetros de consulta
| Name | Type | Description |
|---|---|---|
regionOptional | string | Código de región ISO 3166-1 alfa-2. Default: VN |
Solicitud
curl "https://api.toktokdata.live/v1/insights/best-time" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Respuesta
{ "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" } }}Errores
400Parámetro o cuerpo no válido;codeindica el problema.401Clave de API ausente o desconocida.402La billetera de créditos del espacio de trabajo no alcanza para cubrir la llamada;resetAtindica cuándo se reinician los créditos.403La clave no tiene el alcance, o el plan no incluye la función.429Se superó el ritmo de solicitudes; respetaRetry-After.
Obtener la presencia en LIVE por hora
/v1/insights/presencePor hora, cuántos de los creadores rankeados y monitoreados de la región estaban en vivo, de lo más antiguo a lo más reciente.
Parámetros de consulta
| Name | Type | Description |
|---|---|---|
regionOptional | string | Código de región ISO 3166-1 alfa-2. Default: VN |
hoursOptional | integer | Cuántas horas hacia atrás. Rango 1–168. Default: 48 |
Solicitud
curl "https://api.toktokdata.live/v1/insights/presence" \ -H "Authorization: Bearer $ROOMSCOPE_API_KEY"Respuesta
{ "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" } }}Errores
400Parámetro o cuerpo no válido;codeindica el problema.401Clave de API ausente o desconocida.402La billetera de créditos del espacio de trabajo no alcanza para cubrir la llamada;resetAtindica cuándo se reinician los créditos.403La clave no tiene el alcance, o el plan no incluye la función.429Se superó el ritmo de solicitudes; respetaRetry-After.