Endpoints
2 endpoints return livestreams on TikTok and Twitch.
Schema
Single-item endpoints return this object as data; list endpoints return an array of them as data with a page object. The standard meta comes with every response.
platformstringPlatform ID (tiktok, youtube, …).
idstringPlatform-native ID of the broadcast (string; TikTok room ID, YouTube video ID).
urlstring uriPublic page of the broadcast (TikTok: the host's LIVE page, tiktok.com/@<username>/live).
statusstringlive: on air now; scheduled: announced, not started; ended: over. New values may be added; treat an unknown value as not live.
One oflivescheduledended
titlestringnullableThe broadcast's title as the host set it.
textstringnullableDescription as plain text; null where the platform has none.
categorystringnullableThe topic or game the broadcast is filed under, as the platform names it.
hostobjectThe broadcasting account.
ShowHide 6 child fields
idstringnullablePlatform-native account ID; null when only the handle is known.
usernamestringnullableHandle without the @; null when the account has none.
display_namestringnullableDisplay name shown on the profile.
urlstring urinullableCanonical profile URL.
avatar_urlstring urinullableProfile picture URL. Platform CDN URLs can expire within hours.
is_verifiedbooleannullablePlatform verification badge; null where the platform has no badge.
started_atstring date-timenullableWhen the broadcast went on air, RFC 3339 UTC; null while scheduled or when not shown.
ended_atstring date-timenullableWhen it went off air, RFC 3339 UTC; null while live or scheduled, and when the platform does not say.
scheduled_start_atstring date-timenullableWhen a scheduled broadcast is due to start, RFC 3339 UTC; null when none was announced.
thumbnail_urlstring urinullableCover or preview image URL. Platform CDN URLs can expire within hours.
post_idstringnullableID of the post the platform keeps the broadcast as (equals post.id: a YouTube or Rumble video); null when it keeps none (TikTok LIVE) or none yet.
streamsobject[]Playback links of the broadcast while live, one per rendition and format, best first; [] when not live or when the platform's links only work from SocialTap's network (YouTube).
ShowHide 9 child fields
qualitystringnullableThe platform's label for the rendition (Original, 1080p60, 720p, …).
formatstringDelivery format of url: hls (an .m3u8 playlist), dash (an .mpd manifest, TikTok's CMAF) or flv (HTTP-FLV). New values may be added; treat unknown values as other.
One ofhlsdashflv
urlstring uriPlayback URL, signed and expiring: see expires_at.
expires_atstring date-timenullableWhen url stops working, RFC 3339 UTC, read from the platform's signed URL; null when unknown.
widthintegernullableWidth in pixels; null for audio-only or when not stated.
heightintegernullableHeight in pixels; null for audio-only or when not stated.
video_codecstringnullableVideo codec, lowercase (h264, h265); null for audio-only or when not stated.
bitrate_kbpsintegernullableTarget bitrate in kbit/s, when the platform states it.
is_audio_onlybooleannullableThe rendition carries sound only.
metricsobjectCounts at fetch time; null = hidden or not exposed, 0 = zero.
ShowHide 3 child fields
concurrent_viewer_countintegernullablePeople watching now; null when not live or not shown.
view_countintegernullableCumulative views since the broadcast began (TikTok counts entries into the room).
like_countintegernullableLikes or hearts; null when hidden or not exposed.
platform_specificobjectFields only this platform has, under its ID (platform_specific.<platform>); each null when unknown.
ShowHide 2 child fields
tiktokobjectnullableA TikTok LIVE room's own fields.
ShowHide 5 child fields
host_sec_uidstringnullableThe host's secUid, TikTok's account key that survives a rename.
host_follower_countintegernullableThe host's follower count at fetch time; null when hidden.
stream_idstringnullableTikTok's ID of the room's current stream (in its playback links).
is_subscriber_onlybooleannullableOnly the host's paying subscribers can watch.
is_age_restrictedbooleannullableViewers must be of age to watch the room; null when the source does not show it.
twitchobjectnullableA Twitch broadcast's own fields.
ShowHide 7 child fields
scheduled_end_atstring date-timenullableWhen the scheduled broadcast is due to end, RFC 3339 UTC; null when the channel set no end.
is_cancelledbooleannullableTrue when the channel cancelled this slot. Twitch still lists it, and its status stays scheduled.
cancellation_ends_atstring date-timenullableWhen the cancellation of this slot lapses, RFC 3339 UTC; null when it is not cancelled.
base_segment_idstringnullableTwitch's ID of the recurring slot, the same every week; id names this week's occurrence.
categoriesobject[]What the slot is filed under, whose first name is category; [] when the channel set none.
ShowHide 4 child fields
idstringnullableTwitch's ID of the category.
namestringnullableIts name (Just Chatting).
slugstringnullableIts name in links (twitch.tv/directory/category/just-chatting).
box_art_urlstring urinullableThe category's cover image.
repeat_ends_after_countintegernullableHow many times the slot airs before it stops repeating: 1 is a one-off. 0 or null: the channel set no end, and it repeats every week.
vacationobjectnullableThe channel's latest break from its schedule, as Twitch keeps it: it can be long over. Null when it has none.
ShowHide 3 child fields
start_atstring date-timenullableWhen the break starts, RFC 3339 UTC.
end_atstring date-timenullableWhen the break ends, RFC 3339 UTC.
reasonstringnullableTwitch's word for the break, lowercase (vacation).
approximate_fieldsstring[]JSON paths of values rounded by the platform or parsed from display text. A list path means the list may be incomplete. [] when all exact.
unknown_fieldsstring[]JSON paths of lists whose [] means unknown rather than none (a source that cannot see them); null already means unknown for every other field. [] when every list is known.
Item errors
Besides the request-level errors every endpoint can return, live endpoints return:
| Code | HTTP | Retry | Meaning | What to do |
|---|---|---|---|---|
not_found | 404 | No | The item does not exist or was deleted. On GET /v1/requests/{id}/response: the response was not kept (details.reason says why). | Check the link or ID. Do not retry. |
private_or_unavailable | 403 | No | The item exists but is not public: it is private, age- or region-restricted, or needs a login to view. It shares 403 with forbidden (which is about the key), so branch on the code. | Only public items can be fetched. Do not retry. |
no_live | 404 | No | The account exists but has no live broadcast to show: nothing on air or scheduled, and no past broadcast the platform still shows. | Do not retry now. Ask again later, when the account may be live. |