TikTok Live Search Scraper avatar

TikTok Live Search Scraper

Pricing

$4.45 / 1,000 live rooms

Go to Apify Store
TikTok Live Search Scraper

TikTok Live Search Scraper

Search public TikTok LIVE rooms by keyword, category, room ID, or creator, or collect daily creator rankings. Export room, audience, stream, and gifter details or ranked creator profiles and gift values.

Pricing

$4.45 / 1,000 live rooms

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

105

Total users

30

Monthly active users

8 days ago

Last modified

Security

Limited permissions

Share

🔎 Find TikTok LIVE rooms and daily creator rankings

Social media researchers, creator teams, and live trend trackers can search public TikTok LIVE rooms by keyword, browse by category, or look up rooms by ID or creator. Each room row covers the first eligible match for a distinct active room, with creator, audience, engagement, activity, media, topic, and available gifter details, plus the creator's TikTok LIVE page. You can also collect daily creator rankings with account details and gift values. Use the rows to compare active rooms, review live topics, or send structured data to another workflow.

  • Find active TikTok LIVE rooms for Fortnite players.
  • Browse public TikTok LIVE rooms about pets.
  • Explore live cooking streams with cooking searches.
  • Browse public rooms for real estate topics.
  • Explore live shopping rooms with the shop search.
  • Compare fitness rooms and their audience counts.
  • Browse active music rooms and their details.
  • Find public football streams and audience counts.
  • Explore makeup rooms with creator details.
  • Review gaming rooms with viewer counts and stream links.

📦 TikTok LIVE room and ranking data

Each room row covers the first eligible occurrence of one distinct active room found during the run. Later matches for the same room are ignored. A keyword row includes the keyword that found it, and a category row includes the category that found it. Room-ID and creator rows leave both fields out. Room fields cover the creator, audience, engagement, activity, images, stream links, TikTok LIVE page, and available room gifter ranking.

Daily creator ranking rows contain the published date, rank, creator account, gift value, and unit from TikTok's United States pool (US+) daily LIVE ranking. Choose today or yesterday in that pool's calendar.

▶️ Search rooms or read daily creator rankings

  1. Choose rooms or creatorRanking in resultType.
  2. For rooms, choose keyword, category, roomId, or creator in findRoomsBy and fill the matching list. For rankings, choose today or yesterday in rankingDay.
  3. Set maxItems to cap the whole run. For keyword or category searches, set maxResultsPerKeyword to cap each search.
  4. Start the Actor and open the dataset.
  5. Export the rows or use them through the Apify API, schedules, webhooks, or integrations.

You do not need to provide TikTok login credentials. For a small first run, keep the prefilled gaming keyword and use a small room limit. Category names must match TikTok's spelling, such as Gaming, Chats, Fortnite, or PUBG: BATTLEGROUNDS. Good topics include gaming, makeup, football, music, fitness, shop, or another creator niche.

This Actor does not discover followers, scrape regular TikTok video search, monitor one room in real time, collect live chat, or record or save broadcast video files.

⚙️ Input

Input fields

FieldTypeWhat it does
maxItemsinteger (minimum 0)Stops after this many saved rows across the run. Blank, omitted, or 0 means no overall row limit. The form prefills 5; there is no schema default. Other limits still apply.
resultTypestringRequired by the schema. Choose rooms or creatorRanking. The form prefills rooms; there is no schema default. Only fields for the chosen result type are used.
findRoomsBystringFor rooms, choose keyword, category, roomId, or creator. Fields for other methods are ignored. The default is keyword.
keywordsarray of strings (1 to 100)Searches each keyword separately. Enter unique, non-empty TikTok LIVE topics. Required for keyword searches. The form prefills gaming; API runs must provide a list.
regionstringSets the TikTok region for keyword searches only, not a strict creator-country filter. US and GB are examples, not the full list. Different codes may return the same rooms. The form prefills US. Omit it or use an empty string to use US.
categoriesarray of strings (1 to 100)Browses TikTok LIVE category names, such as Gaming or Chats. Enter unique, non-empty names as TikTok spells them. Required for category searches; there is no default list.
roomIdsarray of stringsEnter unique numeric room IDs as text for roomId lookup. At least one is required, with no default list or set maximum. Find IDs in room rows from keyword or category searches. Only rooms verified as live are saved.
creatorsarray of stringsEnter unique creator handles, with or without @, or full TikTok profile or live-page URLs for creator lookup. At least one is required, with no default list or set maximum. Only rooms verified as live are saved.
minViewerCountinteger (minimum 0)For rooms only, keeps rooms with at least this many current viewers and skips rooms with no viewer count. 0 keeps any known viewer count. Leave it blank or omit it to skip this filter. Viewer counts can change during a TikTok LIVE.
maxResultsPerKeywordinteger (minimum 0, no set maximum)For keyword and category searches only, caps eligible rooms per search. A room saved by an earlier search still counts toward this limit, and only its first match is saved. Blank, omitted, or 0 means no per-search cap, so each search runs until TikTok has no more rooms. The form prefills 5; this is not a schema default. TikTok may return fewer rooms. Repeated errors, overall limits, spending limits, or time limits can stop collection.
rankingDaystringFor daily rankings only, choose today or yesterday in TikTok's United States pool (US+) calendar. The default is today. The keyword search region does not affect rankings.

Example input

This is the public input from the successful current-beta default-input run.

{
"maxItems": 5,
"resultType": "rooms",
"findRoomsBy": "keyword",
"keywords": [
"gaming"
],
"region": "US",
"maxResultsPerKeyword": 5,
"rankingDay": "today"
}

To browse a category instead, set findRoomsBy to category and fill categories, for example ["Gaming"]. For a daily ranking, choose creatorRanking; room fields are then ignored.

🧾 Output

Output fields

Room rows share the fields below. Only keyword searches include keyword, and only category searches include category. Room-ID and creator lookups leave both out. Daily creator ranking rows have a separate table below.

Live room fields

FieldTypeWhat it does
rowTypestringroom for a live room.
keywordstringThe keyword that found and saved this room. Left out for category, room-ID, and creator lookups.
categorystringThe submitted category that found and saved this room. Only category searches include it.
roomIdstringThe stable TikTok identifier for the live room.
titlestringThe title shown for the live room. Every saved row has a title.
startedAtdate-timeWhen the live room started, when available.
creatorUserIdstringThe broadcaster's stable TikTok user ID, when available.
creatorNicknamestringThe broadcaster's public display name, when available.
creatorAvatarUrlURLA link to the broadcaster's profile image, when available.
creatorBiostringThe broadcaster's public profile bio, when available.
creatorFollowerCountintegerThe broadcaster's public follower count, when available.
creatorFollowingCountintegerThe number of accounts the broadcaster follows, when available.
creatorIsVerifiedbooleanWhether TikTok shows the broadcaster as verified, when available.
viewerCountintegerThe viewer count shown for the live room, when available.
totalAudienceCountintegerThe total audience count TikTok shows for the live room, when available.
likeCountintegerThe number of likes shown for the live room, when available.
shareCountintegerThe number of shares shown for the live room, when available.
commentCountintegerThe number of comments shown for the live room, when available.
categoryNamestringThe live category shown for the room, when available.
gameTagsarray of stringsGame or topic tags shown for the live room.
activityIndicatorsarray of stringsActivities TikTok reports for the live room, such as shopping or a battle.
speechSummarystringA speech summary for the live room, when TikTok provides one.
coverImageUrlURLThe cover image TikTok gives for the room. Left out when TikTok gives only the creator's profile picture.
snapshotImageUrlURLA link to an image snapshot from the live room, when available.
streamUrlsarray of objectsDistinct live stream links for the room. Each link appears once, even when TikTok lists it under several quality labels.
streamUrls[].urlURLThe live stream URL.
streamUrls[].protocolstringThe protocol or format of the link, such as flv, hls, cmaf, or lls.
streamUrls[].qualitystring or array of stringsThe stream quality label, when available. When TikTok lists several labels for the same link, this is a list of each distinct label.
streamUrls[].expiresAtdate-timeWhen TikTok says this stream URL expires.
sourceUrlURLThe creator's TikTok LIVE page. Its URL includes the creator handle; it is not a keyword search page.
giftersarray of objectsThe room's published gifter ranking, when available.
gifters[].rankintegerThe gifter's published place in this room's ranking.
gifters[].coinAmountnumberCoins reported for this gifter in this room, when available.
gifters[].accountobjectPublic account details for the gifter.
gifters[].account.userIdstringThe gifter's stable TikTok account ID, when available.
gifters[].account.handlestringThe gifter's public handle, when available.
gifters[].account.nicknamestringThe gifter's public display name, when available.
gifters[].account.biostringThe gifter's public bio, when available.
gifters[].account.avatarUrlstring (URL)The gifter's profile image, when available.
gifters[].account.followerCountintegerThe gifter's follower count, when available.
gifters[].account.followingCountintegerThe gifter's count of accounts followed, when available.
gifters[].account.isVerifiedbooleanThe gifter's TikTok verification status, when available.

Complete keyword example row

This is one complete room row from a successful current-beta gaming search.

{
"roomId": "7702393875828230913",
"keyword": "gaming",
"title": "Lets Go LIVE!",
"startedAt": "2026-10-30T09:42:25.000Z",
"creatorUserId": "7635531233321911316",
"creatorNickname": "mosheadgaming",
"sourceUrl": "https://www.tiktok.com/@mosheadgaming/live",
"creatorAvatarUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/cc545e6a6e20dad4715c7c56ced5ecba~tplv-tiktokx-cropcenter:720:720.webp?dr=9640&refresh_token=234492f1&x-expires=1793523600&x-signature=MKOLxDY99PrvGVdc%2BqTsrTHptc4%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=fdd36af4&idc=useast8",
"creatorFollowerCount": 36659,
"creatorFollowingCount": 3,
"viewerCount": 1912,
"totalAudienceCount": 47226,
"likeCount": 119402,
"shareCount": 90,
"categoryName": "Gaming",
"gameTags": [
"Roblox"
],
"streamUrls": [
{
"protocol": "flv",
"url": "https://pull-w5-sg01.tiktokcdn-us.com/game/stream-1849732162402910300.flv?expire=1794565666&lsb_session_id=173-20261030102746D125001B85076C0AD285&sign=1bf7db87f4e1420c791e2aa83090fc95",
"expiresAt": "2026-11-13T10:27:46.000Z"
},
{
"protocol": "flv",
"url": "https://pull-w5-sg01.tiktokcdn-us.com/game/stream-1849732162402910300_hd5c2.flv?expire=1794565666&sign=f34503f4ac42d422bf130316a00e42cf",
"quality": [
"HD1",
"hd"
],
"expiresAt": "2026-11-13T10:27:46.000Z"
},
{
"protocol": "flv",
"url": "https://pull-w5-sg01.tiktokcdn-us.com/game/stream-1849732162402910300_ld5a.flv?expire=1794565666&sign=f70fc2e580ff41cde8a229ac485c7267",
"quality": [
"SD1",
"ld"
],
"expiresAt": "2026-11-13T10:27:46.000Z"
},
{
"protocol": "flv",
"url": "https://pull-w5-sg01.tiktokcdn-us.com/game/stream-1849732162402910300_sd5.flv?expire=1794565666&lsb_session_id=173-20261030102746D125001B85076C0AD285&sign=7d7108c10e217a4f8a56c9cae72f108b",
"quality": "SD2",
"expiresAt": "2026-11-13T10:27:46.000Z"
},
{
"protocol": "flv",
"url": "https://pull-w5-sg01.tiktokcdn-us.com/game/stream-1849732162402910300.flv?expire=1794565666&sign=1bf7db87f4e1420c791e2aa83090fc95",
"quality": "origin",
"expiresAt": "2026-11-13T10:27:46.000Z"
},
{
"protocol": "flv",
"url": "https://pull-w5-sg01.tiktokcdn-us.com/game/stream-1849732162402910300_sd5.flv?expire=1794565666&sign=7d7108c10e217a4f8a56c9cae72f108b",
"quality": "sd",
"expiresAt": "2026-11-13T10:27:46.000Z"
},
{
"protocol": "flv",
"url": "https://pull-w5-sg01.tiktokcdn-us.com/game/stream-1849732162402910300_hd560.flv?expire=1794565666&sign=89ff690d79a00faf56d140e78c644e33",
"quality": "hd_60",
"expiresAt": "2026-11-13T10:27:46.000Z"
},
{
"protocol": "flv",
"url": "https://pull-w5-sg01.tiktokcdn-us.com/game/stream-1849732162402910300.flv?expire=1794565666&sign=1bf7db87f4e1420c791e2aa83090fc95&only_audio=1",
"quality": "ao",
"expiresAt": "2026-11-13T10:27:46.000Z"
}
],
"gifters": [
{
"rank": 1,
"coinAmount": 106,
"account": {
"userId": "6826915100948923397",
"handle": "aguamitoro",
"nickname": "™️𓃓AGUA MI TORO𖤍𓆉",
"bio": "🍀SÍGANME EN TODAS MIS REDES⬇️",
"avatarUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/dfab9526fa1fee85ae168efa1207bcb8~tplv-tiktokx-cropcenter:100:100.jpeg?dr=9640&refresh_token=9f530c19&x-expires=1793527200&x-signature=6l7J6NOLgWJdu5YQlgF9qvIWRa4%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"followerCount": 124400,
"followingCount": 702,
"isVerified": false
}
},
{
"rank": 2,
"coinAmount": 100,
"account": {
"userId": "7534248317250602004",
"handle": "milo_stile",
"nickname": "MiloStile",
"bio": "una vida sin problemas no es vida",
"avatarUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/40d8f3e3b5b0b8e5a02c71ad379c181f~tplv-tiktokx-cropcenter:100:100.jpeg?dr=9640&refresh_token=e2caf0e6&x-expires=1793527200&x-signature=50DL9oYbkSH2lal7x2CwRi3be7c%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"followerCount": 2513,
"followingCount": 766,
"isVerified": false
}
},
{
"rank": 3,
"coinAmount": 54,
"account": {
"userId": "7179403887681995777",
"handle": "sojle4",
"nickname": "ငါမရှိသော့တဲ့ မင်းရဲ့ကမ္ဘာ",
"avatarUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/07cc60fd91961c50c9a2b05ba3091fd1~tplv-tiktokx-cropcenter:100:100.jpeg?dr=9640&refresh_token=308b7cd2&x-expires=1793527200&x-signature=b2h8eHL34NwPe3MlLcuUc3Phmdg%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"followerCount": 10900,
"followingCount": 2551,
"isVerified": false
}
},
{
"rank": 4,
"coinAmount": 31,
"account": {
"userId": "7238282401167541254",
"handle": "rajaaasonang15__",
"nickname": "HARRY SAMOSIR",
"avatarUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/d49ae4204f725e6b04fa826eef50d25d~tplv-tiktokx-cropcenter:100:100.jpeg?dr=9640&refresh_token=8657b747&x-expires=1793527200&x-signature=r0YzRdsZFlzVkj2YBauyoYLd7GA%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"followerCount": 684,
"followingCount": 333,
"isVerified": false
}
},
{
"rank": 5,
"coinAmount": 30,
"account": {
"userId": "6886786382669497350",
"handle": "_akhmetovvv__",
"nickname": "_akhmetovvv__",
"avatarUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/fb8f7c6dadde003311e3a0d0e043ea08~tplv-tiktokx-cropcenter:100:100.jpeg?dr=9640&refresh_token=50ea9b09&x-expires=1793527200&x-signature=kVBCYomnSq%2B%2FygjMv%2BUwIKAVC4w%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast8",
"followerCount": 483,
"followingCount": 65,
"isVerified": false
}
}
],
"rowType": "room"
}

Complete room lookup example row

This is one complete current-beta room-ID lookup row. Creator lookup rows use this same shape. Category rows add category instead of keyword.

{
"roomId": "7702393875828230913",
"title": "Lets Go LIVE!",
"creatorUserId": "7635531233321911316",
"creatorNickname": "mosheadgaming",
"sourceUrl": "https://www.tiktok.com/@mosheadgaming/live",
"creatorAvatarUrl": "https://p16-common-sign.tiktokcdn.com/tos-alisg-avt-0068/cc545e6a6e20dad4715c7c56ced5ecba~tplv-tiktokx-cropcenter:720:720.webp?dr=14579&refresh_token=1024c8ba&x-expires=1793527200&x-signature=lR1dxq8HYCOgbZypdNNqQdJN5ZY%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=fdd36af4&idc=my3",
"creatorFollowerCount": 36688,
"creatorFollowingCount": 3,
"creatorIsVerified": false,
"viewerCount": 1970,
"totalAudienceCount": 49817,
"likeCount": 0,
"shareCount": 0,
"commentCount": 0,
"categoryName": "Gaming",
"gameTags": [
"Roblox"
],
"streamUrls": [
{
"protocol": "flv",
"url": "https://pull-w5-sg01.tiktokcdn.com/game/stream-1849732162402910300_hd.flv?expire=1794565716&sign=55c1a270f6247e20c495a40036995c0c",
"expiresAt": "2026-11-13T10:28:36.000Z",
"quality": [
"HD1",
"hd"
]
},
{
"protocol": "hls",
"url": "https://pull-hls-w5-sg01.tiktokcdn.com/game/stream-1849732162402910300_hd/index.m3u8?expire=1794565716&sign=3afc9bc9824a6a05ed8abce1c26045f4",
"quality": "hd",
"expiresAt": "2026-11-13T10:28:36.000Z"
},
{
"protocol": "flv",
"url": "https://pull-w5-sg01.tiktokcdn.com/game/stream-1849732162402910300.flv?expire=1794565716&sign=9233fca354f44c84ecf06221707b6b09&only_audio=1",
"quality": "ao",
"expiresAt": "2026-11-13T10:28:36.000Z"
}
],
"startedAt": "2026-10-30T09:42:22.000Z",
"gifters": [
{
"rank": 1,
"coinAmount": 106,
"account": {
"userId": "6826915100948923397",
"handle": "aguamitoro",
"nickname": "™️𓃓AGUA MI TORO𖤍𓆉",
"bio": "🍀SÍGANME EN TODAS MIS REDES⬇️",
"avatarUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/dfab9526fa1fee85ae168efa1207bcb8~tplv-tiktokx-cropcenter:100:100.jpeg?dr=9640&refresh_token=9f530c19&x-expires=1793527200&x-signature=6l7J6NOLgWJdu5YQlgF9qvIWRa4%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"followerCount": 124400,
"followingCount": 702,
"isVerified": false
}
},
{
"rank": 2,
"coinAmount": 100,
"account": {
"userId": "7534248317250602004",
"handle": "milo_stile",
"nickname": "MiloStile",
"bio": "una vida sin problemas no es vida",
"avatarUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/40d8f3e3b5b0b8e5a02c71ad379c181f~tplv-tiktokx-cropcenter:100:100.jpeg?dr=9640&refresh_token=e2caf0e6&x-expires=1793527200&x-signature=50DL9oYbkSH2lal7x2CwRi3be7c%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"followerCount": 2513,
"followingCount": 766,
"isVerified": false
}
},
{
"rank": 3,
"coinAmount": 54,
"account": {
"userId": "7179403887681995777",
"handle": "sojle4",
"nickname": "ငါမရှိသော့တဲ့ မင်းရဲ့ကမ္ဘာ",
"avatarUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/07cc60fd91961c50c9a2b05ba3091fd1~tplv-tiktokx-cropcenter:100:100.jpeg?dr=9640&refresh_token=308b7cd2&x-expires=1793527200&x-signature=b2h8eHL34NwPe3MlLcuUc3Phmdg%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"followerCount": 10900,
"followingCount": 2551,
"isVerified": false
}
},
{
"rank": 4,
"coinAmount": 30,
"account": {
"userId": "6886786382669497350",
"handle": "_akhmetovvv__",
"nickname": "_akhmetovvv__",
"avatarUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/fb8f7c6dadde003311e3a0d0e043ea08~tplv-tiktokx-cropcenter:100:100.jpeg?dr=9640&refresh_token=50ea9b09&x-expires=1793527200&x-signature=kVBCYomnSq%2B%2FygjMv%2BUwIKAVC4w%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast8",
"followerCount": 483,
"followingCount": 65,
"isVerified": false
}
},
{
"rank": 5,
"coinAmount": 30,
"account": {
"userId": "7409353123075425298",
"handle": "user5150538398469",
"nickname": "カイトなない",
"avatarUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/db58d225680ff594f67002f01950df2e~tplv-tiktokx-cropcenter:100:100.jpeg?dr=9640&refresh_token=ce7aaad7&x-expires=1793527200&x-signature=Wt2vgQVn4JcnYQUDwAGj3WeWUdU%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast8",
"followerCount": 113,
"followingCount": 140,
"isVerified": false
}
}
],
"rowType": "room"
}

Daily creator ranking fields

FieldTypeWhat it does
rowTypestringcreatorRanking for a daily ranking entry.
rankingDatestring (date)The published ranking date.
rankintegerThe creator's published position, starting at 1.
creatorobjectPublic details for the ranked creator.
creator.userIdstringThe creator's stable TikTok account ID, when available.
creator.handlestringThe creator's public handle, when available.
creator.nicknamestringThe creator's public display name, when available.
creator.biostringThe creator's public bio, when available.
creator.avatarUrlstring (URL)The creator's profile image, when available.
creator.followerCountintegerThe creator's follower count, when available.
creator.followingCountintegerThe creator's count of accounts followed, when available.
creator.isVerifiedbooleanThe creator's TikTok verification status, when available.
giftValuenumberThe published daily gift value for this creator, when available.
giftValueUnitstringThe published gift-value unit, such as Diamonds, when available.

Complete daily creator ranking example row

This is one complete row from a successful current-beta run for today in TikTok's ranking calendar.

{
"rowType": "creatorRanking",
"rankingDate": "2026-10-30",
"rank": 3,
"creator": {
"userId": "7227782599509591083",
"handle": "onlyangel2.live",
"nickname": "👑ANGEL🪽",
"bio": "LIVE Host | Good Vibes Only ✨\nBattles • Music • Fun Nights\nSee you nightly ✨ 7:30PM Pacific✅\n👑ANGELFAM🪽",
"avatarUrl": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/1ed605ef1ff0a3e73df290aacadefaea~tplv-tiktokx-cropcenter:100:100.jpeg?dr=9640&refresh_token=9d52c5ff&x-expires=1793527200&x-signature=NAmkWa5DID7k%2BMBJwitPk6s%2BLak%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast8",
"followerCount": 171100,
"followingCount": 1729,
"isVerified": false
},
"giftValue": 1001596,
"giftValueUnit": "Diamonds"
}

Optional fields may be absent when TikTok does not expose them. Stream URLs can be temporary and may expire after the run.

💳 Pricing

This Actor uses pay-per-event pricing. Each saved live room creates one Live room event at $0.00445, or $4.45 per 1,000 saved live rooms. Each saved daily creator ranking entry creates one Ranked creator event at $0.0018, or $1.80 per 1,000 entries. Available gifter details are part of the room row and have no separate event.

The maxItems cap limits saved rows across the run. The maxResultsPerKeyword cap limits eligible rooms for each keyword or category. Empty searches, setup, and warnings do not create row events. Rows already saved remain charged if a later search fails or the run stops.

Limits and caveats

TikTok LIVE search changes throughout the day. TikTok may return fewer rooms than the limit. A viewer filter or duplicate appearances can also reduce the number of saved rooms, and a room can stop being available during the run.

Room runs save active live rooms found during the run. The Actor does not promise complete coverage of every active TikTok live stream, and it does not keep watching rooms after they are found.

If a keyword or category search stops early, rows already saved stay in the dataset. Results for that search may be partial.

🔌 Integrations

Open the dataset in Apify and export rows as JSON, JSONL, CSV, Excel, HTML, or XML. Call the run or dataset through the Apify API, schedule repeat checks, or send rows to webhooks and integrations.

❓ FAQ

It opens the creator's TikTok LIVE page, with the creator handle in the URL. It is not a keyword search link. The page can change when that creator ends a broadcast or starts another one.

What do the ranking numbers mean?

Daily creator rows keep TikTok's published daily rank and gift value for its United States pool (US+). Room gifters keep their published rank and coin amount for that room. Coins and daily-ranking Diamonds are different units. Room rows have no room rank field.

Only the first eligible match is saved. Later matches are ignored. A keyword row keeps the first keyword that found the room, and a category row keeps the first category that found it.

Why did I get fewer rows than the limit?

The limit is a cap, not a guarantee. TikTok may return fewer active rooms, the viewer filter may exclude rooms, or a room may stop being available while the Actor is running.

What happens when I leave the room limit empty?

For keyword and category searches, an empty maxResultsPerKeyword or 0 means no per-search cap. The Actor continues until TikTok reports no more matches. An empty maxItems or 0 removes the overall row cap for either result type. Other limits, repeated errors, the spending limit, or the run timeout can stop collection sooner.

Can I use a stream URL later?

Stream URLs come from TikTok and can expire after the run. Use them soon after collection when you need to process them.

Can I run this on a schedule?

Yes. Schedule the Actor on Apify with the same keyword list to collect fresh active LIVE search results on each run. Each run saves its own rows. The Actor does not keep history across runs, compare a room's numbers between runs, or alert you when a room goes live.

Does this collect live chat or record broadcasts?

No. The Actor returns public room data and stream URLs when TikTok exposes them. It does not collect live chat, record broadcasts, or save video files into storage.

Do I need a TikTok account?

No. You do not need to provide TikTok login credentials.

📝 Changelog

v5.0 (30-10-2026)

  • streamUrls[].quality can now be an array. When TikTok lists several quality labels for the same link, it holds all distinct labels instead of only one. Update code that reads quality to accept text or an array of text.
  • Category searches can collect all available rooms again. Leave maxResultsPerKeyword blank or set it to 0 to collect until TikTok has no more results or maxItems is reached.
  • Added category to rows from category browses. It holds the first submitted category that found the room.
  • Added speechSummary when TikTok provides one.
  • When Apify moves a run to a new server, the run now uses its saved progress. Rooms saved before the move are not saved again, and the final count includes them.
  • Runs now default to 1024 MB of memory. Users can choose 1024 to 2048 MB instead of 128 to 256 MB.
  • Reliability improvements.

v4.0 (29-10-2026)

  • Added room lookup by ID or creator. Choose roomId or creator in findRoomsBy, then fill roomIds or creators. Creator handles, profile URLs, and LIVE page URLs are accepted.
  • Added daily creator rankings. Set resultType to creatorRanking and choose today or yesterday in rankingDay. Rows include rank, creator details, and gift values in Diamonds from TikTok's United States pool (US+) daily ranking.
  • The input schema now requires resultType to choose the row type. Add "resultType": "rooms" to existing room-search inputs.
  • Added maxItems to cap saved rows across the run. Leave it out or set it to 0 for no overall row cap.
  • Category searches now require a positive maxResultsPerKeyword because collection without a category limit is no longer supported. Replace an omitted limit or 0 with a number greater than 0. Keyword searches still support no per-search limit.
  • Added rowType to tell room rows from creator ranking rows.
  • Removed room-row rank, which counted search order rather than a TikTok ranking. There is no replacement. Update exports that use this field; creator ranking rows still include their published rank.
  • Removed room-row creatorHandle and creatorProfileUrl, which repeated details in sourceUrl. Use sourceUrl to open the creator's TikTok LIVE page. It includes the handle and points to the LIVE page rather than the profile page. Update exports that use the removed fields.
  • Removed spokenContentSummary because speech summaries are no longer available through this Actor. There is no replacement. Remove this field from exports that require it.
  • Added the room's gifters ranking, with coin amounts and public account details, when available.
  • activityIndicators now keeps shopping activity in more rooms when TikTok reports it.
  • streamUrls now keeps an available quality label when the same link also appears without one. Links without a quality label no longer use default as a placeholder.
  • Reliability improvements.

v3.1 (24-10-2026)

  • Added region for keyword searches. Use US or GB; other codes may not work. Leave it out or empty to use US. Category searches ignore it.
  • Added creatorFollowingCount and creatorIsVerified when TikTok provides them.
  • Set maxResultsPerKeyword to 0 for no per-search limit. Searches can still stop after repeated errors or at the run's spending or time limit.
  • Category searches now stop when TikTok reports no more rooms.
  • Every saved row now has the creator's TikTok LIVE page in sourceUrl. Rooms without this link are not saved.
  • Reliability improvements.

v3.0 (22-10-2026)

  • Category searches now need at least one TikTok LIVE category name in categories when findRoomsBy is category, so the Actor has a category to browse. Replace an empty list with a category name.
  • Removed the isLive output field because every row is an active TikTok LIVE room. No replacement is needed.
  • Rooms without a title are no longer saved, so every saved row has this field.
  • Added minViewerCount to keep rooms that meet the viewer-count threshold. When you set it, the Actor skips rooms without a viewer count from TikTok.
  • Added activityIndicators to report a battle when TikTok provides battle information.
  • Added spokenContentSummary when TikTok provides one.
  • Reliability improvements.

v2.1 (19-10-2026)

  • Browse live rooms by category. Choose category in findRoomsBy and enter names in categories.
  • Rows from category browses leave out keyword.
  • Added creatorUserId when TikTok provides it.
  • coverImageUrl is left out when TikTok gives only the creator's profile picture.
  • streamUrls lists each distinct link once, with its real format in protocol.
  • Live titles no longer end in a broken character.
  • Source link field is now called "Room link".

v2.0 (08-09-2026)

  • Rows saved before a later search failure stay in the dataset.
  • Dataset rows no longer include scrapedAt. There is no replacement. Remove this field from exports or workflows that require it.
  • Some searches now find rooms they used to miss.
  • Runs now default to 128 MB of memory.
  • Users can choose 128 to 256 MB of memory instead of 256 to 512 MB.
  • Reliability improvements.

v1.0

  • Distinct rooms receive one-based ranks that restart for each keyword.

v0.1

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré