دليل المطورين

API لوحات الصدارة والدوري

بيانات لوحات صدارة TikTok LIVE لحظيًا. احصل على الترتيب اليومي في 44 منطقة، واستعلم عن بيانات فئات الدوري مباشرة، وراقب أداء صناع المحتوى.

كل الباقات المدفوعة ULTRA فقط - الدوريات

نظرة عامة

يوفر TikTool فئتين من بيانات لوحات الصدارة عبر واجهة API الخاصة بالموقع على tik.tools. نقطتا الاتصال تعيدان بيانات ترتيب تنافسي لحظية لصناع محتوى TikTok LIVE مرتبة حسب أرباح الماسات.

كل الباقات المدفوعة

لوحات الصدارة الإقليمية

ترتيب يومي لأفضل 100 صانع محتوى حسب إجمالي الماسات المكتسبة، مقسم حسب المنطقة الجغرافية. يُحدَّث باستمرار طوال اليوم. متاح لمشتركي Basic و Pro و Ultra.

  • أفضل 100 صانع محتوى في كل منطقة
  • الترتيب، النقاط (الماسات)، حالة البث، معرّف الغرفة
  • 44 منطقة حول العالم
  • تُحدَّث البيانات باستمرار
باقة Ultra للمطورين فقط

ترتيب الدوري

بيانات ترتيب تنافسي حسب الفئة (A1-D5) لصناع المحتوى المتنافسين في دوريات TikTok LIVE. تكشف من في كل فئة تنافسية في أي منطقة. يتطلب باقة 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 بحساب مطور مدفوع. كل باقات المطورين المدفوعة (Basic و Pro و Ultra) لها وصول إلى نقاط اتصال لوحات الصدارة الإقليمية. نقاط اتصال الدوري تتطلب باقة Ultra للمطورين. اشتراك Agency PASS (على tik.tools/vip) منتج منفصل خاص بالموقع: يمنح وصولًا إلى بيانات الدوري عبر واجهة موقع tik.tools، وليس عبر واجهة API للمطورين هذه.

مرجع المناطق

تتوفر 44 لوحة صدارة إقليمية. استخدم المعرّف في رابط نقطة اتصال لوحة الدولة، و رمز المنطقة في نقاط اتصال الدوري.

المعرّفرمز المنطقةالوصف
north-americaUS+North America
canadaCACanada
brazil-regionBRBrazil
mexicoMXMexico
latin-americaLATAMLatin America
colombia-peru-dominican-republicCO+Colombia, Peru & Dominican Republic
jamaicaJMJamaica
australia-pacificAU+Australia & Pacific
japan-regionJPJapan
south-korea-regionKRSouth Korea
taiwan-regionTWTaiwan
indonesia-regionIDIndonesia
malaysia-regionMYMalaysia
singaporeSGSingapore
philippines-regionPHPhilippines
thailand-regionTHThailand
vietnam-regionVNVietnam
nepalNPNepal
bangladesh-bhutan-maldivesBD+Bangladesh, Bhutan & Maldives
azerbaijanAZAzerbaijan
kazakhstanKZKazakhstan
kyrgyzstanKGKyrgyzstan
belarusBYBelarus
ukraineUAUkraine
central-asiaCCACentral Asia
dachDE+Germany & DACH
switzerlandCHSwitzerland
iberiaES+Iberia
central-europeHU+Central Europe
lusophonePT+Lusophone
france-regionFR+France
belgiumBEBelgium
netherlands-regionNLNetherlands
united-kingdom-regionUK+United Kingdom
ireland-baltics-maltaIE+Ireland, Baltics & Malta
italy-regionIT+Italy
swedenSESweden
scandinaviaSE+Nordics
poland-regionPLPoland
romania-regionRORomania
balkansBKBalkans
turkey-regionTRTurkey
middle-east-africaMENAMiddle East & Africa
nigeria-ghana-kenya-south-africaNG+Nigeria, Ghana, Kenya & South Africa

نقطة الاتصال: لوحة الصدارة الإقليمية

GEThttps://tik.tools/api/leaderboards/country/:slugكل الباقات المدفوعة

تعيد لوحة أفضل 100 لليوم الحالي في منطقة ما. الإدخالات مرتبة تنازليًا حسب score (إجمالي الماسات المكتسبة اليوم).

معاملات المسار

المعاملالنوعالوصف
slugstringمعرّف المنطقة من جدول مرجع المناطق أعلاه (مثل balkans و north-america)

مخطط الاستجابة

الحقلالنوعالوصف
[].ranknumberالموقع في لوحة الصدارة (1 = الأعلى ربحًا)
[].uniqueIdstringاسم مستخدم TikTok (بدون @)
[].nicknamestringالاسم المعروض على TikTok
[].scorenumberإجمالي الماسات المكتسبة اليوم في هذه المنطقة
[].isLivebooleanهل صانع المحتوى يبث الآن
[].roomIdstring | nullمعرّف غرفة البث إذا كان يبث الآن، وإلا 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]' : ''}`)
}

نقاط اتصال الدوري

يتطلب Ultra. نقاط اتصال الدوري تتطلب باقة Ultra للمطورين. الطلبات من باقتي Basic و Pro تحصل على عرض جزئي من 5 إدخالات: سيكون الحقل hasFullAccess في الاستجابة false، وسيبيّن maskedCount عدد الإدخالات المخفية. ملاحظة: اشتراك Agency PASS (tik.tools/vip) يمنح وصولًا إلى بيانات الدوري عبر الموقع، لكنه ليس اشتراكًا في API للمطورين.

4أ. عرض دوريات منطقة

GEThttps://tik.tools/api/leaderboards/leagues/:regionUltra فقط

يعرض فئات الدوري المتاحة لمنطقة معينة، مع عدد صناع المحتوى في كل فئة ووقت آخر تحديث للبيانات.

معاملات المسار

المعاملالنوعالوصف
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`)
}

4ب. جلب إدخالات الدوري

GEThttps://tik.tools/api/leaderboards/league/:region/:classTypeUltra فقط

تعيد القائمة المرتبة لصناع المحتوى في فئة دوري محددة لمنطقة ما. هذه نقطة الاتصال الأساسية لبناء أدوات تراعي الدوري ولوحات مراقبة صناع المحتوى.

معاملات المسار

المعاملالنوعالوصف
regionstringرمز المنطقة (مثل BK و US+)
classTypenumberمعرّف رقمي للفئة (2000=A1، 1900=A2، 1100=B5، إلخ)

مخطط الاستجابة

الحقلالنوعالوصف
hasFullAccessbooleantrue إذا كانت باقتك تملك وصولًا كاملًا، و false = وضع العرض الجزئي (5 إدخالات)
maskedCountnumberعدد الإدخالات المخفية بسبب قيود الباقة (0 إذا كان hasFullAccess)
totalCountnumberإجمالي عدد صناع المحتوى في هذه الفئة
entries[].ranknumberالموقع داخل هذه الفئة
entries[].userIdstringمعرّف مستخدم TikTok الرقمي (معرّف ثابت لا يتغير أبدًا)
entries[].uniqueIdstringاسم مستخدم TikTok بدون @ (يمكن للمستخدم تغييره)
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 هي نقطة الدخول إلى منافسة الدوري.

classTypeالفئةالوصف
2000A1فئة النخبة. الأعلى ربحًا في المنطقة. أعلى منافسة وأعلى متطلبات ماسات للتصنيف.
1900A2فئة متقدمة. صناع محتوى راسخون وأرباحهم عالية يسعون للصعود إلى A1.
1800A3فئة A راسخة. أرباح عالية ثابتة تحافظ على مكانها في نطاق النخبة.
1500B1قمة نطاق B. صناع محتوى على بعد صعود واحد من فئات A.
1400B2فئة B العليا. أرباح قوية تتنافس على B1.
1300B3فئة B الوسطى. أرباح ثابتة في منتصف نطاق B.
1200B4فئة B الدنيا. صناع محتوى يتقدمون نحو فئات B العليا.
1100B5مدخل فئة B. صناع محتوى بأرباح قوية وثابتة طوال فترة الدوري.
1000C1قمة نطاق C. صناع محتوى نشطون يتقدمون نحو نطاق B.
900C2فئة C العليا. أرباح متوسطة تتنافس على الصعود إلى C1.
800C3فئة C الوسطى. أرباح منتظمة في منتصف نطاق C.
700C4فئة C الدنيا. صناع محتوى يصعدون نحو فئات C العليا.
600C5مدخل فئة C. صعدوا مؤخرًا من نطاق D.
500D1قمة نطاق D. صناع محتوى بدأوا يحققون أرباحًا ملموسة في المنطقة.
400D2فئة D العليا. صناع محتوى جدد أو بأرباح أقل.
300D3فئة D الوسطى. صناع محتوى يستقرون في منافسة الدوري.
200D4فئة D الدنيا. أرباح الدوري في بدايتها.
100D5دوري المبتدئين. نقطة البداية لصناع المحتوى المؤهلين للدوري.
قد لا تتوفر كل الفئات وعددها 18 في كل منطقة. استدعِ نقطة الاتصال عرض الدوريات أولًا لتعرف الفئات الموجودة في منطقتك المستهدفة، ثم اجلب الفئة التي تحتاجها.

مثال عملي: اعثر على كل صناع محتوى A1 الذين يبثون الآن في البلقان

يعرض هذا المثال الكامل متعدد الخطوات النمط الموصى به: اكتشف الفئات المتاحة، واعثر على الفئة التي تحتاجها، واجلب إدخالاتها، ثم صفِّ من يبثون الآن. يعمل مع أي منطقة وأي فئة.

1
اجلب الدوريات المتاحة للمنطقة BK (البلقان)
2
اعثر على إدخال A1 وتأكد من وجوده
3
اجلب إدخالات دوري A1
4
صفِّ صناع المحتوى حسب 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 + roomId للاتصال

عندما تكون قيمة isLive هي true في إدخال لوحة الصدارة، يمكنك فتح WebSocket لصانع المحتوى فورًا باستخدام uniqueId الخاص به ومفتاح API الخاص بك.

خزّن ملفات تعريف ارتباط الجلسة بأمان

ملفات تعريف ارتباط الجلسة تمنح وصولًا إلى حسابك. خزّنها في متغيرات البيئة، ولا تضعها أبدًا في الكود المصدري أو في مستودعات عامة.

اعرض الدوريات قبل جلب الإدخالات

ليست كل فئة موجودة في كل منطقة. استدعِ نقطة اتصال العرض أولًا دائمًا لتتأكد من قيم classType المتاحة في منطقتك المستهدفة.

الأسئلة الشائعة

ما الباقات التي تشمل الوصول إلى API لوحات الصدارة؟

ما المطلوب للوصول إلى بيانات ترتيب الدوري؟

كم مرة تُحدَّث بيانات لوحة الصدارة؟

كم عدد المناطق المتاحة؟

هل يمكنني معرفة إن كان صانع المحتوى يبث الآن من لوحة الصدارة؟

لا تظهر كل قيم classType في منطقتي. لماذا؟

هل يمكنني استطلاع كل المناطق وعددها 44 دفعة واحدة؟