Live Battle (PK)
GET/v1/tiktok/live/battle1 credit
Tells whether a TikTok LIVE room is in a battle (PK) right now and returns the battle's id, start time, length and participants: each host's user id, username, display name and current score. Our own route: ScrapeCreators has no battle route.
01Query parameters
| Name | Type | Description |
|---|---|---|
| handleoptional | string | The host's TikTok handle (`@` and profile URLs are read). Its current live room is looked up first. One of `handle` or `room_id` is required. |
| room_idoptional | string | The live room's numeric id (`roomId` in the User Live Status response). Wins over `handle` and is one call faster. |
02Request
curl "https://api.scrapesocial.ai/v1/tiktok/live/battle?handle=babagaming_22" \ -H "x-api-key: $SCRAPESOCIAL_KEY"
03Responses
Real answers from the API. Lists are shortened to 2 items.
GET /v1/tiktok/live/battle?room_id=7700625972861324065
{
"success": true,
"credits_remaining": 4980,
"credits_charged": 1,
"room_id": "7700625972861324065",
"owner": {
"id": "7308031192074126369",
"username": "babagaming_22",
"display_name": "BABA GAMING"
},
"is_live": true,
"in_battle": false,
"battle_id": null,
"mode": null,
"started_at": null,
"duration_seconds": null,
"finished": null,
"participants": [],
"fetched_at": "2026-10-25T17:10:30Z"
}Common to every endpoint
Any route can answer these: a missing or wrong key, no credits left, the platform not answering, or a failure on our side. None of them costs credits.
GET /v1/cosmos/profile?handle=design
{
"success": false,
"message": "Invalid API key"
}04Notes
The answer is `room_id, owner{id, username, display_name}, is_live, in_battle, battle_id, mode (pk / multi_guest / unknown), started_at, duration_seconds, finished, participants[{user_id, username, display_name, score, team}], fetched_at`. The host comes first; in a 1-to-1 PK `team` is `host` or `opponent`. Scores are TikTok's battle points, refreshed by TikTok about every 10 seconds. After a battle ends TikTok keeps it for about a minute with the final scores: `in_battle` is false, `finished` true and the participants are still there. Live without a battle, and not live, are data too (1 credit): `in_battle` false, the battle fields null, `participants` empty. An opponent whose name lookup fails keeps its id and score with null names. An unknown handle or room is a free 404; a missing parameter or a non-numeric `room_id` is a free 400.
05Errors & credits
Every error has success: false, a real HTTP status and costs no credits.
400missing_parameter
A required parameter is missing or invalid.
403private_account
The account is private or age-restricted.
404not_found
No such account.
503upstream_error
The platform did not answer; retry shortly.