---
title: "Get TikTok Live daily rank data"
description: "TikHub tool tikhub-api-tiktok-app-fetch-live-daily-rank on looot: input fields, $0.001 per call, output shape, and code to run it with curl, JavaScript or Python."
sidebar:
  hidden: true
---

{/* Generated by scripts/generate-api-reference.mjs from data/api-reference.json. Do not edit. */}

Returns TikTok live daily rank data. Optional inputs: `cookie`, `room_id`, `anchor_id`, `rank_type`, `region_type` and more. `anchor_id`: Anchor id, which can be obtained from the live room information endpoint, use the default value, this parameter will affect the returned data, you can try different anchor ids of different live rooms. `room_id`: Live room id, which can be obtained from the live room information endpoint, use the default value, this parameter will affect the returned data, you can try diffe. Do not send a cookie; public data only.

- **Tool id:** `tikhub-api-tiktok-app-fetch-live-daily-rank`
- **Provider:** [TikHub](/providers/tikhub)
- **Job:** [Fetch live daily rank api tiktok app](/reference/jobs/api-tiktok-app-fetch-live-daily-rank) (`api.tiktok.app.fetch-live-daily-rank`)
- **Price:** $0.001 per call. A call that fails at the provider costs $0.

## Inputs

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `anchor_id` | string | no | Anchor id |
| `cookie` | string | no | User's own cookie |
| `gap_interval` | integer | no | Time interval |
| `rank_type` | integer | no | Rank type |
| `region_type` | integer | no | Region type |
| `room_id` | string | no | Live room id |

## Output

Shape of the run's `result`, the expected shape, not yet checked against real answers:

```txt
{ code, data: { data: {}, extra: { now }, status_code }, docs, time, params: {}, router, message, support, cache_url, time_zone, message_zh, request_id, time_stamp, cache_message, cache_message_zh }
```

## Run it

Every call needs your API token in `LOOOT_TOKEN`; [Sign in](/get-started/sign-in#use-the-token-in-scripts-and-agents) shows how to get one. Each run also needs a new idempotency key, so a retry never pays twice. With `wait: 30` the answer comes back inline when the run ends within 30 seconds. Otherwise you get the running run back: poll `GET /v1/runs/<runId>`.

Example input with placeholder values:

<CodeGroup>

```bash curl
curl -X POST "https://api.looot.ai/v1/runs" \
  -H "Authorization: Bearer $LOOOT_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"endpointId":"tikhub-api-tiktok-app-fetch-live-daily-rank","input":{"cookie":"<cookie>"},"wait":30}'
```

```js JavaScript
const response = await fetch("https://api.looot.ai/v1/runs", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.LOOOT_TOKEN}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({
    endpointId: "tikhub-api-tiktok-app-fetch-live-daily-rank",
    input: {
      cookie: "<cookie>",
    },
    wait: 30,
  }),
});
const run = await response.json();
console.log(run.status, run.result);
```

```python Python
import os
import uuid

import requests

response = requests.post(
    "https://api.looot.ai/v1/runs",
    headers={
        "Authorization": f"Bearer {os.environ['LOOOT_TOKEN']}",
        "Idempotency-Key": str(uuid.uuid4()),
    },
    json={
        "endpointId": "tikhub-api-tiktok-app-fetch-live-daily-rank",
        "input": {
            "cookie": "<cookie>",
        },
        "wait": 30,
    },
    timeout=90,
)
run = response.json()
print(run["status"], run.get("result"))
```

</CodeGroup>

To let looot pick among every provider of this job instead, send `job:api.tiktok.app.fetch-live-daily-rank` as `endpointId`; see [the job page](/reference/jobs/api-tiktok-app-fetch-live-daily-rank).
