Visão geral
O TikTool expõe duas categorias de dados de ranking pela API do site em tik.tools. Os dois endpoints retornam dados de classificação competitiva em tempo real dos criadores do TikTok LIVE, ordenados por diamantes ganhos.
Rankings regionais
Rankings diários dos top 100 criadores por total de diamantes ganhos, divididos por região geográfica. Atualizados continuamente ao longo do dia. Disponível para assinantes Basic, Pro e Ultra.
- Top 100 criadores por região
- Posição, pontuação (diamantes), status da live, ID da sala
- 44 regiões no mundo todo
- Os dados atualizam continuamente
Classificação das ligas
Dados de classificação competitiva por classe (A1-D5) dos criadores que disputam as ligas do TikTok LIVE. Mostra quem está em cada faixa competitiva em qualquer região. Exige o plano Ultra para devs. O Agency PASS (tik.tools/vip) é uma assinatura do site - ele dá acesso aos dados de liga pela interface do site, não acesso programático pela API.
- 18 divisões de liga: A1, A2, A3, B1, B2, B3, B4, B5, C1, C2, C3, C4, C5, D1, D2, D3, D4, D5
- Entradas ranqueadas por classe, com status da live
- Prévia com vidro fosco para os planos inferiores (5 entradas)
- Os dados atualizam com frequência
tik.tools (não em api.tik.tools) e usam autenticação por sessão. Chame do seu servidor com um cookie de sessão válido, obtido ao entrar no tik.tools com uma conta de dev paga. Todos os planos pagos para devs (Basic, Pro, Ultra) têm acesso aos endpoints de ranking regional. Os endpoints de liga exigem o plano Ultra para devs. A assinatura Agency PASS (em tik.tools/vip) é um produto separado, só do site - ela dá acesso aos dados de liga pela interface do tik.tools, não por esta API para devs.Referência de regiões
Há 44 rankings regionais disponíveis. Use o Slug na URL do endpoint de ranking por país e o Código da região nos endpoints de liga.
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: Ranking regional
https://tik.tools/api/leaderboards/country/:slugTodos os planos pagosRetorna o ranking top 100 do dia atual de uma região. As entradas vêm ordenadas por score (total de diamantes ganhos hoje), do maior para o menor.
Parâmetros de caminho
slugstringSlug da região da tabela de Referência de regiões acima (ex.: balkans, north-america)Schema da resposta
[].ranknumberPosição no ranking (1 = quem mais ganhou)[].uniqueIdstringUsuário do TikTok (sem @)[].nicknamestringNome de exibição no TikTok[].scorenumberTotal de diamantes ganhos hoje nesta região[].isLivebooleanSe o criador está ao vivo agora[].roomIdstring | nullID da sala da live, se estiver ao vivo; senão, nullExemplo de resposta
[
{
"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
}
]Exemplos de código
// 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 liga
hasFullAccess da resposta vem como false e o maskedCount indica quantas entradas estão ocultas. Observação: a assinatura Agency PASS (tik.tools/vip) dá acesso aos dados de liga pelo site, mas não é uma assinatura da API para devs.4a. Listar as ligas de uma região
https://tik.tools/api/leaderboards/leagues/:regionSó UltraLista as classes de liga disponíveis em uma região, incluindo quantos criadores há em cada classe e quando os dados foram atualizados pela última vez.
Parâmetros de caminho
regionstringCódigo da região (ex.: BK, BC, US+) da tabela de Referência de regiõesSchema da resposta
[].classTypenumberIdentificador numérico da classe (veja a Referência de classType abaixo)[].classLabelstringNome legível da classe (ex.: "A1", "B5")[].countnumberNúmero de criadores nesta classe agora[].updatedAtstringTimestamp ISO 8601 da última atualização dos dadosExemplo de resposta
[
{ "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. Pegar as entradas de uma liga
https://tik.tools/api/leaderboards/league/:region/:classTypeSó UltraRetorna a lista ranqueada de criadores de uma classe de liga específica em uma região. É o endpoint principal para criar ferramentas que entendem as ligas e painéis de monitoramento de criadores.
Parâmetros de caminho
regionstringCódigo da região (ex.: BK, US+)classTypenumberIdentificador numérico da classe (2000=A1, 1900=A2, 1100=B5 etc.)Schema da resposta
hasFullAccessbooleanTrue se o seu plano tem acesso completo; false = modo prévia (5 entradas)maskedCountnumberNúmero de entradas ocultas por restrição do plano (0 se hasFullAccess)totalCountnumberNúmero total de criadores nesta classeentries[].ranknumberPosição dentro desta classeentries[].userIdstringID numérico do usuário no TikTok (ID estável do backend, nunca muda)entries[].uniqueIdstringUsuário/handle do TikTok sem @ (o usuário pode mudar)entries[].nicknamestringNome de exibição (o usuário pode mudar)entries[].scorenumberDiamantes ganhos no período atual da ligaentries[].isLivebooleanSe o criador está ao vivo agoraExemplo de resposta
{
"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}`)
}Referência de classType
As classes de liga associam valores numéricos de classType a faixas competitivas. A1 é a faixa mais alta - os criadores de elite que mais ganham diamantes. D5 é a porta de entrada na disputa das ligas.
2000A1Faixa de elite. Quem mais ganha na região. A maior concorrência e a maior exigência de diamantes para se manter.1900A2Faixa sênior. Criadores consolidados que ganham muito e buscam subir para a A1.1800A3Classe A consolidada. Criadores que ganham muito com consistência e seguram a vaga na faixa de elite.1500B1Topo da faixa B. Criadores a uma promoção das divisões A.1400B2Classe B alta. Criadores fortes disputando a B1.1300B3Classe B média. Ganhos constantes no meio da faixa B.1200B4Classe B baixa. Criadores avançando rumo às divisões B mais altas.1100B5Entrada da classe B. Criadores com ganhos fortes e constantes ao longo do período da liga.1000C1Topo da faixa C. Criadores ativos avançando rumo à classe B.900C2Classe C alta. Ganhos moderados, disputando a promoção para a C1.800C3Classe C média. Ganhos regulares no meio da faixa C.700C4Classe C baixa. Criadores subindo rumo às divisões C mais altas.600C5Entrada da classe C. Recém-promovidos da faixa D.500D1Topo da faixa D. Criadores começando a ganhar de forma relevante na região.400D2Classe D alta. Criadores mais novos ou com volume menor.300D3Classe D média. Criadores se firmando na disputa das ligas.200D4Classe D baixa. Primeiros ganhos na liga.100D5Liga de entrada. O ponto de partida para criadores aptos às ligas.Exemplo prático: encontre todos os criadores A1 ao vivo agora nos Bálcãs
Este exemplo completo, em várias etapas, mostra o padrão recomendado: descubra as classes disponíveis, encontre a que você precisa, busque as entradas dela e depois filtre os criadores ao vivo. Funciona com qualquer combinação de região e 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 requisição e boas práticas
As posições no ranking mudam aos poucos. Faça cache por 10-30 segundos antes de buscar de novo, para não sobrecarregar a API à toa.
Os rankings de liga mudam devagar, então não adianta consultar os endpoints de liga mais do que uma vez a cada poucos minutos.
Todas as 44 regiões podem ser consultadas em paralelo. Se você precisa de dados de várias regiões, dispare as requisições ao mesmo tempo em vez de uma depois da outra.
Quando isLive é true em uma entrada do ranking, você pode abrir um WebSocket para esse criador na hora, usando o uniqueId dele e sua chave de API.
Os cookies de sessão dão acesso à sua conta. Guarde em variáveis de ambiente, nunca no código-fonte nem em repositórios públicos.
Nem toda classe existe em toda região. Sempre chame primeiro o endpoint de listagem para confirmar quais valores de classType estão disponíveis na região que você quer.