概覽
TikTool 透過 tik.tools 的網站 API 提供兩類排行榜資料。兩個端點都會回傳依鑽石收益排序的 TikTok LIVE 直播主即時競爭排名資料。
地區排行榜
依地理區域劃分、以總鑽石收益排名的前 100 名直播主每日排行。全天持續更新。Basic、Pro 和 Ultra 訂閱者皆可使用。
- 每個地區前 100 名直播主
- 排名、分數(鑽石)、直播狀態、直播間 ID
- 全球 44 個地區
- 資料持續刷新
聯賽排名
參加 TikTok LIVE 聯賽的直播主依等級劃分的競爭排名資料(A1-D5)。可以看出任何地區每個競爭等級裡有誰。需要Ultra 開發者方案。Agency PASS(tik.tools/vip)是網站訂閱,提供的是網站上的聯賽資料瀏覽權限,不是程式化 API 存取。
- 18 個聯賽分組:A1, A2, A3, B1, B2, B3, B4, B5, C1, C2, C3, C4, C5, D1, D2, D3, D4, D5
- 各等級的排名條目,附直播狀態
- 較低方案可看到預覽(5 筆)
- 資料頻繁刷新
tik.tools(不是 api.tik.tools),採用工作階段驗證。請從你的伺服器呼叫,並帶上用付費開發者帳號登入 tik.tools 取得的有效工作階段 cookie。所有付費開發者方案(Basic、Pro、Ultra)都能使用地區排行榜端點。聯賽端點需要 Ultra 開發者方案。Agency PASS 訂閱(tik.tools/vip)是另一個僅限網站的產品,它提供透過 tik.tools 網站介面瀏覽聯賽資料的權限,而不是透過這個開發者 API。地區對照表
共有 44 個地區排行榜。國家排行榜端點網址請用 Slug,聯賽端點請用 地區代碼。
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 Africa端點:地區排行榜
https://tik.tools/api/leaderboards/country/:slug所有付費方案回傳某地區當天的前 100 名排行榜。條目依 score(今天累計的總鑽石收益)由高到低排序。
路徑參數
slugstring上方地區對照表中的地區 slug(例如 balkans、north-america)回應結構
[].ranknumber排行榜上的名次(1 = 收益最高)[].uniqueIdstringTikTok 使用者名稱(不含 @)[].nicknamestringTikTok 上顯示的名稱[].scorenumber今天在該地區累計的總鑽石收益[].isLiveboolean直播主目前是否正在直播[].roomIdstring | null正在直播時為直播間 ID,否則為 null回應範例
[
{
"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
}
]程式碼範例
// 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]' : ''}`)
}聯賽端點
hasFullAccess 欄位會是 false,maskedCount 會顯示有多少筆被隱藏。注意:Agency PASS 訂閱(tik.tools/vip)提供網站上的聯賽資料瀏覽權限,但不是開發者 API 訂閱。4a. 列出某地區的聯賽
https://tik.tools/api/leaderboards/leagues/:region僅限 Ultra列出指定地區可用的聯賽等級,包括每個等級有多少直播主,以及資料最後更新時間。
路徑參數
regionstring地區對照表中的地區代碼(例如 BK、BC、US+)回應結構
[].classTypenumber數字等級代號(見下方 classType 對照表)[].classLabelstring易讀的等級名稱(例如 "A1"、"B5")[].countnumber目前在此等級的直播主人數[].updatedAtstring最後一次資料刷新的 ISO 8601 時間戳記回應範例
[
{ "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. 取得聯賽條目
https://tik.tools/api/leaderboards/league/:region/:classType僅限 Ultra回傳某地區特定聯賽等級中的直播主排名清單。這是打造聯賽相關工具和直播主監控儀表板的主要端點。
路徑參數
regionstring地區代碼(例如 BK、US+)classTypenumber數字等級代號(2000=A1、1900=A2、1100=B5 等)回應結構
hasFullAccessboolean你的方案有完整權限時為 true;false = 預覽模式(5 筆)maskedCountnumber因方案限制被隱藏的條目數(hasFullAccess 時為 0)totalCountnumber此等級的直播主總數entries[].ranknumber在此等級中的名次entries[].userIdstringTikTok 數字使用者 ID(穩定的後端 ID,永遠不變)entries[].uniqueIdstringTikTok 使用者名稱 / 帳號,不含 @(使用者可更改)entries[].nicknamestring顯示名稱(使用者可更改)entries[].scorenumber本期聯賽累計的鑽石收益entries[].isLiveboolean直播主目前是否正在直播回應範例
{
"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 對照表
聯賽等級把數字 classType 值對應到競爭等級。A1 是最高等級,也就是鑽石收益最多的頂尖直播主。D5 是進入聯賽競爭的起點。
2000A1頂尖等級。地區內收益最高的直播主。競爭最激烈,上榜所需鑽石也最多。1900A2資深等級。已站穩的高收益直播主,正朝 A1 晉級。1800A3穩定的 A 級。持續高收益、守住頂尖區間的直播主。1500B1B 區間頂端。再晉級一次就進入 A 組的直播主。1400B2B 級上段。實力堅強、競爭 B1 的直播主。1300B3B 級中段。B 區間中收益穩定的直播主。1200B4B 級下段。正往 B 上段分組邁進的直播主。1100B5B 級入門。整個聯賽期間收益穩定且強勁的直播主。1000C1C 區間頂端。正往 B 級區間邁進的活躍直播主。900C2C 級上段。收益中等、競爭晉級 C1 的直播主。800C3C 級中段。C 區間中收益規律的直播主。700C4C 級下段。正往 C 上段分組爬升的直播主。600C5C 級入門。剛從 D 區間晉級上來。500D1D 區間頂端。開始在該地區有可觀收益的直播主。400D2D 級上段。較新或收益量較低的直播主。300D3D 級中段。正在適應聯賽競爭的直播主。200D4D 級下段。剛起步的聯賽直播主。100D5入門聯賽。符合聯賽資格直播主的起點。實作範例:找出巴爾幹所有正在直播的 A1 直播主
這個完整的多步驟範例示範建議的做法:找出可用的等級、找到你要的那個、抓取它的條目,再篩選出直播中的直播主。適用於任何地區和等級組合。
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`)
}速率限制與最佳做法
排行榜名次是逐漸變動的。重新抓取前先快取 10-30 秒,避免不必要地狂打 API。
聯賽榜單變化緩慢,所以輪詢聯賽端點比每幾分鐘一次更頻繁並沒有好處。
全部 44 個地區都可以平行輪詢。需要多地區資料時,請同時發出請求,不要依序一個一個來。
排行榜條目的 isLive 為 true 時,你可以馬上用對方的 uniqueId 和你的 API 金鑰對該直播主開啟 WebSocket。
工作階段 cookie 可以存取你的帳號。請存放在環境變數中,絕對不要放進原始碼或公開儲存庫。
不是每個地區都有每個等級。一定要先呼叫列表端點,確認目標地區有哪些 classType 值可用。