RoomScope

آخر تحديث

النبض العام

أرقام LIVE على مستوى المنصة بأكملها وأحدث الأحداث العامة، وهي البيانات التي تغذّي الصفحة الرئيسية لـ RoomScope. لا تحتاج إلى مفتاح API ولا تستهلك أي رصيد.

الطلب

GET /web-api/public/pulse على أصل الموقع، دون معاملات ودون مصادقة. هي نقطة نهاية ويب عامة، وليست جزءًا من واجهة /v1: لا تقبل ترويسة Authorization ولا تظهر في استخدامك.

curl "https://toktokdata.live/web-api/public/pulse"

الاستجابة

كائن JSON واحد. كل رقم فيه محتسَب على مستوى المنصة بأكملها: لا شيء فيه يخص مساحة عمل أو مستخدمًا أو قاعدة تنبيه.

200 OK
{  "liveRooms": 55,  "trackedRooms": 460,  "boardsObserved24h": 244,  "regions": ["VN"],  "alertsDelivered24h": 820,  "observedAt": "2026-11-04T04:04:36.242Z",  "events": [    { "type": "live_start", "region": "VN", "at": "2026-11-04T04:02:02.941Z" },    { "type": "board_observed", "region": "VN", "board": "league_a1",      "at": "2026-11-04T04:00:59.535Z" },    { "type": "rank_move", "handle": "creator.handle", "region": "VN", "board": "daily",      "rank": 4, "previousRank": 12, "at": "2026-11-04T03:52:14.621Z" }  ],  "provenance": {    "observedAt": "2026-11-04T04:04:36.242Z",    "freshness": "near_realtime",    "source": "platform_counters",    "sourceKind": "derived",    "coverageStatus": "observed",    "methodologyVersion": "pulse-v1",    "window": { "from": "2026-11-03T04:04:36.242Z", "to": "2026-11-04T04:04:36.242Z", "label": "24h" }  }}
الحقلالنوعالمعنى
liveRoomsintegerغرف البث التي يسجّلها RoomScope وهي على الهواء الآن.
trackedRoomsintegerغرف البث، دون تكرار، التي تتابعها مساحة عمل واحدة على الأقل.
boardsObserved24hintegerلوحات التصنيف الرسمية المرصودة خلال آخر 24 ساعة، تُحتسب مرة واحدة لكل منطقة ولوحة تصنيف وفترة.
regionsstring[]رموز مناطق تلك اللوحات، مرتّبة.
alertsDelivered24hintegerإشعارات التنبيه المُرسلة خلال آخر 24 ساعة.
observedAtstringوقت احتساب هذه اللقطة (ISO 8601، بتوقيت UTC).
eventsobject[]ما يصل إلى 10 من أحدث الأحداث العامة، من الأحدث إلى الأقدم (انظر أدناه).
provenanceobjectالمصدر والمنهجية ونافذة الـ 24 ساعة الخاصة بالأرقام، كما في كل مؤشر من مؤشرات RoomScope.

الأحداث

لكل حدث نوع type ووقت at. لا توجد إلا ثلاثة أنواع؛ فتجاهل أي نوع آخر قد تراه لاحقًا.

النوعالحقولمتى
board_observedregion, board, atأحدث لقطة مكتملة للوحة تصنيف عامة (لوحات التسوق ليست عامة).
rank_movehandle, region, board, rank, previousRank, atصانع محتوى ضمن أفضل 10 الظاهرين في لوحة تصنيف عامة تقدّم منذ الفترة السابقة. ما يصل إلى 3 لكل لوحة، بدءًا بأكبر تقدّم.
live_startregion, at, handle?صانع محتوى بلغ أفضل 10 الظاهرين في لوحة تصنيف عامة خلال آخر 7 أيام بدأ البث المباشر.
أسماء المستخدمين تتبع قواعد صالة العرض
لا يظهر اسم المستخدم إلا لصنّاع المحتوى الذين تعرضهم صالة العرض العامة أصلًا: أفضل 10 الظاهرين في لوحة تصنيف عامة، ولا يظهر أبدًا لصانع محتوى محجوب. ولا يحمل الحدث live_start الحقل handle ما دام صانع المحتوى على الهواء، تمامًا كما تخفي صالة العرض أسماء صنّاع المحتوى أثناء البث المباشر.

حداثة البيانات والتخزين المؤقت

تُحتسب اللقطة مرة واحدة ويتشاركها جميع المستدعين لمدة 60 ثانية؛ وتحمل الاستجابات Cache-Control: public, max-age=30. الاستطلاع بوتيرة أعلى من مرة في الدقيقة يُرجع الأرقام نفسها. استخدم observedAt لإظهار مدى قِدمها.

الحدود والأخطاء

تُقيَّد الاستدعاءات لكل عنوان IP للعميل: 300 في الساعة لنقطة النهاية هذه، ضمن حد الاندفاع العام البالغ 120 في الدقيقة وسقف على مستوى المنصة. عند تجاوز أي حد تكون الإجابة 429 مع Retry-After بالثواني.

429 Too Many Requests
HTTP/2 429Retry-After: 1260 { "code": "public_allowance_exhausted", "message": "You reached the public limit of 300 per hour…",  "requestId": "…", "retryable": true }

عندما تكون الواجهة العامة معطّلة أو يتعذر الوصول إلى ذاكرتها المؤقتة تكون الإجابة 503 مع الرمز public_surface_unavailable وretryable: true. وتستخدم كلتا الحالتين غلاف الخطأ نفسه المستخدم في بقية واجهة API.

هل كانت هذه الصفحة مفيدة؟