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.
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
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
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.
north-americaUS+North AmericacanadaCACanadabrazil-regionBRBrazilmexicoMXMexicolatin-americaLATAMLatin Americacolombia-peru-dominican-republicCO+Colombia, Peru & Dominican RepublicjamaicaJMJamaicaaustralia-pacificAU+Australia & Pacificjapan-regionJPJapansouth-korea-regionKRSouth Koreataiwan-regionTWTaiwanindonesia-regionIDIndonesiamalaysia-regionMYMalaysiasingaporeSGSingaporephilippines-regionPHPhilippinesthailand-regionTHThailandvietnam-regionVNVietnamnepalNPNepalbangladesh-bhutan-maldivesBD+Bangladesh, Bhutan & MaldivesazerbaijanAZAzerbaijankazakhstanKZKazakhstankyrgyzstanKGKyrgyzstanbelarusBYBelarusukraineUAUkrainecentral-asiaCCACentral AsiadachDE+Germany & DACHswitzerlandCHSwitzerlandiberiaES+Iberiacentral-europeHU+Central EuropelusophonePT+Lusophonefrance-regionFR+FrancebelgiumBEBelgiumnetherlands-regionNLNetherlandsunited-kingdom-regionUK+United Kingdomireland-baltics-maltaIE+Ireland, Baltics & Maltaitaly-regionIT+ItalyswedenSESwedenscandinaviaSE+Nordicspoland-regionPLPolandromania-regionRORomaniabalkansBKBalkansturkey-regionTRTurkeymiddle-east-africaMENAMiddle East & Africanigeria-ghana-kenya-south-africaNG+Nigeria, Ghana, Kenya & South AfricaEndpoint : classement régional
https://tik.tools/api/leaderboards/country/:slugToutes offres payantesRenvoie 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
slugstringSlug de région issu du tableau Référence des régions ci-dessus (ex. balkans, north-america)Schéma de réponse
[].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 nullExemple 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
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
https://tik.tools/api/leaderboards/leagues/:regionUltra uniquementListe 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
regionstringCode région (ex. BK, BC, US+) issu du tableau Référence des régionsSchéma de réponse
[].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éesExemple 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
https://tik.tools/api/leaderboards/league/:region/:classTypeUltra uniquementRenvoie 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
regionstringCode région (ex. BK, US+)classTypenumberIdentifiant numérique de la classe (2000=A1, 1900=A2, 1100=B5, etc.)Schéma de réponse
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 classeentries[].ranknumberPosition dans cette classeentries[].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 coursentries[].isLivebooleanIndique si le créateur est actuellement en liveExemple 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.
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.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.
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
Les positions du classement évoluent progressivement. Garde en cache 10-30 secondes avant de recharger pour ne pas surcharger l'API inutilement.
Les classements de ligue évoluent lentement : interroger les endpoints de ligue plus souvent que toutes les quelques minutes ne sert à rien.
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.
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.
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.
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.