TikTok Live Room Status (by Live URL)
omnial/tiktok-web-fetch-tiktok-live-data
Given a TikTok live room URL, reports whether that account currently has an active live broadcast, and when it does, returns the streamer's profile (nickname, handle, verified status, follower/following counts), the broadcast's title, start time, subscriber-only flag, live viewer/entry counts, and the video quality options available for that stream. When the room is not currently live or the URL does not resolve to a live account, returns only `{ CurrentRoom: { roomInfo: null } }` -- this tool cannot tell those two cases apart.
Price
Up to $0.00308 per call; you pay what the call used
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $0.50.
Use it
Your AI assistant does the work: it finds this tool, shows you the price first, runs it, and you are charged when the run finishes. There is nothing to set up for this tool in particular.
Connect once and your AI can find and run this tool, and any other it needs.
For developers: the calls your assistant makes
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "omnial/tiktok-web-fetch-tiktok-live-data" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/tiktok-web-fetch-tiktok-live-data" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/tiktok-web-fetch-tiktok-live-data", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/tiktok-web-fetch-tiktok-live-data", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.00308 |
- Updated
- Nov 3, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"live_room_url"
],
"properties": {
"live_room_url": {
"type": "string",
"examples": [
"https://www.tiktok.com/@.caseoh_daily/live"
],
"description": "Live room link"
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"properties": {
"LiveRoom": {
"type": "object",
"properties": {
"needLogin": {
"type": "boolean"
},
"showLiveGate": {
"type": "boolean"
},
"isAgeGateRoom": {
"type": "boolean"
},
"liveRoomStatus": {
"type": "number",
"description": "Observed as `0` on an active broadcast, while the nested `liveRoomUserInfo.liveRoom.status` and `liveRoomUserInfo.user.status` fields were both `4` on the same call -- this field's meaning does not appear to be a simple 'is live' flag and is UNCONFIRMED; do not rely on it alone to determine live status."
},
"liveRoomUserInfo": {
"type": "object",
"properties": {
"user": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The streamer's numeric TikTok user ID."
},
"roomId": {
"type": "string",
"description": "The numeric ID of the live room."
},
"secUid": {
"type": "string",
"description": "TikTok's opaque secure user identifier, commonly needed as an input to other TikTok lookup tools."
},
"secret": {
"type": "boolean",
"description": "Whether the account is private."
},
"status": {
"type": "number",
"description": "Observed as `4` on an active broadcast; exact meaning of the numeric code is undocumented by the vendor."
},
"nickname": {
"type": "string",
"description": "The streamer's display name."
},
"uniqueId": {
"type": "string",
"description": "The streamer's @handle."
},
"verified": {
"type": "boolean"
},
"signature": {
"type": "string",
"description": "The streamer's bio text."
},
"followStatus": {
"type": "number",
"description": "The calling account's follow relationship to the streamer."
}
},
"additionalProperties": true
},
"stats": {
"type": "object",
"properties": {
"followerCount": {
"type": "number"
},
"followingCount": {
"type": "number"
}
},
"additionalProperties": true
},
"liveRoom": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"status": {
"type": "number",
"description": "Observed as `4` on an active broadcast; see the top-level `liveRoomStatus` field's description for the discrepancy against that field on the same call."
},
"streamId": {
"type": "string",
"description": "The numeric ID of this specific stream."
},
"startTime": {
"type": "number",
"description": "Unix seconds."
},
"streamData": {
"type": "object",
"properties": {
"pull_data": {
"type": "object",
"properties": {
"options": {
"type": "object",
"properties": {
"qualities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "e.g. 'Original', '1080p', '720p'."
},
"level": {
"type": "number"
},
"sdk_key": {
"type": "string"
},
"v_codec": {
"type": "string"
},
"icon_type": {
"type": "number"
},
"resolution": {
"type": "string"
}
},
"additionalProperties": true
},
"description": "Every quality level available for this stream."
},
"default_quality": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"level": {
"type": "number"
},
"sdk_key": {
"type": "string"
},
"v_codec": {
"type": "string"
},
"icon_type": {
"type": "number"
},
"resolution": {
"type": "string"
}
},
"description": "The quality level the player would default to, e.g. '720p'/'hd' on an active broadcast.",
"additionalProperties": true
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
},
"description": "Quality-option metadata for the live video stream. Does NOT include a playable stream URL -- only which quality levels exist and which one the player would default to.",
"additionalProperties": true
},
"liveSubOnly": {
"type": "number",
"description": "Whether the broadcast is subscriber-only; observed as `0` (no)."
},
"liveRoomStats": {
"type": "object",
"properties": {
"userCount": {
"type": "number",
"description": "Current live viewer count."
},
"enterCount": {
"type": "number",
"description": "Total entries into the room."
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
},
"description": "Present only when the queried URL currently has an active live broadcast.",
"additionalProperties": true
},
"CurrentRoom": {
"type": "object",
"properties": {
"roomInfo": {
"type": "null",
"description": "Observed as `null` on all three captures calibrated -- both not-live/not-found cases and the one active-broadcast case. This is the only field that survives shaping when the queried room is not currently live or the URL does not resolve to a live account, so its presence (even though its value is always `null`) is what tells a customer the call completed and simply found nothing, rather than the response being empty."
}
},
"description": "Present on every call, live or not. Every field under it other than `roomInfo` is a fixed placeholder default that never varied across any capture calibrated (including the active-broadcast one), so only `roomInfo` is described here.",
"additionalProperties": true
}
},
"description": "The live-room record. Observed as `{ CurrentRoom: { roomInfo: null } }` when the queried live room URL is not currently broadcasting or does not resolve to a live account -- these two cases are indistinguishable from this tool's output alone (two probes, a streamer's URL and a nonexistent handle, returned the identical shape).",
"additionalProperties": true
}