Skip to content

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

NameTypeDescription
handleoptionalstringThe 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_idoptionalstringThe 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.