Last updated
Public pulse
System-wide LIVE numbers and the latest public events, the feed behind the RoomScope home page. It needs no API key and spends no credits.
Request
GET /web-api/public/pulse on the site origin, with no parameters and no authentication. It is a public web endpoint, not part of the /v1 API: it does not take an Authorization header and does not appear in your usage.
curl "https://toktokdata.live/web-api/public/pulse"Response
One JSON object. Every number is counted across the whole platform: nothing in it belongs to a workspace, a user or an alert rule.
{ "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" } }}| Field | Type | Meaning |
|---|---|---|
liveRooms | integer | Rooms RoomScope is recording that are live right now. |
trackedRooms | integer | Distinct rooms followed by at least one workspace. |
boardsObserved24h | integer | Official boards observed in the last 24 hours, counted once per region, board and period. |
regions | string[] | Region codes of those boards, sorted. |
alertsDelivered24h | integer | Alert notifications delivered in the last 24 hours. |
observedAt | string | When this snapshot was computed (ISO 8601, UTC). |
events | object[] | Up to 10 latest public events, newest first (below). |
provenance | object | Source, method and 24-hour window of the numbers, as on every RoomScope metric. |
Events
Each event has a type and an at time. Only three types exist; ignore any other you may see later.
| Type | Fields | When |
|---|---|---|
board_observed | region, board, at | The newest complete snapshot of a public board (shopping boards are not public). |
rank_move | handle, region, board, rank, previousRank, at | A creator in the open top 10 of a public board climbed since the previous period. Up to 3 per board, biggest climb first. |
live_start | region, at, handle? | A creator who reached the open top 10 of a public board in the last 7 days went live. |
live_start carries no handle while that creator is still live, exactly as the showroom masks live creators.Freshness and caching
The snapshot is computed once and shared by every caller for 60 seconds; responses carry Cache-Control: public, max-age=30. Polling more often than once a minute returns the same numbers. Use observedAt to show how old they are.
Limits and errors
Calls are limited per client IP: 300 per hour for this endpoint, inside the public burst limit of 120 per minute and a platform-wide ceiling. Over a limit the answer is 429 with Retry-After in seconds.
HTTP/2 429Retry-After: 1260 { "code": "public_allowance_exhausted", "message": "You reached the public limit of 300 per hour…", "requestId": "…", "retryable": true }When the public surface is switched off or its cache is unreachable the answer is 503 with code public_surface_unavailable and retryable: true. Both use the same error envelope as the rest of the API.