RoomScope

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.

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" }  }}
FieldTypeMeaning
liveRoomsintegerRooms RoomScope is recording that are live right now.
trackedRoomsintegerDistinct rooms followed by at least one workspace.
boardsObserved24hintegerOfficial boards observed in the last 24 hours, counted once per region, board and period.
regionsstring[]Region codes of those boards, sorted.
alertsDelivered24hintegerAlert notifications delivered in the last 24 hours.
observedAtstringWhen this snapshot was computed (ISO 8601, UTC).
eventsobject[]Up to 10 latest public events, newest first (below).
provenanceobjectSource, 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.

TypeFieldsWhen
board_observedregion, board, atThe newest complete snapshot of a public board (shopping boards are not public).
rank_movehandle, region, board, rank, previousRank, atA creator in the open top 10 of a public board climbed since the previous period. Up to 3 per board, biggest climb first.
live_startregion, at, handle?A creator who reached the open top 10 of a public board in the last 7 days went live.
Handles follow the showroom rules
A handle appears only for creators the public showroom already shows: the open top 10 of a public board, never a suppressed creator. A 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.

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 }

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.

Was this page helpful?