آخر تحديث
النبض العام
أرقام LIVE على مستوى المنصة بأكملها وأحدث الأحداث العامة، وهي البيانات التي تغذّي الصفحة الرئيسية لـ RoomScope. لا تحتاج إلى مفتاح API ولا تستهلك أي رصيد.
الطلب
GET /web-api/public/pulse على أصل الموقع، دون معاملات ودون مصادقة. هي نقطة نهاية ويب عامة، وليست جزءًا من واجهة /v1: لا تقبل ترويسة Authorization ولا تظهر في استخدامك.
curl "https://toktokdata.live/web-api/public/pulse"الاستجابة
كائن JSON واحد. كل رقم فيه محتسَب على مستوى المنصة بأكملها: لا شيء فيه يخص مساحة عمل أو مستخدمًا أو قاعدة تنبيه.
{ "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" } }}| الحقل | النوع | المعنى |
|---|---|---|
liveRooms | integer | غرف البث التي يسجّلها RoomScope وهي على الهواء الآن. |
trackedRooms | integer | غرف البث، دون تكرار، التي تتابعها مساحة عمل واحدة على الأقل. |
boardsObserved24h | integer | لوحات التصنيف الرسمية المرصودة خلال آخر 24 ساعة، تُحتسب مرة واحدة لكل منطقة ولوحة تصنيف وفترة. |
regions | string[] | رموز مناطق تلك اللوحات، مرتّبة. |
alertsDelivered24h | integer | إشعارات التنبيه المُرسلة خلال آخر 24 ساعة. |
observedAt | string | وقت احتساب هذه اللقطة (ISO 8601، بتوقيت UTC). |
events | object[] | ما يصل إلى 10 من أحدث الأحداث العامة، من الأحدث إلى الأقدم (انظر أدناه). |
provenance | object | المصدر والمنهجية ونافذة الـ 24 ساعة الخاصة بالأرقام، كما في كل مؤشر من مؤشرات RoomScope. |
الأحداث
لكل حدث نوع type ووقت at. لا توجد إلا ثلاثة أنواع؛ فتجاهل أي نوع آخر قد تراه لاحقًا.
| النوع | الحقول | متى |
|---|---|---|
board_observed | region, board, at | أحدث لقطة مكتملة للوحة تصنيف عامة (لوحات التسوق ليست عامة). |
rank_move | handle, region, board, rank, previousRank, at | صانع محتوى ضمن أفضل 10 الظاهرين في لوحة تصنيف عامة تقدّم منذ الفترة السابقة. ما يصل إلى 3 لكل لوحة، بدءًا بأكبر تقدّم. |
live_start | region, at, handle? | صانع محتوى بلغ أفضل 10 الظاهرين في لوحة تصنيف عامة خلال آخر 7 أيام بدأ البث المباشر. |
live_start الحقل handle ما دام صانع المحتوى على الهواء، تمامًا كما تخفي صالة العرض أسماء صنّاع المحتوى أثناء البث المباشر.حداثة البيانات والتخزين المؤقت
تُحتسب اللقطة مرة واحدة ويتشاركها جميع المستدعين لمدة 60 ثانية؛ وتحمل الاستجابات Cache-Control: public, max-age=30. الاستطلاع بوتيرة أعلى من مرة في الدقيقة يُرجع الأرقام نفسها. استخدم observedAt لإظهار مدى قِدمها.
الحدود والأخطاء
تُقيَّد الاستدعاءات لكل عنوان IP للعميل: 300 في الساعة لنقطة النهاية هذه، ضمن حد الاندفاع العام البالغ 120 في الدقيقة وسقف على مستوى المنصة. عند تجاوز أي حد تكون الإجابة 429 مع Retry-After بالثواني.
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.