Genel Bakış
TikTool, tik.tools adresindeki web sitesi API'si üzerinden iki tür sıralama verisi sunar. İki uç nokta da TikTok LIVE yayıncıları için elmas kazancına göre sıralanmış anlık rekabet verisi döndürür.
Bölgesel Sıralamalar
Toplam kazanılan elmasa göre ilk 100 yayıncının günlük sıralaması, coğrafi bölgelere ayrılmış halde. Gün boyunca sürekli güncellenir. Basic, Pro ve Ultra abonelerine açıktır.
- Bölge başına ilk 100 yayıncı
- Sıra, puan (elmas), canlı durumu, oda kimliği
- Dünya genelinde 44 bölge
- Veri sürekli yenilenir
Lig Sıralamaları
TikTok LIVE liglerinde yarışan yayıncılar için sınıf bazlı rekabet verisi (A1-D5). Herhangi bir bölgede hangi yayıncının hangi rekabet kademesinde olduğunu gösterir. Ultra geliştirici planı gerektirir. Agency PASS (tik.tools/vip) bir web sitesi aboneliğidir: lig verisine web sitesi arayüzünden erişim verir, programatik API erişimi vermez.
- 18 lig kademesi: A1, A2, A3, B1, B2, B3, B4, B5, C1, C2, C3, C4, C5, D1, D2, D3, D4, D5
- Canlı durumuyla sınıf bazlı sıralı kayıtlar
- Alt planlar için önizleme (5 kayıt)
- Veri sık sık yenilenir
api.tik.tools değil, tik.tools üzerindedir ve oturum tabanlı kimlik doğrulama kullanır. Bunları, ücretli bir geliştirici hesabıyla tik.tools'a giriş yaparak aldığın geçerli bir oturum çereziyle kendi sunucundan çağır. Tüm ücretli geliştirici planları (Basic, Pro, Ultra) bölgesel sıralama uç noktalarına erişebilir. Lig uç noktaları Ultra geliştirici planı gerektirir. Agency PASS aboneliği (tik.tools/vip) yalnızca web sitesine yönelik ayrı bir üründür: lig verisine bu geliştirici API'si üzerinden değil, tik.tools web sitesi arayüzünden erişim verir.Bölge Referansı
44 bölgesel sıralama mevcut. Ülke sıralaması uç nokta URL'sinde Slug değerini, lig uç noktalarında ise Bölge Kodu değerini kullan.
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 AfricaUç nokta: Bölgesel Sıralama
https://tik.tools/api/leaderboards/country/:slugTüm Ücretli PlanlarBir bölgenin o günkü ilk 100 sıralamasını döndürür. Kayıtlar score değerine (bugün kazanılan toplam elmas) göre azalan sırada dizilir.
Yol Parametreleri
slugstringYukarıdaki Bölge Referansı tablosundan bölge slug'ı (ör. balkans, north-america)Yanıt Şeması
[].ranknumberSıralamadaki konum (1 = en çok kazanan)[].uniqueIdstringTikTok kullanıcı adı (@ olmadan)[].nicknamestringTikTok'ta görünen ad[].scorenumberBu bölgede bugün kazanılan toplam elmas[].isLivebooleanYayıncının şu anda canlı yayında olup olmadığı[].roomIdstring | nullŞu anda yayındaysa canlı oda kimliği, değilse nullÖrnek Yanıt
[
{
"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
}
]Kod Örnekleri
// 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]' : ''}`)
}Lig Uç Noktaları
hasFullAccess alanı false olur ve maskedCount kaç kaydın gizlendiğini gösterir. Not: Agency PASS aboneliği (tik.tools/vip) lig verisine web sitesinden erişim verir ama bir geliştirici API aboneliği değildir.4a. Bir Bölgenin Liglerini Listele
https://tik.tools/api/leaderboards/leagues/:regionYalnızca UltraBelirli bir bölgedeki mevcut lig sınıflarını, her sınıfta kaç yayıncı olduğunu ve verinin en son ne zaman güncellendiğini listeler.
Yol Parametreleri
regionstringBölge Referansı tablosundan bölge kodu (ör. BK, BC, US+)Yanıt Şeması
[].classTypenumberSayısal sınıf tanımlayıcısı (aşağıdaki classType Referansına bak)[].classLabelstringOkunabilir sınıf adı (ör. "A1", "B5")[].countnumberŞu anda bu sınıftaki yayıncı sayısı[].updatedAtstringSon veri yenilemesinin ISO 8601 zaman damgasıÖrnek Yanıt
[
{ "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. Lig Kayıtlarını Al
https://tik.tools/api/leaderboards/league/:region/:classTypeYalnızca UltraBir bölgede belirli bir lig sınıfındaki yayıncıların sıralı listesini döndürür. Lig odaklı araçlar ve yayıncı takip panelleri geliştirmek için temel uç nokta budur.
Yol Parametreleri
regionstringBölge kodu (ör. BK, US+)classTypenumberSayısal sınıf tanımlayıcısı (2000=A1, 1900=A2, 1100=B5 vb.)Yanıt Şeması
hasFullAccessbooleanPlanın tam erişime sahipse true; false = önizleme modu (5 kayıt)maskedCountnumberPlan kısıtlamaları nedeniyle gizlenen kayıt sayısı (hasFullAccess ise 0)totalCountnumberBu sınıftaki toplam yayıncı sayısıentries[].ranknumberBu sınıf içindeki konumentries[].userIdstringTikTok sayısal kullanıcı kimliği (sabit arka uç kimliği, hiç değişmez)entries[].uniqueIdstring@ olmadan TikTok kullanıcı adı (kullanıcı değiştirebilir)entries[].nicknamestringGörünen ad (kullanıcı değiştirebilir)entries[].scorenumberMevcut lig döneminde kazanılan elmasentries[].isLivebooleanYayıncının şu anda canlı yayında olup olmadığıÖrnek Yanıt
{
"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 Referansı
Lig sınıfları, sayısal classType değerlerini rekabet kademelerine eşler. A1 en üst kademedir: en çok elmas kazanan elit yayıncılar. D5 lig rekabetine giriş noktasıdır.
2000A1Elit kademe. Bölgenin en çok kazananları. En yüksek rekabet, yerleşmek için en yüksek elmas şartı.1900A2Kıdemli kademe. A1'e yükselmeye çalışan, yerleşik ve yüksek kazançlı yayıncılar.1800A3Yerleşik A sınıfı. Elit aralıktaki yerini koruyan, istikrarlı yüksek kazançlı yayıncılar.1500B1B aralığının zirvesi. A kademelerine bir yükselme uzaklıktaki yayıncılar.1400B2Üst B sınıfı. B1 için yarışan güçlü kazançlı yayıncılar.1300B3Orta B sınıfı. B aralığının ortasında istikrarlı kazanan yayıncılar.1200B4Alt B sınıfı. Üst B kademelerine doğru ilerleyen yayıncılar.1100B5B sınıfı girişi. Lig dönemi boyunca güçlü ve istikrarlı kazanç sağlayan yayıncılar.1000C1C aralığının zirvesi. B sınıfına doğru ilerleyen aktif kazançlı yayıncılar.900C2Üst C sınıfı. C1'e yükselmek için yarışan orta düzey kazançlı yayıncılar.800C3Orta C sınıfı. C aralığının ortasında düzenli kazanan yayıncılar.700C4Alt C sınıfı. Üst C kademelerine doğru tırmanan yayıncılar.600C5C sınıfı girişi. D aralığından yeni yükselenler.500D1D aralığının zirvesi. Bölgede kayda değer kazanmaya başlayan yayıncılar.400D2Üst D sınıfı. Daha yeni ya da daha düşük hacimli kazananlar.300D3Orta D sınıfı. Lig rekabetine alışan yayıncılar.200D4Alt D sınıfı. Ligde ilk kazançlarını elde edenler.100D5Giriş ligi. Lige katılmaya uygun yayıncılar için başlangıç noktası.Çalışan Örnek: Balkanlar'da Şu An Yayında Olan Tüm A1 Yayıncılarını Bul
Bu çok adımlı eksiksiz örnek, önerilen kalıbı gösterir: mevcut sınıfları keşfet, ihtiyacın olanı bul, kayıtlarını çek, sonra canlı yayıncılara göre filtrele. Her bölge ve sınıf kombinasyonunda çalışır.
isLive === true olan yayıncılara göre filtrele// 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`)
}İstek Limitleri ve En İyi Uygulamalar
Sıralamadaki konumlar yavaş yavaş değişir. API'yi gereksiz yere yormamak için yeniden çekmeden önce 10-30 saniye önbellekte tut.
Lig tabloları yavaş değişir; bu yüzden lig uç noktalarını birkaç dakikada birden daha sık sorgulamanın bir faydası yok.
44 bölgenin hepsi paralel olarak sorgulanabilir. Birden fazla bölgenin verisine ihtiyacın varsa istekleri sırayla değil, eşzamanlı gönder.
Bir sıralama kaydında isLive true ise, o yayıncının uniqueId değeri ve API anahtarınla hemen bir WebSocket açabilirsin.
Oturum çerezleri hesabına erişim sağlar. Onları ortam değişkenlerinde sakla; asla kaynak kodda ya da herkese açık depolarda tutma.
Her sınıf her bölgede bulunmaz. Hedef bölgende hangi classType değerlerinin mevcut olduğunu doğrulamak için her zaman önce listeleme uç noktasını çağır.