How to get TikTok live
GET request to /v1/tiktok/live with your input. You get clean JSON back in seconds for 1 credit per call — no OAuth, scraping or platform SDKs. Is this TikTok creator live — isLive/status, creator.id/secUid, room, streamQualities with flv/hls/cmaf/dash.How to get TikTok live (step by step)
- 1
Get a free API key
Create a free Captapi account (100 credits, no card) and generate an API key from the dashboard.
- 2
Call the TikTok Live API
Send an authenticated GET request to /v1/tiktok/live with your input. No OAuth, no scraping setup.
- 3
Read the JSON response
Parse the clean JSON response. Pass cache=true for a free 24h cache hit; default is always fresh.
Code example
curl "https://api.captapi.com/v1/tiktok/live?url=https%3A%2F%2Fwww.tiktok.com%2F%40khaby.lame" \
-H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."What the response looks like
{
"success": true,
"data": {
"platform": "tiktok",
"username": "tiktok",
"isLive": false,
"status": 4,
"creator": {
"id": "107955",
"secUid": "MS4wLjABAAAAv7iSuuXDJGDvJkmH_vz1qkDZYo1apxgzaxdBSeIuPiM",
"displayName": "TikTok",
"followers": 95001558,
"following": 0,
"verified": true,
"avatar": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:1080:1080.webp?dr=14579&refresh_token=fda4fb51&x-expires=1785409200&x-signature=hllLSTX4jvetwRoYU5uQBOOaWpA%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=fdd36af4&idc=my2",
"bio": "One TikTok can make a big impact",
"status": 4
},
"room": {
"id": "7665499080323353358",
"streamId": "3578537941258994614",
"status": 4,
"title": "In the Mix LIVE with Josh Groban",
"startedAt": "2026-07-22T23:32:31.000Z",
"totalEnterCount": 74810,
"coverUrl": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:720:720.webp?dr=14579&refresh_token=e000a24d&x-expires=1785409200&x-signature=51yzrCy7oc%2Bx3QXPywEmNE7foSU%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=fdd36af4&idc=my2",
"liveSubOnly": false,
"gameTagId": 0,
"liveRoomMode": 1,
"paidEvent": {
"eventId": 7655031505395122000,
"paidType": 0
},
"streamUrls": [
"https://pull-hls-f16-tt01.tiktokcdn.com/activity/stream-3578537941258994614_hd/index.m3u8?expire=1786446578&sign=f25ce1f7dc0090406b4ce9dd93404abf",
"https://pull-f5-tt01.tiktokcdn.com/activity/stream-3578537941258994614_hd/index.mpd?expire=1786446578&sign=0366e791f991487f9c5aaa22382b596d"
],
"streamQualities": [
{
"quality": "hd",
"codec": "h264",
"resolution": "960x540",
"bitrate": 1200000,
"flv": "https://pull-f5-tt01.tiktokcdn.com/activity/stream-3578537941258994614_hd.flv?expire=1786446578&sign=4e2983d0d512266f6557d5f7aabe8532",
"hls": "https://pull-hls-f16-tt01.tiktokcdn.com/activity/stream-3578537941258994614_hd/index.m3u8?expire=1786446578&sign=f25ce1f7dc0090406b4ce9dd93404abf",
"cmaf": "https://pull-f5-tt01.tiktokcdn.com/activity/stream-3578537941258994614_hd/index.mpd?expire=1786446578&sign=0366e791f991487f9c5aaa22382b596d",
"dash": "https://pull-f5-tt01.tiktokcdn.com/activity/stream-3578537941258994614_hd/index.mpd?expire=1786446578&sign=0366e791f991487f9c5aaa22382b596d"
},
{
"quality": "uhd",
"codec": "h264",
"resolution": "1280x720",
"bitrate": 1800000,
"flv": "https://pull-f5-tt01.tiktokcdn.com/activity/stream-3578537941258994614_uhd.flv?expire=1786446578&sign=9ca252292b4a32583d2a4fcb721ff555",
"hls": "https://pull-hls-f16-tt01.tiktokcdn.com/activity/stream-3578537941258994614_uhd/index.m3u8?expire=1786446578&sign=2a607ea575457021435a891b4643e17c",
"cmaf": "https://pull-f5-tt01.tiktokcdn.com/activity/stream-3578537941258994614_uhd/index.mpd?expire=1786446578&sign=7f9fe4060d52362c260ba310c4a79047",
"dash": "https://pull-f5-tt01.tiktokcdn.com/activity/stream-3578537941258994614_uhd/index.mpd?expire=1786446578&sign=7f9fe4060d52362c260ba310c4a79047"
}
],
"streams": {
"hd": {
"codec": "h264",
"resolution": "960x540",
"bitrate": 1200000,
"flv": "https://pull-f5-tt01.tiktokcdn.com/activity/stream-3578537941258994614_hd.flv?expire=1786446578&sign=4e2983d0d512266f6557d5f7aabe8532",
"hls": "https://pull-hls-f16-tt01.tiktokcdn.com/activity/stream-3578537941258994614_hd/index.m3u8?expire=1786446578&sign=f25ce1f7dc0090406b4ce9dd93404abf",
"cmaf": "https://pull-f5-tt01.tiktokcdn.com/activity/stream-3578537941258994614_hd/index.mpd?expire=1786446578&sign=0366e791f991487f9c5aaa22382b596d",
"dash": "https://pull-f5-tt01.tiktokcdn.com/activity/stream-3578537941258994614_hd/index.mpd?expire=1786446578&sign=0366e791f991487f9c5aaa22382b596d"
},
"uhd": {
"codec": "h264",
"resolution": "1280x720",
"bitrate": 1800000,
"flv": "https://pull-f5-tt01.tiktokcdn.com/activity/stream-3578537941258994614_uhd.flv?expire=1786446578&sign=9ca252292b4a32583d2a4fcb721ff555",
"hls": "https://pull-hls-f16-tt01.tiktokcdn.com/activity/stream-3578537941258994614_uhd/index.m3u8?expire=1786446578&sign=2a607ea575457021435a891b4643e17c",
"cmaf": "https://pull-f5-tt01.tiktokcdn.com/activity/stream-3578537941258994614_uhd/index.mpd?expire=1786446578&sign=7f9fe4060d52362c260ba310c4a79047",
"dash": "https://pull-f5-tt01.tiktokcdn.com/activity/stream-3578537941258994614_uhd/index.mpd?expire=1786446578&sign=7f9fe4060d52362c260ba310c4a79047"
},
"sd": {
"codec": "h264",
"resolution": "960x540",
"bitrate": 800000,
"flv": "https://pull-f5-tt01.tiktokcdn.com/activity/stream-3578537941258994614_sd.flv?expire=1786446578&sign=861979ee452b5d3894b3c02920bd96ca",
"hls": "https://pull-hls-f16-tt01.tiktokcdn.com/activity/stream-3578537941258994614_sd/index.m3u8?expire=1786446578&sign=2b0c3c0cea33b5b1c1f16b3cc1522c2b",
"cmaf": "https://pull-f5-tt01.tiktokcdn.com/activity/stream-3578537941258994614_sd/index.mpd?expire=1786446578&sign=54f12793a9b2ec076d77333e3f87eeb7",
"dash": "https://pull-f5-tt01.tiktokcdn.com/activity/stream-3578537941258994614_sd/index.mpd?expire=1786446578&sign=54f12793a9b2ec076d77333e3f87eeb7"
},
"ld": {
"codec": "h264",
"resolution": "640x360",
"bitrate": 600000,
"flv": "https://pull-f5-tt01.tiktokcdn.com/activity/stream-3578537941258994614_ld.flv?expire=1786446578&sign=33fed68846450e6976f0c3be345a75f9",
"hls": "https://pull-hls-f16-tt01.tiktokcdn.com/activity/stream-3578537941258994614_ld/index.m3u8?expire=1786446578&sign=d8bfbecab958947a7b8ca5f9bf37b3b7",
"cmaf": "https://pull-f5-tt01.tiktokcdn.com/activity/stream-3578537941258994614_ld/index.mpd?expire=1786446578&sign=00541c1a83a5cd336565ffe7a33f51cf",
"dash": "https://pull-f5-tt01.tiktokcdn.com/activity/stream-3578537941258994614_ld/index.mpd?expire=1786446578&sign=00541c1a83a5cd336565ffe7a33f51cf"
}
}
}
}
}Billing metadata (credits charged, cache hit/miss) is returned in the X-Captapi-Credits and X-Captapi-Cache response headers.
Request parameters
| Name | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | TikTok profile URL, @handle, or username, e.g. https://tiktok.com/@username. Not a YouTube channel URL. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble. |
| cache | boolean | No | Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits. |
Frequently asked questions
What does the TikTok Live API do?
The TikTok Live API lets you fetch full metadata and key stats from a public TikTok live using one GET request to /v1/tiktok/live. It returns clean JSON — no OAuth or infrastructure setup required.
How many credits does the TikTok Live API cost?
Each successful call costs 1 credit. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Hits include cached + cachedAt. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Failed or empty results are never charged.
Do I need a TikTok API key or OAuth?
No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle proxies, rate limits, retries, and authentication for you.
Is /live-info richer than /live?
No — they share one runner and return the same JSON (creator.id/secUid, room.streamQualities with flv/hls/cmaf/dash when TikTok exposes them). /live-info is only a billing/cache alias at 7 credits for ScrapeCreators path compatibility. Prefer /live (1 credit).
Why is isLive false when room has stream URLs?
isLive is true only when status === 2. Ended rooms often keep title, totalEnterCount, and pull URLs — that is last-broadcast history, not a live session. viewerCount is omitted when offline so a stale concurrent count is not mistaken for live viewers.
Is the TikTok Live API suitable for production use?
Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Hits include cached + cachedAt. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.
Ready to get TikTok live?
Start free with 100 credits — no credit card required.
Get your free API key