Guía para desarrolladores

API de rankings y ligas

Datos de rankings de TikTok LIVE en tiempo real. Obtén los rankings diarios de 44 regiones, consulta los datos de las clases de liga en vivo y monitorea el rendimiento de los creadores.

TODOS LOS PLANES DE PAGO SOLO ULTRA - Ligas

Resumen

TikTool ofrece dos categorías de datos de rankings a través de la API de su sitio web en tik.tools. Ambos endpoints devuelven datos de clasificación competitiva en tiempo real de creadores de TikTok LIVE, ordenados por diamantes ganados.

Todos los planes de pago

Rankings regionales

Rankings diarios de los 100 mejores creadores por total de diamantes ganados, divididos por región geográfica. Se actualizan continuamente durante el día. Disponibles para suscriptores de Basic, Pro y Ultra.

  • Top 100 creadores por región
  • Posición, puntuación (diamantes), estado en vivo, room ID
  • 44 regiones en todo el mundo
  • Los datos se actualizan continuamente
Solo plan Ultra para desarrolladores

Clasificaciones de liga

Datos de clasificación competitiva por clases (A1-D5) de los creadores que compiten en las ligas de TikTok LIVE. Muestra quién está en cada nivel competitivo en cualquier región. Requiere el plan Ultra para desarrolladores. Agency PASS (tik.tools/vip) es una suscripción del sitio web: da acceso a los datos de ligas en la web, no acceso programático por API.

  • 18 divisiones de liga: A1, A2, A3, B1, B2, B3, B4, B5, C1, C2, C3, C4, C5, D1, D2, D3, D4, D5
  • Entradas clasificadas por clase con estado en vivo
  • Vista previa limitada para planes inferiores (5 entradas)
  • Los datos se actualizan con frecuencia
Autenticación: Estos endpoints están en tik.tools (no en api.tik.tools) y usan autenticación por sesión. Llámalos desde tu servidor con una cookie de sesión válida, obtenida al iniciar sesión en tik.tools con una cuenta de desarrollador de pago. Todos los planes de desarrollador de pago (Basic, Pro, Ultra) tienen acceso a los endpoints de rankings regionales. Los endpoints de ligas requieren el plan Ultra para desarrolladores. La suscripción Agency PASS (en tik.tools/vip) es un producto aparte, solo para el sitio web: da acceso a los datos de ligas desde la interfaz web de tik.tools, no a través de esta API para desarrolladores.

Referencia de regiones

Hay 44 rankings regionales disponibles. Usa el Slug en la URL del endpoint de ranking por país y el Código de región en los endpoints de ligas.

SlugCódigo de regiónDescripción
north-americaUS+North America
canadaCACanada
brazil-regionBRBrazil
mexicoMXMexico
latin-americaLATAMLatin America
colombia-peru-dominican-republicCO+Colombia, Peru & Dominican Republic
jamaicaJMJamaica
australia-pacificAU+Australia & Pacific
japan-regionJPJapan
south-korea-regionKRSouth Korea
taiwan-regionTWTaiwan
indonesia-regionIDIndonesia
malaysia-regionMYMalaysia
singaporeSGSingapore
philippines-regionPHPhilippines
thailand-regionTHThailand
vietnam-regionVNVietnam
nepalNPNepal
bangladesh-bhutan-maldivesBD+Bangladesh, Bhutan & Maldives
azerbaijanAZAzerbaijan
kazakhstanKZKazakhstan
kyrgyzstanKGKyrgyzstan
belarusBYBelarus
ukraineUAUkraine
central-asiaCCACentral Asia
dachDE+Germany & DACH
switzerlandCHSwitzerland
iberiaES+Iberia
central-europeHU+Central Europe
lusophonePT+Lusophone
france-regionFR+France
belgiumBEBelgium
netherlands-regionNLNetherlands
united-kingdom-regionUK+United Kingdom
ireland-baltics-maltaIE+Ireland, Baltics & Malta
italy-regionIT+Italy
swedenSESweden
scandinaviaSE+Nordics
poland-regionPLPoland
romania-regionRORomania
balkansBKBalkans
turkey-regionTRTurkey
middle-east-africaMENAMiddle East & Africa
nigeria-ghana-kenya-south-africaNG+Nigeria, Ghana, Kenya & South Africa

Endpoint: Ranking regional

GEThttps://tik.tools/api/leaderboards/country/:slugTodos los planes de pago

Devuelve el top 100 del día actual de una región. Las entradas se ordenan de mayor a menor por score (total de diamantes ganados hoy).

Parámetros de ruta

ParámetroTipoDescripción
slugstringSlug de región de la tabla de referencia de regiones de arriba (p. ej., balkans, north-america)

Esquema de respuesta

CampoTipoDescripción
[].ranknumberPosición en el ranking (1 = el que más gana)
[].uniqueIdstringUsuario de TikTok (sin @)
[].nicknamestringNombre visible en TikTok
[].scorenumberTotal de diamantes ganados hoy en esta región
[].isLivebooleanSi el creador está transmitiendo en vivo ahora
[].roomIdstring | nullRoom ID del LIVE si está transmitiendo; si no, null

Respuesta de ejemplo

[
  {
    "rank": 1,
    "uniqueId": "top_creator",
    "nickname": "Top Creator",
    "score": 284500,
    "isLive": true,
    "roomId": "7384920175638291456"
  },
  {
    "rank": 2,
    "uniqueId": "second_place",
    "nickname": "Second Place",
    "score": 198200,
    "isLive": false,
    "roomId": null
  }
]

Ejemplos de código

// Node.js - fetch Balkans leaderboard
const response = await fetch('https://tik.tools/api/leaderboards/country/balkans', {
  headers: {
    'x-api-key': 'YOUR_ULTRA_API_KEY',
  }
})

const entries = await response.json()

for (const entry of entries) {
  console.log(`#${entry.rank} @${entry.uniqueId} - ${entry.score} diamonds${entry.isLive ? ' [LIVE]' : ''}`)
}

Endpoints de ligas

Requiere Ultra. Los endpoints de ligas requieren un plan Ultra para desarrolladores. Las solicitudes desde los planes Basic y Pro reciben una vista previa de 5 entradas: el campo hasFullAccess de la respuesta será false y maskedCount indicará cuántas entradas están ocultas. Nota: la suscripción Agency PASS (tik.tools/vip) da acceso a los datos de ligas en el sitio web, pero no es una suscripción a la API para desarrolladores.

4a. Listar las ligas de una región

GEThttps://tik.tools/api/leaderboards/leagues/:regionSolo Ultra

Lista las clases de liga disponibles en una región, incluido cuántos creadores hay en cada clase y cuándo se actualizaron los datos por última vez.

Parámetros de ruta

ParámetroTipoDescripción
regionstringCódigo de región (p. ej., BK, BC, US+) de la tabla de referencia de regiones

Esquema de respuesta

CampoTipoDescripción
[].classTypenumberIdentificador numérico de la clase (consulta la referencia de classType más abajo)
[].classLabelstringNombre legible de la clase (p. ej., "A1", "B5")
[].countnumberNúmero de creadores que hay ahora en esta clase
[].updatedAtstringMarca de tiempo ISO 8601 de la última actualización de datos

Respuesta de ejemplo

[
  { "classType": 2000, "classLabel": "A1", "count": 12, "updatedAt": "2026-05-11T14:30:00.000Z" },
  { "classType": 1900, "classLabel": "A2", "count": 28, "updatedAt": "2026-05-11T14:30:00.000Z" },
  { "classType": 1100, "classLabel": "B5", "count": 55, "updatedAt": "2026-05-11T14:30:00.000Z" },
  { "classType": 1000, "classLabel": "C1", "count": 83, "updatedAt": "2026-05-11T14:30:00.000Z" }
]
// Node.js - list leagues for Balkans (BK)
const response = await fetch('https://tik.tools/api/leaderboards/leagues/BK', {
  headers: { 'x-api-key': 'YOUR_ULTRA_API_KEY' }
})

const leagues = await response.json()

for (const league of leagues) {
  console.log(`${league.classLabel} (type ${league.classType}): ${league.count} creators`)
}

4b. Obtener las entradas de una liga

GEThttps://tik.tools/api/leaderboards/league/:region/:classTypeSolo Ultra

Devuelve la lista clasificada de creadores de una clase de liga concreta en una región. Es el endpoint principal para crear herramientas que trabajen con ligas y dashboards de monitoreo de creadores.

Parámetros de ruta

ParámetroTipoDescripción
regionstringCódigo de región (p. ej., BK, US+)
classTypenumberIdentificador numérico de la clase (2000=A1, 1900=A2, 1100=B5, etc.)

Esquema de respuesta

CampoTipoDescripción
hasFullAccessbooleanTrue si tu plan tiene acceso completo; false = modo vista previa (5 entradas)
maskedCountnumberNúmero de entradas ocultas por las restricciones del plan (0 si hasFullAccess)
totalCountnumberNúmero total de creadores en esta clase
entries[].ranknumberPosición dentro de esta clase
entries[].userIdstringID numérico de usuario de TikTok (ID interno estable, nunca cambia)
entries[].uniqueIdstringUsuario/handle de TikTok sin @ (el usuario puede cambiarlo)
entries[].nicknamestringNombre visible (el usuario puede cambiarlo)
entries[].scorenumberDiamantes ganados en el periodo de liga actual
entries[].isLivebooleanSi el creador está transmitiendo en vivo ahora

Respuesta de ejemplo

{
  "hasFullAccess": true,
  "maskedCount": 0,
  "totalCount": 12,
  "entries": [
    {
      "rank": 1,
      "userId": "6841523190294479361",
      "uniqueId": "league_leader",
      "nickname": "League Leader",
      "score": 1840000,
      "isLive": true
    },
    {
      "rank": 2,
      "userId": "6712309845712006148",
      "uniqueId": "second_in_a1",
      "nickname": "Second In A1",
      "score": 1620000,
      "isLive": false
    }
  ]
}
// Node.js - fetch A1 league entries for Balkans
const response = await fetch('https://tik.tools/api/leaderboards/league/BK/2000', {
  headers: { 'x-api-key': 'YOUR_ULTRA_API_KEY' }
})

const data = await response.json()

if (!data.hasFullAccess) {
  console.warn(`Teaser mode: ${data.maskedCount} entries hidden. Upgrade to Ultra for full access.`)
}

console.log(`A1 Balkans - ${data.totalCount} creators total`)

for (const entry of data.entries) {
  const liveTag = entry.isLive ? ' [LIVE]' : ''
  console.log(`#${entry.rank} @${entry.uniqueId} - ${entry.score.toLocaleString()} diamonds${liveTag}`)
}

Referencia de classType

Las clases de liga asocian los valores numéricos de classType con niveles competitivos. A1 es el nivel más alto: los creadores de élite que más diamantes ganan. D5 es la puerta de entrada a la competencia de ligas.

classTypeClaseDescripción
2000A1Nivel élite. Los que más ganan en la región. La competencia más alta y los requisitos de diamantes más altos para entrar.
1900A2Nivel sénior. Creadores consolidados con altos ingresos que buscan el ascenso a A1.
1800A3Clase A consolidada. Creadores con ingresos altos y constantes que mantienen su lugar en la élite.
1500B1Lo más alto del rango B. Creadores a un ascenso de las divisiones A.
1400B2Clase B alta. Creadores con buenos ingresos que compiten por B1.
1300B3Clase B media. Creadores con ingresos estables en la mitad del rango B.
1200B4Clase B baja. Creadores que avanzan hacia las divisiones B altas.
1100B5Entrada a la clase B. Creadores con ingresos fuertes y constantes durante el periodo de liga.
1000C1Lo más alto del rango C. Creadores activos que avanzan hacia el rango B.
900C2Clase C alta. Creadores con ingresos moderados que compiten por el ascenso a C1.
800C3Clase C media. Creadores con ingresos regulares en la mitad del rango C.
700C4Clase C baja. Creadores que suben hacia las divisiones C altas.
600C5Entrada a la clase C. Recién ascendidos desde el rango D.
500D1Lo más alto del rango D. Creadores que empiezan a ganar de forma significativa en la región.
400D2Clase D alta. Creadores más nuevos o con menos volumen.
300D3Clase D media. Creadores que se están asentando en la competencia de ligas.
200D4Clase D baja. Creadores en sus primeros pasos en la liga.
100D5Liga de entrada. El punto de partida para los creadores que pueden entrar a la liga.
Puede que no todas las 18 divisiones existan en cada región. Llama primero al endpoint Listar ligas para ver qué clases hay en tu región objetivo y luego obtén la clase que necesitas.

Ejemplo práctico: encuentra a todos los creadores A1 que transmiten ahora en los Balcanes

Este ejemplo completo de varios pasos muestra el patrón recomendado: descubre las clases disponibles, busca la que necesitas, obtén sus entradas y luego filtra los creadores en vivo. Funciona con cualquier combinación de región y clase.

1
Obtén las ligas disponibles de la región BK (Balcanes)
2
Busca la entrada A1 y confirma que existe
3
Obtén las entradas de la liga A1
4
Filtra los creadores con isLive === true
// Complete example: Find all A1 creators live in Balkans right now

const BASE = 'https://tik.tools'
const REGION = 'BK'
const HEADERS = { 'x-api-key': 'YOUR_ULTRA_API_KEY' }

async function getA1LiveCreators() {
  // Step 1: Fetch available leagues for Balkans
  const leaguesRes = await fetch(`${BASE}/api/leaderboards/leagues/${REGION}`, {
    headers: HEADERS
  })
  const leagues = await leaguesRes.json()

  // Step 2: Find the A1 class (classType 2000)
  const a1 = leagues.find(l => l.classLabel === 'A1')
  if (!a1) {
    console.log('A1 class not found in Balkans')
    return []
  }

  console.log(`Found A1 class: ${a1.count} creators, last updated ${a1.updatedAt}`)

  // Step 3: Fetch A1 entries
  const entriesRes = await fetch(
    `${BASE}/api/leaderboards/league/${REGION}/${a1.classType}`,
    { headers: HEADERS }
  )
  const data = await entriesRes.json()

  if (!data.hasFullAccess) {
    console.warn(`Only showing ${data.entries.length} of ${data.totalCount} entries (teaser mode)`)
  }

  // Step 4: Filter for creators currently live
  const liveCreators = data.entries.filter(e => e.isLive)

  return liveCreators
}

const live = await getA1LiveCreators()
console.log(`\n${live.length} A1 creator(s) live in Balkans right now:\n`)

for (const creator of live) {
  console.log(`  #${creator.rank} @${creator.uniqueId} - ${creator.score.toLocaleString()} diamonds`)
}

// Connect to their streams via TikTool WebSocket
for (const creator of live) {
  console.log(`  wss://api.tik.tools?uniqueId=${creator.uniqueId}&apiKey=YOUR_API_KEY`)
}

Límites de uso y buenas prácticas

Guarda en caché las respuestas en el cliente

Las posiciones del ranking cambian poco a poco. Guarda en caché entre 10-30 segundos antes de volver a consultar para no saturar la API sin necesidad.

Los datos de ligas se actualizan con un calendario fijo

Las tablas de ligas cambian despacio, así que no sirve de nada consultar los endpoints de ligas más de una vez cada pocos minutos.

Consulta las regiones por separado

Puedes consultar las 44 regiones en paralelo. Si necesitas datos de varias regiones, lanza las solicitudes de forma simultánea en lugar de una tras otra.

Usa isLive + roomId para conectarte

Cuando isLive es true en una entrada del ranking, puedes abrir un WebSocket a ese creador al instante con su uniqueId y tu API key.

Guarda las cookies de sesión de forma segura

Las cookies de sesión dan acceso a tu cuenta. Guárdalas en variables de entorno, nunca en el código fuente ni en repositorios públicos.

Lista las ligas antes de pedir entradas

No todas las clases existen en todas las regiones. Llama siempre primero al endpoint de listado para confirmar qué valores de classType están disponibles en tu región objetivo.

Preguntas frecuentes

¿Qué planes incluyen acceso a la API de rankings?

¿Qué necesito para acceder a los datos de clasificación de ligas?

¿Cada cuánto se actualizan los datos de los rankings?

¿Cuántas regiones hay disponibles?

¿Puedo saber desde el ranking si un creador está en vivo?

No aparecen todos los valores de classType en mi región. ¿Por qué?

¿Puedo consultar las 44 regiones a la vez?