TikTok Live Status Monitor
Pricing
from $5.00 / 1,000 live status checkeds
TikTok Live Status Monitor
Check TikTok LIVE status from usernames or profile URLs. Returns isLive, room title, viewer count, and start time. Cookieless public data via ScrapeCreators + SociaVault. For chat/recording/discovery use tiktok-live-scraper. $0.005 per resolved snapshot.
Pricing
from $5.00 / 1,000 live status checkeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
6 days ago
Last modified
Categories
Share
Turn TikTok usernames or profile URLs into one live-status snapshot per account for brand monitoring, talent scouting, and live-shopping alerts. Each row includes isLive, status, roomTitle, viewerCount, startedAt, and liveUrl. No TikTok login or cookies.
This Actor is a focused is-live roster checker. When you need chat capture, recording, or category discovery after a status check, continue with TikTok Live Scraper.
TikTok is a trademark of its owner. This independent Actor is not affiliated with, associated with, or endorsed by TikTok.
Best fit for this Actor
- Poll a known creator roster on an Apify Schedule and keep
isLiveplus offline snapshots. - Alert when a talent or brand handle starts broadcasting.
- Feed an agent a short handle list and get structured live/offline JSON.
For profile bios or videos, continue with TikTok Profile Scraper after you have the handles. For comments on published videos (not LIVE rooms), use TikTok Video Comments Scraper.
Practical scenario
A talent scout pastes tiktok and khaby.lame. The job returns one billed row per public handle: offline accounts still write isLive: false so the roster stays complete; an unknown handle finishes as unbilled VALID_EMPTY with no dataset row. The scout schedules the same input every 15 minutes and filters isLive: true downstream.
Quick start input
{"usernames": ["tiktok"],"maxItems": 10,"includeOffline": true,"includeStreamUrls": false}
usernames accepts bare handles, @handles, profile URLs, or /live URLs. One unique handle produces one dataset row.
Input reference
| Field | Type | What it controls |
|---|---|---|
usernames | array | Required handles or profile/live URLs. Example: tiktok. Max 100 unique via maxItems. |
maxItems | integer | Cap on unique accounts processed. Default 20, max 100. |
includeOffline | boolean | Keep offline snapshots so a roster stays complete. Default true. |
includeStreamUrls | boolean | Attach ephemeral HLS/FLV only while isLive is true. Default false. |
providerOrder | enum | scrapecreators-first (default), sociavault-first, or vendor-only pins. |
What data you receive
One dataset item is one public TikTok account snapshot.
{"username": "tiktok","profileUrl": "https://www.tiktok.com/@tiktok","isLive": false,"status": "offline","outcome": "OK","provider": "scrapecreators","checkedAt": "2026-09-15T19:39:18.597Z","liveUrl": "https://www.tiktok.com/@tiktok/live","nickname": "TikTok","verified": true,"followerCount": 95754368,"roomTitle": "Example leftover room title","viewerCount": 0}
| Field | Meaning |
|---|---|
isLive | true only when the provider reports the account is broadcasting now |
status | live or offline for billed rows |
roomTitle | Current title when live; may still appear after a room ends |
viewerCount | Live viewers when broadcasting; 0 when offline |
provider | scrapecreators or sociavault |
checkedAt | ISO timestamp of this snapshot |
Offline rooms can still expose a leftover roomTitle. Treat isLive as the source of truth. Stream URLs expire quickly and appear only when you opt in and the account is live.
OUTPUT and RUN_SUMMARY in the default key-value store hold outcome, itemsPushed, and chargedEventCounts.
Honest live vs leftover-room rule
TikTok payloads often keep title, startTime, and even signed stream URLs after the broadcast ends. This Actor uses the provider is_live flag. A leftover-title room with isLive: false is billed as an honest offline snapshot.
Pricing
Pay per event plus Apify platform usage. The live Pricing tab is the current source of truth for event names and dollar amounts.
| Event | When it charges | Typical price |
|---|---|---|
apify-actor-start | Once per job | $0.00005 |
live-status-checked | Each persisted live or offline snapshot | $0.005 |
Worked example: checking 10 public handles with includeOffline: true charges about 10 × $0.005 for snapshots plus the start fee, plus platform usage on the Pricing tab. Unknown handles finish as unbilled VALID_EMPTY.
Use through the API
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('khadinakbar/tiktok-live-status-monitor').call({usernames: ['tiktok', 'khaby.lame'],maxItems: 10,includeOffline: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Agent / MCP prompt
Call apify--tiktok-live-status-monitor with usernames ["tiktok","khaby.lame"], includeOffline true, maxItems 10. Read the dataset for isLive/status/roomTitle, then read OUTPUT for outcome and chargedEventCounts. Cost is one live-status-checked event per billed snapshot plus platform usage. Scope is public is-live status only; route chat or recording needs to khadinakbar/tiktok-live-scraper.
Scheduling a roster
Save the Actor as a Task with your handle list, then attach an Apify Schedule (for example every 15 minutes). Each job is one snapshot batch. Filter isLive === true in your downstream webhook or dataset export.
Best results
- Prefer known public handles over guesswork; unknown accounts stay unbilled.
- Keep
includeOffline: truefor roster completeness; set it false when you only want currently live rows. - Leave
includeStreamUrlsfalse unless you will consume the URLs immediately. - Cap
maxItemsto the roster size you can afford at $0.005 per snapshot.
Builder's note
I found that provider payloads for ended rooms still ship leftover titles and signed stream URLs. Inferring live from those fields created false positives during the first probe, so the runtime trusts is_live only and attaches stream URLs solely when that flag is true. SociaVault’s TikTok live route expects handle= (not username=), which matters when pinning sociavault-only.
Outcome contract
| Outcome | Meaning | Dataset | Named charge |
|---|---|---|---|
COMPLETE | Every unique handle resolved live or offline | Yes | Yes, one per snapshot |
PARTIAL | Mix of snapshots and upstream issues | Snapshots only | Snapshots only |
VALID_EMPTY | All handles missing or all offline when includeOffline is false | No billable rows | No |
INVALID_INPUT | Empty or unusable handle list | No | No |
UPSTREAM_FAILED | Both providers unavailable for every handle | No | No |
CONFIG_ERROR | Required provider keys missing | No | No |
Responsible use
Use this Actor on public TikTok LIVE pages and profiles you are authorized to monitor. Respect applicable law and TikTok’s terms. Prefer consented brand, talent, and commerce monitoring workflows.
Related Actors
- TikTok Live Scraper — when you need room details, chat, or currently-live discovery after a status check
- TikTok Profile Scraper — when you need bios and public profile fields for the same handles
- TikTok Video Comments Scraper — when you need comments on published VOD, not LIVE rooms