Guide développeur

API de classements et de ligues

Données de classement TikTok LIVE en temps réel. Récupère les classements quotidiens de 44 régions, interroge les classes de ligue en direct et suis les performances des créateurs.

TOUTES OFFRES PAYANTES ULTRA UNIQUEMENT - Ligues

Vue d'ensemble

TikTool expose deux catégories de données de classement via l'API de son site sur tik.tools. Les deux endpoints renvoient en temps réel des classements compétitifs de créateurs TikTok LIVE triés par diamants gagnés.

Toutes offres payantes

Classements régionaux

Classements quotidiens des 100 meilleurs créateurs par total de diamants gagnés, par région géographique. Mis à jour en continu tout au long de la journée. Disponible pour les abonnés Basic, Pro et Ultra.

  • Top 100 des créateurs par région
  • Rang, score (diamants), statut live, ID de la salle
  • 44 régions dans le monde
  • Données actualisées en continu
Offre développeur Ultra uniquement

Classements de ligue

Classements compétitifs par classe (A1-D5) des créateurs qui participent aux ligues TikTok LIVE. Montre qui se trouve dans chaque palier, dans n'importe quelle région. Nécessite l'offre développeur Ultra. L'Agency PASS (tik.tools/vip) est un abonnement au site - il donne accès aux données de ligue sur le site, pas un accès programmatique via l'API.

  • 18 divisions de ligue : A1, A2, A3, B1, B2, B3, B4, B5, C1, C2, C3, C4, C5, D1, D2, D3, D4, D5
  • Entrées classées par classe avec statut live
  • Aperçu derrière une vitre pour les offres inférieures (5 entrées)
  • Données actualisées fréquemment
Authentification : Ces endpoints sont sur tik.tools (pas api.tik.tools) et utilisent une authentification par session. Appelle-les depuis ton serveur avec un cookie de session valide, obtenu en te connectant à tik.tools avec un compte développeur payant. Toutes les offres développeur payantes (Basic, Pro, Ultra) ont accès aux endpoints de classements régionaux. Les endpoints de ligue nécessitent l'offre développeur Ultra. L'abonnement Agency PASS (sur tik.tools/vip) est un produit distinct, réservé au site - il donne accès aux données de ligue via l'interface du site tik.tools, pas via cette API développeur.

Référence des régions

44 classements régionaux sont disponibles. Utilise le Slug dans l'URL de l'endpoint de classement par pays, et le Code région dans les endpoints de ligue.

SlugCode régionDescription
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 : classement régional

GEThttps://tik.tools/api/leaderboards/country/:slugToutes offres payantes

Renvoie le top 100 du jour pour une région. Les entrées sont triées par score (total des diamants gagnés aujourd'hui) par ordre décroissant.

Paramètres de chemin

ParamètreTypeDescription
slugstringSlug de région issu du tableau Référence des régions ci-dessus (ex. balkans, north-america)

Schéma de réponse

ChampTypeDescription
[].ranknumberPosition dans le classement (1 = celui qui gagne le plus)
[].uniqueIdstringPseudo TikTok (sans @)
[].nicknamestringNom affiché sur TikTok
[].scorenumberTotal des diamants gagnés aujourd'hui dans cette région
[].isLivebooleanIndique si le créateur est actuellement en live
[].roomIdstring | nullID de la salle live si le créateur est en live, sinon null

Exemple de réponse

[
  {
    "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
  }
]

Exemples de code

// 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 ligue

Ultra requis. Les endpoints de ligue nécessitent une offre développeur Ultra. Les requêtes des offres Basic et Pro reçoivent un aperçu de 5 entrées - le champ hasFullAccess de la réponse vaudra false et maskedCount indiquera combien d'entrées sont masquées. Remarque : l'abonnement Agency PASS (tik.tools/vip) donne accès aux données de ligue sur le site, mais ce n'est pas un abonnement à l'API développeur.

4a. Lister les ligues d'une région

GEThttps://tik.tools/api/leaderboards/leagues/:regionUltra uniquement

Liste les classes de ligue disponibles pour une région, avec le nombre de créateurs dans chaque classe et la date de la dernière mise à jour des données.

Paramètres de chemin

ParamètreTypeDescription
regionstringCode région (ex. BK, BC, US+) issu du tableau Référence des régions

Schéma de réponse

ChampTypeDescription
[].classTypenumberIdentifiant numérique de la classe (voir la référence classType ci-dessous)
[].classLabelstringNom lisible de la classe (ex. "A1", "B5")
[].countnumberNombre de créateurs actuellement dans cette classe
[].updatedAtstringTimestamp ISO 8601 de la dernière actualisation des données

Exemple de réponse

[
  { "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. Récupérer les entrées d'une ligue

GEThttps://tik.tools/api/leaderboards/league/:region/:classTypeUltra uniquement

Renvoie la liste classée des créateurs d'une classe de ligue donnée pour une région. C'est l'endpoint principal pour créer des outils qui tiennent compte des ligues et des tableaux de bord de suivi de créateurs.

Paramètres de chemin

ParamètreTypeDescription
regionstringCode région (ex. BK, US+)
classTypenumberIdentifiant numérique de la classe (2000=A1, 1900=A2, 1100=B5, etc.)

Schéma de réponse

ChampTypeDescription
hasFullAccessbooleanTrue si ton offre a l'accès complet ; false = mode aperçu (5 entrées)
maskedCountnumberNombre d'entrées masquées à cause des restrictions de l'offre (0 si hasFullAccess)
totalCountnumberNombre total de créateurs dans cette classe
entries[].ranknumberPosition dans cette classe
entries[].userIdstringID utilisateur numérique TikTok (ID backend stable, ne change jamais)
entries[].uniqueIdstringPseudo TikTok sans @ (modifiable par l'utilisateur)
entries[].nicknamestringNom affiché (modifiable par l'utilisateur)
entries[].scorenumberDiamants gagnés sur la période de ligue en cours
entries[].isLivebooleanIndique si le créateur est actuellement en live

Exemple de réponse

{
  "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}`)
}

Référence classType

Les classes de ligue associent des valeurs numériques classType à des paliers compétitifs. A1 est le palier le plus haut - l'élite des créateurs qui gagnent le plus de diamants. D5 est le point d'entrée dans la compétition de ligue.

classTypeClasseDescription
2000A1Palier élite. Ceux qui gagnent le plus dans la région. Concurrence maximale, exigences en diamants les plus élevées pour se classer.
1900A2Palier senior. Créateurs confirmés à gros revenus qui visent la promotion en A1.
1800A3Classe A confirmée. Gros gagnants réguliers qui tiennent leur place dans l'élite.
1500B1Haut de la plage B. Créateurs à une promotion des divisions A.
1400B2Classe B supérieure. Bons gagnants en lutte pour la B1.
1300B3Classe B intermédiaire. Gagnants réguliers au milieu de la plage B.
1200B4Classe B inférieure. Créateurs qui progressent vers les divisions B supérieures.
1100B5Entrée en classe B. Créateurs aux gains solides et réguliers sur toute la période de ligue.
1000C1Haut de la plage C. Gagnants actifs qui progressent vers la classe B.
900C2Classe C supérieure. Gagnants modérés en lutte pour la promotion en C1.
800C3Classe C intermédiaire. Gagnants réguliers au milieu de la plage C.
700C4Classe C inférieure. Créateurs qui grimpent vers les divisions C supérieures.
600C5Entrée en classe C. Récemment promus depuis la plage D.
500D1Haut de la plage D. Créateurs qui commencent à gagner significativement dans la région.
400D2Classe D supérieure. Gagnants plus récents ou à plus faible volume.
300D3Classe D intermédiaire. Créateurs qui s'installent dans la compétition de ligue.
200D4Classe D inférieure. Premiers gains en ligue.
100D5Ligue d'entrée. Le point de départ des créateurs éligibles aux ligues.
Les 18 divisions ne sont pas forcément toutes présentes dans chaque région. Appelle d'abord l'endpoint Lister les ligues pour découvrir quelles classes existent dans ta région cible, puis récupère la classe dont tu as besoin.

Exemple concret : trouver tous les créateurs A1 en live en ce moment dans les Balkans

Cet exemple complet en plusieurs étapes montre le schéma recommandé : découvrir les classes disponibles, trouver celle qu'il te faut, récupérer ses entrées, puis filtrer les créateurs en live. Ça marche pour n'importe quelle combinaison de région et de classe.

1
Récupérer les ligues disponibles pour la région BK (Balkans)
2
Trouver l'entrée A1 et vérifier qu'elle existe
3
Récupérer les entrées de la ligue A1
4
Filtrer les créateurs 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`)
}

Limites de débit et bonnes pratiques

Mets les réponses en cache côté client

Les positions du classement évoluent progressivement. Garde en cache 10-30 secondes avant de recharger pour ne pas surcharger l'API inutilement.

Les données de ligue s'actualisent selon un rythme fixe

Les classements de ligue évoluent lentement : interroger les endpoints de ligue plus souvent que toutes les quelques minutes ne sert à rien.

Interroge les régions indépendamment

Les 44 régions peuvent être interrogées en parallèle. Si tu as besoin de données multi-régions, lance les requêtes simultanément plutôt que l'une après l'autre.

Utilise isLive + roomId pour te connecter

Quand isLive vaut true sur une entrée du classement, tu peux ouvrir immédiatement un WebSocket vers ce créateur avec son uniqueId et ta clé API.

Stocke les cookies de session en sécurité

Les cookies de session donnent accès à ton compte. Stocke-les dans des variables d'environnement, jamais dans le code source ni dans des dépôts publics.

Liste les ligues avant de récupérer les entrées

Toutes les classes n'existent pas dans toutes les régions. Appelle toujours l'endpoint de liste d'abord pour confirmer quelles valeurs classType sont disponibles dans ta région cible.

Questions fréquentes

Quelles offres incluent l'accès à l'API de classements ?

Que faut-il pour accéder aux classements de ligue ?

À quelle fréquence les données de classement sont-elles mises à jour ?

Combien de régions sont disponibles ?

Puis-je savoir depuis le classement si un créateur est en live ?

Toutes les valeurs classType n'apparaissent pas pour ma région. Pourquoi ?

Puis-je interroger les 44 régions en même temps ?