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.

Open in ChatGPTOpen in Claude

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 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.

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"
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"])
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);
dataxapi call douyin.index.keywords.related 'keyword=露营' until=2026-10-04T00:00:00Z
Recorded response
{
  "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"
    }
  }
}

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.

Douyin trend-index related keywords · $0.0020 / a call · Parameters, fields and errors on the endpoint's page →

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.

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"]}'
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"])
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);
dataxapi call douyin.index.keywords.history since=2026-09-01T00:00:00Z until=2026-09-30T00:00:00Z 'keywords=咖啡,CityWalk'
Recorded response
{
  "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"
    }
  }
}

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.

Douyin trend-index keyword trends · $0.0060 / a call · Parameters, fields and errors on the endpoint's page →

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

EndpointCallsPriceSubtotal
Total5$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
{
  "capability": "douyin.index.keywords.related",
  "keyword": "露营",
  "until": "2026-10-04T00:00:00Z",
  "idempotency_key": "<a new UUID>"
}

Sign in to copy the setup prompt with your keyAbout the MCP server →

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.