Überblick
TikTool stellt über die Website-API unter tik.tools zwei Arten von Ranglistendaten bereit. Beide Endpunkte liefern Ranking-Daten in Echtzeit für TikTok-LIVE-Creator, sortiert nach Diamanten-Einnahmen.
Regionale Ranglisten
Tägliche Rankings der Top 100 Creator nach insgesamt verdienten Diamanten, aufgeteilt nach Region. Wird den ganzen Tag über laufend aktualisiert. Verfügbar für Abonnenten von Basic, Pro und Ultra.
- Top 100 Creator pro Region
- Platz, Score (Diamanten), Live-Status, Raum-ID
- 44 Regionen weltweit
- Daten werden laufend aktualisiert
Liga-Rankings
Klassenbasierte Ranking-Daten (A1-D5) für Creator, die in TikTok-LIVE-Ligen antreten. Zeigt, wer in welcher Liga-Stufe einer Region steht. Setzt den Ultra-Entwicklertarif voraus. Agency PASS (tik.tools/vip) ist ein Website-Abo - es gibt Zugriff auf Liga-Daten über die Website, aber keinen programmatischen API-Zugriff.
- 18 Liga-Divisionen: A1, A2, A3, B1, B2, B3, B4, B5, C1, C2, C3, C4, C5, D1, D2, D3, D4, D5
- Rangeinträge pro Klasse mit Live-Status
- Teaser hinter Glas für niedrigere Tarife (5 Einträge)
- Daten werden häufig aktualisiert
tik.tools (nicht auf api.tik.tools) und nutzen Session-basierte Authentifizierung. Ruf sie von deinem Server mit einem gültigen Session-Cookie auf, das du bekommst, wenn du dich mit einem bezahlten Entwicklerkonto bei tik.tools anmeldest. Alle bezahlten Entwicklertarife (Basic, Pro, Ultra) haben Zugriff auf die Endpunkte der regionalen Ranglisten. Liga-Endpunkte setzen den Ultra-Entwicklertarif voraus. Das Agency-PASS-Abo (unter tik.tools/vip) ist ein separates, reines Website-Produkt - es gibt Zugriff auf Liga-Daten über die Oberfläche von tik.tools, nicht über diese Entwickler-API.Regionsübersicht
Es gibt 44 regionale Ranglisten. Nutz den Slug in der Endpunkt-URL der Länder-Rangliste und den Regionscode in den Liga-Endpunkten.
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 AfricaEndpunkt: Regionale Rangliste
https://tik.tools/api/leaderboards/country/:slugAlle BezahltarifeLiefert die Top-100-Rangliste des aktuellen Tages für eine Region. Die Einträge sind absteigend nach score sortiert (insgesamt heute verdiente Diamanten).
Pfadparameter
slugstringRegions-Slug aus der Regionsübersicht oben (z. B. balkans, north-america)Antwortschema
[].ranknumberPlatz in der Rangliste (1 = höchste Einnahmen)[].uniqueIdstringTikTok-Username (ohne @)[].nicknamestringAnzeigename auf TikTok[].scorenumberHeute in dieser Region insgesamt verdiente Diamanten[].isLivebooleanOb der Creator gerade live streamt[].roomIdstring | nullID des Live-Raums, falls gerade gestreamt wird, sonst nullBeispielantwort
[
{
"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
}
]Codebeispiele
// 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]' : ''}`)
}Liga-Endpunkte
hasFullAccess in der Antwort ist dann false, und maskedCount zeigt, wie viele Einträge verborgen sind. Hinweis: Das Agency-PASS-Abo (tik.tools/vip) gibt Zugriff auf Liga-Daten über die Website, ist aber kein Entwickler-API-Abo.4a. Ligen einer Region auflisten
https://tik.tools/api/leaderboards/leagues/:regionNur UltraListet die verfügbaren Liga-Klassen einer Region auf, inklusive der Anzahl Creator pro Klasse und dem Zeitpunkt der letzten Aktualisierung.
Pfadparameter
regionstringRegionscode (z. B. BK, BC, US+) aus der RegionsübersichtAntwortschema
[].classTypenumberNumerische Klassen-ID (siehe classType-Übersicht unten)[].classLabelstringLesbarer Klassenname (z. B. "A1", "B5")[].countnumberAnzahl der Creator, die aktuell in dieser Klasse sind[].updatedAtstringISO-8601-Zeitstempel der letzten DatenaktualisierungBeispielantwort
[
{ "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. Liga-Einträge abrufen
https://tik.tools/api/leaderboards/league/:region/:classTypeNur UltraLiefert die Rangliste der Creator in einer bestimmten Liga-Klasse einer Region. Das ist der wichtigste Endpunkt für Liga-Tools und Dashboards zur Creator-Überwachung.
Pfadparameter
regionstringRegionscode (z. B. BK, US+)classTypenumberNumerische Klassen-ID (2000=A1, 1900=A2, 1100=B5 usw.)Antwortschema
hasFullAccessbooleanTrue, wenn dein Tarif vollen Zugriff hat; false = Teaser-Modus (5 Einträge)maskedCountnumberAnzahl der Einträge, die wegen Tarif-Einschränkungen verborgen sind (0 bei hasFullAccess)totalCountnumberGesamtzahl der Creator in dieser Klasseentries[].ranknumberPlatz innerhalb dieser Klasseentries[].userIdstringNumerische TikTok-User-ID (stabile Backend-ID, ändert sich nie)entries[].uniqueIdstringTikTok-Username/Handle ohne @ (vom User änderbar)entries[].nicknamestringAnzeigename (vom User änderbar)entries[].scorenumberIn der aktuellen Liga-Periode verdiente Diamantenentries[].isLivebooleanOb der Creator gerade live streamtBeispielantwort
{
"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}`)
}classType-Übersicht
Liga-Klassen ordnen numerische classType-Werte den Liga-Stufen zu. A1 ist die höchste Stufe - die Elite-Creator mit den meisten Diamanten. D5 ist der Einstieg in die Liga.
2000A1Elite-Stufe. Die Top-Verdiener der Region. Härteste Konkurrenz, höchste Diamanten-Anforderungen für eine Platzierung.1900A2Obere Stufe. Etablierte Creator mit hohen Einnahmen auf dem Weg zum Aufstieg in A1.1800A3Etablierte A-Klasse. Konstant hohe Einnahmen, die ihren Platz im Elite-Bereich halten.1500B1Spitze des B-Bereichs. Creator, die nur einen Aufstieg von den A-Divisionen entfernt sind.1400B2Obere B-Klasse. Starke Verdiener im Kampf um B1.1300B3Mittlere B-Klasse. Stabile Verdiener in der Mitte des B-Bereichs.1200B4Untere B-Klasse. Creator auf dem Weg zu den oberen B-Divisionen.1100B5Einstieg in die B-Klasse. Creator mit starken, konstanten Einnahmen über die Liga-Periode.1000C1Spitze des C-Bereichs. Aktive Verdiener auf dem Weg in den B-Bereich.900C2Obere C-Klasse. Mittlere Verdiener im Kampf um den Aufstieg in C1.800C3Mittlere C-Klasse. Regelmäßige Verdiener in der Mitte des C-Bereichs.700C4Untere C-Klasse. Creator auf dem Weg zu den oberen C-Divisionen.600C5Einstieg in die C-Klasse. Frisch aus dem D-Bereich aufgestiegen.500D1Spitze des D-Bereichs. Creator, die in der Region allmählich spürbar verdienen.400D2Obere D-Klasse. Neuere Creator oder Creator mit geringerem Volumen.300D3Mittlere D-Klasse. Creator, die sich in der Liga einfinden.200D4Untere D-Klasse. Erste Einnahmen in der Liga.100D5Einstiegsliga. Der Startpunkt für ligaberechtigte Creator.Praxisbeispiel: Alle A1-Creator finden, die gerade in Balkan live sind
Dieses komplette mehrstufige Beispiel zeigt das empfohlene Vorgehen: verfügbare Klassen ermitteln, die gesuchte finden, ihre Einträge abrufen und dann nach Live-Creatorn filtern. Das funktioniert für jede Kombination aus Region und Klasse.
isLive === true filtern// 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`)
}Rate-Limits & Best Practices
Ranglistenplätze verschieben sich nur nach und nach. Cache 10-30 Sekunden, bevor du neu abrufst, damit du die API nicht unnötig belastest.
Liga-Ranglisten ändern sich langsam, deshalb bringt es nichts, Liga-Endpunkte öfter als alle paar Minuten abzufragen.
Alle 44 Regionen lassen sich parallel abfragen. Wenn du Daten aus mehreren Regionen brauchst, schick die Anfragen gleichzeitig statt nacheinander.
Wenn isLive bei einem Ranglisteneintrag true ist, kannst du sofort einen WebSocket zu diesem Creator öffnen, mit seiner uniqueId und deinem API-Key.
Session-Cookies geben Zugriff auf dein Konto. Speicher sie in Umgebungsvariablen, niemals im Quellcode oder in öffentlichen Repositories.
Nicht jede Klasse gibt es in jeder Region. Ruf immer zuerst den Listen-Endpunkt auf, um zu prüfen, welche classType-Werte es in deiner Zielregion gibt.