TikTok Live Search Scraper
Pricing
$4.45 / 1,000 live rooms
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é
Maintained by CommunityActor stats
0
Bookmarked
105
Total users
30
Monthly active users
8 days ago
Last modified
Categories
Security
Limited permissionsShare
🔎 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
- Choose
roomsorcreatorRankinginresultType. - For rooms, choose
keyword,category,roomId, orcreatorinfindRoomsByand fill the matching list. For rankings, choosetodayoryesterdayinrankingDay. - Set
maxItemsto cap the whole run. For keyword or category searches, setmaxResultsPerKeywordto cap each search. - Start the Actor and open the dataset.
- 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
| Field | Type | What it does |
|---|---|---|
maxItems | integer (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. |
resultType | string | Required 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. |
findRoomsBy | string | For rooms, choose keyword, category, roomId, or creator. Fields for other methods are ignored. The default is keyword. |
keywords | array 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. |
region | string | Sets 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. |
categories | array 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. |
roomIds | array of strings | Enter 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. |
creators | array of strings | Enter 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. |
minViewerCount | integer (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. |
maxResultsPerKeyword | integer (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. |
rankingDay | string | For 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
| Field | Type | What it does |
|---|---|---|
rowType | string | room for a live room. |
keyword | string | The keyword that found and saved this room. Left out for category, room-ID, and creator lookups. |
category | string | The submitted category that found and saved this room. Only category searches include it. |
roomId | string | The stable TikTok identifier for the live room. |
title | string | The title shown for the live room. Every saved row has a title. |
startedAt | date-time | When the live room started, when available. |
creatorUserId | string | The broadcaster's stable TikTok user ID, when available. |
creatorNickname | string | The broadcaster's public display name, when available. |
creatorAvatarUrl | URL | A link to the broadcaster's profile image, when available. |
creatorBio | string | The broadcaster's public profile bio, when available. |
creatorFollowerCount | integer | The broadcaster's public follower count, when available. |
creatorFollowingCount | integer | The number of accounts the broadcaster follows, when available. |
creatorIsVerified | boolean | Whether TikTok shows the broadcaster as verified, when available. |
viewerCount | integer | The viewer count shown for the live room, when available. |
totalAudienceCount | integer | The total audience count TikTok shows for the live room, when available. |
likeCount | integer | The number of likes shown for the live room, when available. |
shareCount | integer | The number of shares shown for the live room, when available. |
commentCount | integer | The number of comments shown for the live room, when available. |
categoryName | string | The live category shown for the room, when available. |
gameTags | array of strings | Game or topic tags shown for the live room. |
activityIndicators | array of strings | Activities TikTok reports for the live room, such as shopping or a battle. |
speechSummary | string | A speech summary for the live room, when TikTok provides one. |
coverImageUrl | URL | The cover image TikTok gives for the room. Left out when TikTok gives only the creator's profile picture. |
snapshotImageUrl | URL | A link to an image snapshot from the live room, when available. |
streamUrls | array of objects | Distinct live stream links for the room. Each link appears once, even when TikTok lists it under several quality labels. |
streamUrls[].url | URL | The live stream URL. |
streamUrls[].protocol | string | The protocol or format of the link, such as flv, hls, cmaf, or lls. |
streamUrls[].quality | string or array of strings | The stream quality label, when available. When TikTok lists several labels for the same link, this is a list of each distinct label. |
streamUrls[].expiresAt | date-time | When TikTok says this stream URL expires. |
sourceUrl | URL | The creator's TikTok LIVE page. Its URL includes the creator handle; it is not a keyword search page. |
gifters | array of objects | The room's published gifter ranking, when available. |
gifters[].rank | integer | The gifter's published place in this room's ranking. |
gifters[].coinAmount | number | Coins reported for this gifter in this room, when available. |
gifters[].account | object | Public account details for the gifter. |
gifters[].account.userId | string | The gifter's stable TikTok account ID, when available. |
gifters[].account.handle | string | The gifter's public handle, when available. |
gifters[].account.nickname | string | The gifter's public display name, when available. |
gifters[].account.bio | string | The gifter's public bio, when available. |
gifters[].account.avatarUrl | string (URL) | The gifter's profile image, when available. |
gifters[].account.followerCount | integer | The gifter's follower count, when available. |
gifters[].account.followingCount | integer | The gifter's count of accounts followed, when available. |
gifters[].account.isVerified | boolean | The 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
| Field | Type | What it does |
|---|---|---|
rowType | string | creatorRanking for a daily ranking entry. |
rankingDate | string (date) | The published ranking date. |
rank | integer | The creator's published position, starting at 1. |
creator | object | Public details for the ranked creator. |
creator.userId | string | The creator's stable TikTok account ID, when available. |
creator.handle | string | The creator's public handle, when available. |
creator.nickname | string | The creator's public display name, when available. |
creator.bio | string | The creator's public bio, when available. |
creator.avatarUrl | string (URL) | The creator's profile image, when available. |
creator.followerCount | integer | The creator's follower count, when available. |
creator.followingCount | integer | The creator's count of accounts followed, when available. |
creator.isVerified | boolean | The creator's TikTok verification status, when available. |
giftValue | number | The published daily gift value for this creator, when available. |
giftValueUnit | string | The 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
Does sourceUrl open the room or the keyword search?
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.
What happens if the same room appears in more than one search?
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[].qualitycan 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 readsqualityto accept text or an array of text.- Category searches can collect all available rooms again. Leave
maxResultsPerKeywordblank or set it to0to collect until TikTok has no more results ormaxItemsis reached. - Added
categoryto rows from category browses. It holds the first submitted category that found the room. - Added
speechSummarywhen 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
roomIdorcreatorinfindRoomsBy, then fillroomIdsorcreators. Creator handles, profile URLs, and LIVE page URLs are accepted. - Added daily creator rankings. Set
resultTypetocreatorRankingand choosetodayoryesterdayinrankingDay. Rows include rank, creator details, and gift values in Diamonds from TikTok's United States pool (US+) daily ranking. - The input schema now requires
resultTypeto choose the row type. Add"resultType": "rooms"to existing room-search inputs. - Added
maxItemsto cap saved rows across the run. Leave it out or set it to0for no overall row cap. - Category searches now require a positive
maxResultsPerKeywordbecause collection without a category limit is no longer supported. Replace an omitted limit or0with a number greater than0. Keyword searches still support no per-search limit. - Added
rowTypeto 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 publishedrank. - Removed room-row
creatorHandleandcreatorProfileUrl, which repeated details insourceUrl. UsesourceUrlto 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
spokenContentSummarybecause 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
giftersranking, with coin amounts and public account details, when available. activityIndicatorsnow keeps shopping activity in more rooms when TikTok reports it.streamUrlsnow keeps an available quality label when the same link also appears without one. Links without a quality label no longer usedefaultas a placeholder.- Reliability improvements.
v3.1 (24-10-2026)
- Added
regionfor keyword searches. UseUSorGB; other codes may not work. Leave it out or empty to useUS. Category searches ignore it. - Added
creatorFollowingCountandcreatorIsVerifiedwhen TikTok provides them. - Set
maxResultsPerKeywordto0for 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
categorieswhenfindRoomsByiscategory, so the Actor has a category to browse. Replace an empty list with a category name. - Removed the
isLiveoutput field because every row is an active TikTok LIVE room. No replacement is needed. - Rooms without a
titleare no longer saved, so every saved row has this field. - Added
minViewerCountto keep rooms that meet the viewer-count threshold. When you set it, the Actor skips rooms without a viewer count from TikTok. - Added
activityIndicatorsto report a battle when TikTok provides battle information. - Added
spokenContentSummarywhen TikTok provides one. - Reliability improvements.
v2.1 (19-10-2026)
- Browse live rooms by category. Choose
categoryinfindRoomsByand enter names incategories. - Rows from category browses leave out
keyword. - Added
creatorUserIdwhen TikTok provides it. coverImageUrlis left out when TikTok gives only the creator's profile picture.streamUrlslists each distinct link once, with its real format inprotocol.- 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 🫡
🔗 Related Actors
- TikTok Live Recorder - Record one active public TikTok Live broadcast as MP4 segments with room and creator data.
- TikTok Creator Analytics Scraper - Analyze creator profiles and recent public post metrics after finding a broadcaster.
- TikTok Search Scraper - Search public TikTok videos or creator profiles by keyword for broader content research.
- TikTok Keywords Discovery Tool - Find TikTok autocomplete suggestions before choosing live-room search terms.
- TikTok Hashtag Search Scraper - Compare public hashtag metrics for topics related to active live rooms.
Made with ❤️ by Maxime Dupré