Endpoint Playground
Returns one LIVE room's detail, keyed by `room_id` — the numeric id that `/api/v1/tiktok/mobile/live/search` returns under `data[].lives.author.room_id`. The upstream is `/webcast/room/info/` on the webcast edge host (no origin header), captured from the running 47.4.3 app's LIVE surface and reproduced against the live gateway. The response projects the fields callers key on — `title`, `status` (2 = live), `user_count` (concurrent viewers), `create_time`, `owner` (user id, nickname, avatar), `stats` (cumulative `enter_count`/`total_user`, `watch_user_count`, `like_count`, `comment_count`, `share_count`, `follow_count`, `replay_viewers`), `stream` (playable `flv_pull_url` per resolution plus `default_resolution`/`candidate_resolution` and the HLS/RTMP URLs) and `cover` — and keeps the upstream room object unmodified in `data` (it has ~500 keys, so a partial struct would drop fields). Measured 2026-10-22: one room returned 193-198 KB with 1,595-1,600 concurrent viewers, 27,916 cumulative viewers, 27,096 enters and FLV URLs for FULL_HD1/HD1/SD1/SD2. `anchor_id` is deliberately NOT forwarded: it was measured to suppress the audience-only `stats.total_user` (27,916 -> 0 on the same room). A missing, non-numeric or unknown room id answers the webcast envelope's status 10011 and is surfaced as a 400; a finished room (status 30003) is a 400 too.
curl 'https://api.crawlora.net/api/v1/tiktok/mobile/live/room?room_id=7699174209096059678' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| room_id | string | Yes | 7699174209096059678 | Numeric LIVE room id from /api/v1/tiktok/mobile/live/search (data[].lives.author.room_id) |
{
"code": 200,
"msg": "OK",
"data": {
"room_id": "7699174209096059678",
"title": "Lets Go LIVE!",
"status": 2,
"user_count": 1595,
"create_time": 1792603783,
"owner": {
"user_id": "7507750403595584558",
"nickname": "marvinebarnerjr",
"avatar_url": {
"url_list": [
"..."
]
}
},
"stats": {
"enter_count": 27096,
"total_user": 27916,
"watch_user_count": 27916,
"like_count": 12,
"comment_count": 3,
"share_count": 1,
"follow_count": 1,
"replay_viewers": 21781
},
"stream": {
"flv_pull_url": {
"FULL_HD1": "https://pull-flv-...tiktokcdn.com/...flv",
"HD1": "...",
"SD1": "...",
"SD2": "..."
},
"default_resolution": "AUTO",
"candidate_resolution": [
"SD1",
"SD2",
"HD1",
"FULL_HD1"
]
},
"cover": {
"uri": "720x720/tos-maliva-avt-0068/...",
"url_list": [
"..."
]
},
"data": {
"title": "Lets Go LIVE!",
"...": "the upstream room object"
},
"host": "webcast16-normal-c-useast2a.tiktokv.com",
"fetched_at": "2026-10-22T03:58:41Z"
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.