TikTok Live Scraper — Live Status, Chat & Gifts
Pricing
from $5.00 / 1,000 live result (status / room / discover)s
TikTok Live Scraper — Live Status, Chat & Gifts
Scrape TikTok LIVE: check whether a username is live, get room metadata with viewer count and stream URLs, follow the real-time chat and gifts feed, or discover creators live now. The mode is auto-detected, with no cookies or login.
Pricing
from $5.00 / 1,000 live result (status / room / discover)s
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
44
Total users
9
Monthly active users
a day ago
Last modified
Categories
Security
Limited permissionsShare
What is TikTok Live Scraper?
TikTok Live Scraper returns TikTok LIVE data for creators and rooms you name: whether a username is live right now, the live room's title, viewer counts, start time, hashtag and stream URLs, a timed capture of the real-time chat and gift feed, live rooms found by keyword search, or a list of rooms broadcasting now in a category. Live rows can also list the room's top gifters with their coin totals. Each dataset row has a recordType and a status, so brand monitors, live-shopping analysts, talent scouts and AI agents can branch on the result without parsing pages. No cookies or TikTok login are needed.
Why teams use this TikTok LIVE scraper
- Five LIVE jobs, one input. Fill
usernames,liveRoomUrls,chatFeedUsername,liveSearchKeywordordiscoverCategory, and the Actor picks the matching mode. - Live search by keyword.
liveSearchKeywordreturns rooms TikTok ranks for any phrase, such ascookingormakeup tutorial, with viewer count and live link. - Top gifters per room. Set
includeTopGiftersto add the room's top gifters (rank, handle, coins, followers) to every live status or room row. - A clear answer per creator. Live-status rows carry
isLiveplus room details when the creator is broadcasting. - Real-time chat and gifts. Chat capture listens to a live room for
chatCaptureSecondsand saves one row per chat, gift, join or like you choose inchatEventTypes. - Labeled outcomes. A confirmed offline creator returns
isLive: false. ReadOUTPUTorRUN_SUMMARYfor restricted targets, interrupted capture, and discovery failures. - Agent-friendly rows. Flat, consistently named fields that an MCP client can read straight from the dataset.
Best fit for this Actor
- Best fit for checking a list of creators for live status, pulling a live room's metadata, or recording a live session's chat and gifts while it airs.
- Use it on a short schedule when you want to know when creators go live.
- For a dedicated watchlist that alerts on changes, continue with TikTok Live Status Monitor.
- For follower counts, bio and engagement of the same creators, pass the handles to TikTok Profile Scraper — Followers, Bio & Score.
What people and AI agents ask this Actor to do
Is this creator live on TikTok right now? Record the chat and gifts from this live stream for five minutes. Get the room title and viewer count for this live link. Which gaming creators are live in the US right now?
| Request | Input to send |
|---|---|
| Live status for a list of creators | {"usernames": ["stoolpresidente", "khaby.lame"]} |
| Live room details | {"liveRoomUrls": ["https://www.tiktok.com/@stoolpresidente/live"]} |
| Chat and gifts for five minutes | {"chatFeedUsername": "stoolpresidente", "chatCaptureSeconds": 300} |
| Rooms live now in a category | {"discoverCategory": "gaming", "discoverRegion": "US", "maxDiscoverResults": 50} |
| Live rooms for a keyword | {"liveSearchKeyword": "cooking", "discoverRegion": "US", "maxDiscoverResults": 40} |
| Who is gifting most in a live room | {"usernames": ["stoolpresidente"], "includeTopGifters": true, "maxTopGifters": 10} |
Example workflow: from a creator list to a live-shopping report
A live-commerce manager starts with the handles of eight partner creators in usernames and schedules the Actor every ten minutes during launch week. Each run returns a live-status row per creator. When a row shows isLive as true, her automation starts a second run with chatFeedUsername set to that creator and chatEventTypes set to chat and gift. She exports the chat rows, compares gift totals across creators, and feeds the comment text into an LLM summary of what buyers asked about the product.
Input
Fill one of the five mode fields. The others stay empty.
{"usernames": ["stoolpresidente", "khaby.lame"],"maxResults": 100}
| Field | Type | What it controls |
|---|---|---|
usernames | array | TikTok handles or profile URLs for live-status checks |
liveRoomUrls | array | Live room URLs such as tiktok.com/@user/live, or numeric room IDs |
chatFeedUsername | string | One handle whose live chat and gifts to capture |
chatCaptureSeconds | integer | Listening time for chat capture. Default 60, range 10 to 1800 |
chatEventTypes | array | chat, gift, member, like, social. Default ["chat", "gift"] |
discoverCategory | string | gaming, lifestyle, music, fashion, food, sports, education, entertainment, beauty or comedy |
liveSearchKeyword | string | Free-text live search, up to 100 characters |
discoverRegion | string | Two-letter country code for discovery and keyword search. Default US |
maxDiscoverResults | integer | Cap on discovered or searched rooms. Default 50 |
maxResults | integer | Cap on live-status and room-details rows. Default 100 |
includeTopGifters | boolean | Add the room's top gifters to live rows. Default false |
maxTopGifters | integer | Gifters per live room. Default 10, range 1 to 99 |
Output
Every row has recordType (live-status, room-details, chat-event, search-live or discover-live), status and scrapedAt.
| Field | What it contains |
|---|---|
recordType, status, note, source | Mode, outcome label, readable detail and data route |
username, userId, secUid, nickname, verified, avatarUrl, followerCount | Creator identity |
isLive, roomId, roomTitle, coverUrl, liveUrl | Live room identity |
viewerCount, totalEnterCount, startedAt, hashTag | Audience and timing while live |
isPaidEvent, isSubOnly, streamUrls | Room access flags and stream URLs |
chatEventType, chatText, chatTimestamp, fromUsername, fromUserId, fromNickname | Chat feed rows |
giftName, giftCount, giftDiamondValue, giftTotalDiamonds | Gift rows |
discoverRank, discoverCategory, searchKeyword | Position, category or keyword for discovered and searched rooms |
topGifters, topGiftersTotal, topGiftersCurrency | With includeTopGifters: ranked gifters (rank, username, nickname, userId, coins, followerCount), how many viewers TikTok ranked, and the unit (coins) |
A live-status row for a creator who is offline at check time:
{"recordType": "live-status","status": "ok","isLive": false,"username": "stoolpresidente","userId": null,"secUid": null,"nickname": null,"verified": false,"avatarUrl": null,"followerCount": null,"roomId": null,"roomTitle": null,"coverUrl": null,"viewerCount": null,"totalEnterCount": null,"startedAt": null,"hashTag": null,"isPaidEvent": false,"isSubOnly": false,"liveUrl": null,"streamUrls": null,"scrapedAt": "2026-10-02T15:02:01.057Z"}
When the creator is broadcasting, the same row fills isLive, roomId, roomTitle, viewerCount, startedAt and liveUrl. A handle that does not exist on TikTok produces no row and no charge; the run summary counts it in notFoundTargets. When TikTok restricts access, the live status is unknown. The summary reports how many targets were restricted. Those targets produce no result charge. For repeated monitoring, retry a restricted target only when its access changes.
Pricing
This Actor uses Pay per event with Apify platform usage included in the event price. You pay an Actor Start charge based on allocated memory, one Live result (status / room / discover) event per live-status check, room-details row, discovered room or keyword-search room, and one Chat / gift / join / like event captured event per chat-feed row. The live Pricing tab on this page shows the current event prices.
Worked example: a check that delivers eight verified creator statuses incurs eight Live result events plus the applicable Actor Start charge. A chat capture costs one Chat event per saved chat or gift row, so a busy stream with a long chatCaptureSeconds produces more rows than a quiet one; keep chatEventTypes to chat and gift for the highest-signal rows. Top gifters are included in the Live result price, with no extra event. Set a maximum charge per run in the run options to cap spend.
API example
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~tiktok-live-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"usernames": ["stoolpresidente", "khaby.lame"]}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("khadinakbar/tiktok-live-scraper").call(run_input={"usernames": ["stoolpresidente", "khaby.lame"],})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row["username"], row["isLive"], row.get("viewerCount"))
Use with AI agents (MCP)
Connect the Actor through Apify MCP in Claude, ChatGPT or Cursor and ask:
Check whether these five TikTok creators are live right now. For anyone live, give me the room title, viewer count and live link.
The agent sends the handles in usernames, reads rows back with get-dataset-items, and answers from isLive, roomTitle, viewerCount and liveUrl. It should read the run summary before concluding, and cite scrapedAt because live data is a point-in-time snapshot. Chat capture is one creator per run and bills per saved row, so agents should set a short chatCaptureSeconds unless the user asks for a long session.
Best results
| Starting situation | Helpful action | Expected outcome |
|---|---|---|
| You track a creator roster | Put all handles in usernames and schedule short intervals | A live or offline row per creator each run |
| A creator just went live | Start a chat capture with chatFeedUsername while the room is on air | Chat and gift rows for the session |
| You need joins and likes too | Add member and like to chatEventTypes | Fuller engagement rows |
| Category discovery returns no verified rooms | Try liveSearchKeyword with the same word. Many rooms carry no category tag. | Rooms TikTok ranks for that keyword |
| Discovery returns no verified rooms | Check the run summary for the discovery failure. TikTok may withhold a regional feed. | An unavailable feed produces no room fee. |
| Viewer trends over a stream | Schedule liveRoomUrls every few minutes during the broadcast | A time series of viewerCount |
Builder's note
I built the four LIVE jobs behind one input because people usually move through them in order: check who is live, open the room, then record the chat. I designed every outcome, including offline creators and rooms that close mid-capture, to arrive as a labeled row so schedules and agents can branch on status instead of guessing why a dataset is short.
FAQ
Can I capture chat from a creator who is offline?
Chat exists only while a room is broadcasting. The Actor checks live status before connecting. If the creator is offline, the run ends successfully with no rows, no chat fee, and OUTPUT reporting VALID_EMPTY with creatorLive: false and a plain message. Start the capture again while the creator is live.
Does it return past LIVE replays?
It works with rooms that are on air at run time. For recorded TikTok videos, use a TikTok video Actor instead.
Can I capture several creators' chat at once?
Chat capture follows one creator per run. Start one run per creator, in parallel if needed.
Responsible use
This Actor reads public TikTok LIVE information without a login. Chat rows contain usernames and comments, which are personal data under laws such as the GDPR and CCPA; collect them only with a lawful basis, keep them no longer than needed and respect TikTok's terms of service. TikTok is a trademark of its owner, and this independent Actor is not affiliated with it. For questions, open a ticket in the Issues tab.