# How to get Douyin keyword trends in bulk

2 endpoints do it: Douyin trend-index related keywords → Douyin trend-index keyword trends. The worked example below is 5 calls and costs $0.0260 in all; a failed call is not charged.

Start from one keyword, widen it into a list with its related keywords from the trend-index (巨量算数), then get the daily search index and composite index five keywords at a time. You end up with one day-by-day table that shows which words are rising and when each one peaked.

## Step by step

### Step 1: Douyin trend-index related keywords

Ask for one keyword and a day, and that week's related keywords come back in one call, with no paging. Each item's `keyword` is the related word; `relation` says whether it is searched together with yours (`query`) or appears with it in content (`posts`); a higher `relevance` means closer. Pick the words to compare and take their `keyword` into the next step. ([Douyin trend-index related keywords](https://dataxapi.com/apis/douyin/index/keywords/related/), $0.0020 / a call)

cURL

```bash
curl -G "https://api.dataxapi.com/v1/douyin/index/keywords/related" \
  --data-urlencode "keyword=露营" \
  --data-urlencode "until=2026-10-04T00:00:00Z" \
  -H "Authorization: Bearer $DATAXAPI_API_KEY"
```

Python

```python
from dataxapi import DataXAPI

dx = DataXAPI()  # reads DATAXAPI_API_KEY
result = dx.douyin.index.keywords.related(keyword="露营", until="2026-10-04T00:00:00Z")
print(result["data"]["items"])
```

TypeScript

```typescript
import { DataXAPI } from "@dataxapi/sdk";

const dx = new DataXAPI(); // reads DATAXAPI_API_KEY
const result = await dx.douyin.index.keywords.related({ keyword: "露营", until: "2026-10-04T00:00:00Z" });
console.log(result.data.items);
```

CLI

```bash
dataxapi call douyin.index.keywords.related 'keyword=露营' until=2026-10-04T00:00:00Z
```

Recorded response: From a response recorded 2026-10-12 21:52 UTC. Names, text and IDs are examples, and so are the links: none is the recorded one (the page shows no one's personal data); the figures are as recorded. Long lists are cut. The request ID, cursor and balance are made up.

```jsonc
{
  "code": "ok",
  "request_id": "c0ec3319-99cf-4ec1-8441-1e77af9db440",
  "data": {
    "items": [
      {
        "keyword": "露营车",
        "related_to": "露营",
        "relation": "query",
        "rank": 2,
        "relevance": 0.07604021617112115,
        "search_index": 669384,
        "composite_index": 190809
      },
      // … 172 more
    ]
  },
  "page": {
    "next_cursor": null,
    "cursor_expires_at": null,
    "has_more": false,
    "returned": 173
  },
  "warnings": [],
  "meta": {
    "capability": "douyin.index.keywords.related",
    "result_status": "complete",
    "fetched_at": "2026-10-12T21:52:26.000Z",
    "cached": false,
    "replayed": false,
    "unavailable": {},
    "billing": {
      "amount": "0.002",
      "currency": "USD",
      "balance_after": "9.998"
    }
  }
}
```

### Step 2: Douyin trend-index keyword trends

Put your keyword and the related ones you picked into `keywords`, up to five a call, with `since` and `until`. Each keyword with figures comes back as one item, whose `points` hold the daily `search_index` and `composite_index`. For more words, call again, five at a time. ([Douyin trend-index keyword trends](https://dataxapi.com/apis/douyin/index/keywords/history/), $0.0060 / a call)

cURL

```bash
curl "https://api.dataxapi.com/v1/douyin/index/keywords/history" \
  -H "Authorization: Bearer $DATAXAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"since":"2026-09-01T00:00:00Z","until":"2026-09-30T00:00:00Z","keywords":["咖啡","CityWalk"]}'
```

Python

```python
from dataxapi import DataXAPI

dx = DataXAPI()  # reads DATAXAPI_API_KEY
result = dx.douyin.index.keywords.history(since="2026-09-01T00:00:00Z", until="2026-09-30T00:00:00Z", keywords=["咖啡", "CityWalk"])
print(result["data"]["items"])
```

TypeScript

```typescript
import { DataXAPI } from "@dataxapi/sdk";

const dx = new DataXAPI(); // reads DATAXAPI_API_KEY
const result = await dx.douyin.index.keywords.history({ since: "2026-09-01T00:00:00Z", until: "2026-09-30T00:00:00Z", keywords: ["咖啡", "CityWalk"] });
console.log(result.data.items);
```

CLI

```bash
dataxapi call douyin.index.keywords.history since=2026-09-01T00:00:00Z until=2026-09-30T00:00:00Z 'keywords=咖啡,CityWalk'
```

Recorded response: From a response recorded 2026-10-12 21:47 UTC. Names, text and IDs are examples, and so are the links: none is the recorded one (the page shows no one's personal data); the figures are as recorded. Long lists are cut. The request ID, cursor and balance are made up.

```jsonc
{
  "code": "ok",
  "request_id": "53564b2f-0976-4ff1-bacd-8f35e1e89865",
  "data": {
    "items": [
      {
        "keyword": "咖啡",
        "points": [
          {
            "date": "2026-09-01T00:00:00Z",
            "search_index": 4542097,
            "composite_index": 1627826
          },
          {
            "date": "2026-09-02T00:00:00Z",
            "search_index": 4430237,
            "composite_index": 1603543
          },
          {
            "date": "2026-09-03T00:00:00Z",
            "search_index": 4439049,
            "composite_index": 1606224
          },
          {
            "date": "2026-09-04T00:00:00Z",
            "search_index": 4590172,
            "composite_index": 1648872
          },
          {
            "date": "2026-09-05T00:00:00Z",
            "search_index": 5608382,
            "composite_index": 1966637
          },
          {
            "date": "2026-09-06T00:00:00Z",
            "search_index": 5341970,
            "composite_index": 1888380
          },
          {
            "date": "2026-09-07T00:00:00Z",
            "search_index": 5098808,
            "composite_index": 1808789
          },
          // … 23 more
        ]
      },
      // … 1 more
    ]
  },
  "page": {
    "next_cursor": null,
    "cursor_expires_at": null,
    "has_more": false,
    "returned": 2
  },
  "warnings": [],
  "meta": {
    "capability": "douyin.index.keywords.history",
    "result_status": "complete",
    "fetched_at": "2026-10-12T21:47:47.000Z",
    "cached": false,
    "replayed": false,
    "unavailable": {
      "points.notes": "platform",
      "points.impressions": "platform",
      "points.views": "platform",
      "points.engagements": "platform"
    },
    "billing": {
      "amount": "0.006",
      "currency": "USD",
      "balance_after": "9.994"
    }
  }
}
```

## What the example costs

One keyword's related keywords for a week, then the daily index of 20 keywords over 30 days, in 4 calls of five

| Endpoint | Calls | Price | Subtotal |
| --- | --- | --- | --- |
| [Douyin trend-index related keywords](https://dataxapi.com/apis/douyin/index/keywords/related/) | 1 | $0.0020 | $0.0020 |
| [Douyin trend-index keyword trends](https://dataxapi.com/apis/douyin/index/keywords/history/) | 4 | $0.0060 | $0.0240 |
| Total | 5 |  | $0.0260 |

Prices are the prices in force when this page was built. A failed call, and an object that does not exist, cost nothing.

## In your AI (MCP)

Connect DataXAPI to your AI client once. Then say what you want; the agent finds these endpoints, checks the price and calls them on your balance.

Say: Look up the related keywords of 露营 (camping) for the latest week in Douyin's trend-index, pick the 4 most related, and get the daily search index and composite index of those and 露营 for September 2026, as one table.

What the agent sends to the call tool: 

```json
{
  "capability": "douyin.index.keywords.related",
  "keyword": "露营",
  "until": "2026-10-04T00:00:00Z",
  "idempotency_key": "<a new UUID>"
}
```

[About the MCP server](https://dataxapi.com/mcp/)

## Good to know

- An index is the platform's own score, not a number of searches. Compare a keyword with its own past, or with another keyword on Douyin.
- Days are calendar days in China time (UTC+8). The platform publishes a day's figure a day or two late, and a day without a figure yet has a `null` index. Related keywords come by the week (Monday to Sunday); the latest week usually appears early the next week.
- A keyword the index does not cover is left out of the answer. When none of the keywords has figures the result is empty, and an empty result is charged, on the related-keywords endpoint too.
- Keywords come back as the platform writes them, with Latin letters in lower case: ask for CityWalk and you get citywalk.

## Endpoints

- [Douyin trend-index related keywords](https://dataxapi.com/apis/douyin/index/keywords/related/)
- [Douyin trend-index keyword trends](https://dataxapi.com/apis/douyin/index/keywords/history/)

## More about Douyin

- [Douyin API](https://dataxapi.com/apis/douyin/)
- [Douyin trend-index API](https://dataxapi.com/apis/douyin/index/)
- [How to export Douyin video comments in bulk](https://dataxapi.com/guides/douyin-video-comments/)
- [How to look up a Douyin creator's Xingtu rate card](https://dataxapi.com/guides/douyin-xingtu-creator-rates/)
- [How do I export Douyin data?](https://dataxapi.com/answers/export-douyin-data/)

---

Catalog revision c48ce454ae6c4c65. [HTML version](https://dataxapi.com/guides/douyin-keyword-trends/)
