Skip to main content
POST
Get one TikTok LIVE room (sync)
Get one TikTok LIVE room right away, by room ID, by streamer or by LIVE URL, with its latest comments on request.

Overview

This endpoint is synchronous: it answers with the room, no task to poll. Use it to:
  • check whether a streamer is live right now, and with how many viewers;
  • follow a room found by TikTok LIVE Search: is it still live, when did it end;
  • read a LIVE’s latest comments, its pinned comment and its top viewers.
The room comes with the fields of a LIVE search room (title, streamer, category, hashtags, stream URLs, …) plus its status (live or ended), the time it ended, the followers the streamer gained during the LIVE, the streamer’s bio, whether chat is on or the LIVE is for subscribers only, and the number of products on sale.
  • A username returns the streamer’s current LIVE, or their last one when they are offline (status: "ended").
  • It usually answers in 1 to 5 seconds, sometimes up to ~30 seconds. Allow a client timeout of 120 seconds.
Comments: TikTok only keeps the latest ~50 comments of a LIVE available. Earlier comments cannot be retrieved, by this endpoint or any other. A room that has ended returns no comments.
Likes, comment count and share count are not part of a single room: TikTok does not provide them there. TikTok LIVE Search returns them for each room it finds.

Billing

  • 1 residential_request per room, 2 with include_comments.
  • When the room has ended, the comments are not billed (1 in total).
  • A room or account that does not exist (404 live_not_found) and a failed lookup (502 live_room_unavailable) are not billed.
  • Pass include_usage: true to get the usage block in the response.

Request Parameters

Send exactly one of room_id, username or url.

Example Usage

Success Response (200)

comments, pinned_comment, intro and top_viewers are present only with include_comments: true; usage only with include_usage: true.

Understanding the Response

room

The fields of a LIVE search room, plus:

comments

The latest comments, newest first, at most comments_limit.

pinned_comment, intro, top_viewers

  • pinned_comment: the comment the streamer pinned, same shape as a comment, or null.
  • intro: the LIVE’s intro text, if the streamer set one.
  • top_viewers: the LIVE’s top viewers by gifts sent (rank, score, user), when TikTok shows them. Can be empty.

Error Cases

Tips

  • To follow a LIVE over time, call this endpoint again with the same room_id: each call is a fresh snapshot.
  • Calling with username is the simplest way to know whether a creator is live now: status tells you, and ended_at when their last LIVE ended.
  • Likes, comment counts and share counts come with LIVE search results: keep them from the search that found the room.

Authorizations

X-API-Key
string
header
required

API key authentication. Include your VidNavigator API key in the X-API-Key header.

Body

application/json

Exactly one of room_id, username or url.

room_id
string

A LIVE room ID, as a string (it has more digits than a JavaScript number holds), e.g. the id of a POST /tiktok/live/search result.

Pattern: ^[0-9]{1,25}$
Example:

"7705498471838665494"

username
string

The streamer's TikTok username, with or without @.

Example:

"tiktok"

url
string

A LIVE URL (https://www.tiktok.com/@username/live), a profile URL (https://www.tiktok.com/@username), or a room's share_url (https://m.tiktok.com/share/live/<room_id>). Short vm.tiktok.com links are not accepted.

Example:

"https://www.tiktok.com/@tiktok/live"

include_comments
boolean
default:false

Also return the latest comments, the pinned comment, the intro and the top viewers.

comments_limit
integer
default:50

Maximum comments returned with include_comments.

Required range: 1 <= x <= 50
include_stream_urls
boolean
default:true

Include the room's playback URLs (room.stream_urls).

include_usage
boolean
default:false

When true, the response includes the usage block of this request.

Response

The room.

status
enum<string>
Available options:
success
data
object
usage
object

Per-call usage, returned only when the request sets include_usage=true: the charges of this request, one entry per service_type, and the total credits deducted. A waived charge carries waived: true and credits_saved, with a top-level waived.credits_saved summary.

For endpoints that run an AI analysis (/extract/video, /extract/file, /analyze/video, /analyze/file, /youtube/search), the analysis_request entry carries a nested tokens object with the request's token counts.