Douyin APIdouyin.com ↗
Access Douyin's real-time hot search rankings and trending topics. Returns up to 50 ranked search terms with popularity scores, cover images, and timestamps.
What is the Douyin API?
The Douyin API exposes China's TikTok trending data through a single endpoint, get_hot_search, returning two structured arrays: a ranked word_list of up to 50 hot search terms with popularity scores and metadata, and a trending_list carousel of up to 5 top trending topics with cover images. All data reflects the current state of Douyin's public hot search index and includes freshness timestamps via active_time.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/69a5b130-dcc0-412b-9025-b7a1a480a9e4/get_hot_search' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace douyin-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Douyin hot search — fetch current trending topics and rankings."""
from parse_apis.douyin_com_api import Douyin, ParseError
client = Douyin()
# Fetch the current hot search board (refreshes frequently throughout the day)
try:
board = client.hot_boards.get()
except ParseError as e:
print(f"Extraction failed ({e.code}): {e}")
raise
print(f"Last updated: {board.active_time}")
# Show top trending carousel items
print("\n— Trending topics —")
for topic in board.trending_list[:3]:
print(f" {topic.word} (videos: {topic.video_count})")
# Show ranked hot search terms with popularity scores
print("\n— Hot search rankings —")
for term in board.word_list[:5]:
print(f" #{term.position} {term.word} — hot_value: {term.hot_value}")
print("\nexercised: hot_boards.get")
Returns the current Douyin hot search rankings and trending topics. Includes a carousel of top trending items (typically 5) and a ranked list of hot search terms (typically 50) with their popularity scores, cover images, and metadata. The data refreshes frequently throughout the day.
No input parameters required.
{
"type": "object",
"fields": {
"word_list": "Array of ranked hot search items with position, word, hot_value, sentence_id, group_id, label, video_count, event_time, word_type, and cover_url",
"active_time": "Timestamp string of when the hot list was last updated",
"trending_list": "Array of top trending carousel items with word, sentence_id, group_id, video_count, event_time, label, word_type, and cover_url"
},
"sample": {
"data": {
"word_list": [
{
"word": "Hot search term example",
"label": 3,
"group_id": "7675682096120173850",
"position": 1,
"cover_url": "https://p11-sign.douyinpic.com/tos-cn-p-0015/example~noop.jpeg",
"hot_value": 12139756,
"word_type": 1,
"event_time": 1787380718,
"sentence_id": "2619483",
"video_count": 3
}
],
"active_time": "2026-08-22 22:07:21",
"trending_list": [
{
"word": "Top trending topic example",
"label": 0,
"group_id": "7675576604420855049",
"cover_url": "https://p26-sign.douyinpic.com/tos-cn-p-0015/example~noop.jpeg",
"word_type": 3,
"event_time": 1787388622,
"sentence_id": "2619698",
"video_count": 5
}
]
},
"status": "success"
}
}About the Douyin API
What the API Returns
The get_hot_search endpoint requires no input parameters and returns two top-level arrays. word_list contains ranked hot search items — each entry includes word (the search term), hot_value (a numeric popularity score), position rank, video_count, event_time, word_type, label, sentence_id, and group_id. trending_list contains the carousel items Douyin surfaces at the top of its hot search interface, each including a cover_url image alongside the same core metadata fields.
Data Freshness and Timestamps
The response includes an active_time field — a timestamp string indicating when the hot list was last updated on Douyin's end. Because Douyin's trending rankings shift frequently throughout the day, polling this endpoint at regular intervals is the standard pattern for tracking rank changes over time. There is no date-range filtering; the endpoint always returns the current snapshot.
Field Notes
word_type and label fields allow downstream classification of entries — distinguishing, for example, between entertainment topics, news events, or hashtag-style terms. sentence_id and group_id are identifiers that can be used to correlate entries across multiple calls or link back to grouped content on Douyin. video_count reflects the number of videos associated with each trending term at the time the list was generated.
The Douyin API is a managed, monitored endpoint for douyin.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when douyin.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official douyin.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track daily rank changes for specific hot search terms using
hot_valueandpositionfields over time. - Build a Douyin trend dashboard that surfaces the top 5 carousel items from
trending_listwith theircover_urlimages. - Identify viral content opportunities by monitoring
video_countspikes for newly enteringword_listterms. - Classify trending topics by content type using the
word_typeandlabelfields for editorial or research segmentation. - Detect breaking news or events on Douyin by cross-referencing
event_timewith sudden rank movement inword_list. - Feed Douyin trending terms into a keyword research tool targeting Chinese-language social media audiences.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Douyin have an official developer API?+
What distinguishes `word_list` from `trending_list` in the response?+
word_list is the full ranked index of up to 50 hot search terms ordered by hot_value, covering a broad range of trending topics. trending_list is a smaller carousel (typically 5 items) representing the highest-priority trending entries, and uniquely includes a cover_url field with an associated image — the other fields overlap with word_list.Does the API cover historical trending data or trend timelines?+
get_hot_search endpoint returns a single current snapshot with an active_time timestamp; there is no built-in history or time-series retrieval. You can fork this API on Parse and revise it to store and query snapshots over time to build a historical dataset.Is data outside mainland China's Douyin covered — for example, TikTok global trends?+
How often does the hot search list change, and can I detect rank movement?+
active_time field tells you when the list was last refreshed. To track rank movement, store successive responses and diff the position and hot_value fields for each word across calls — the endpoint itself does not expose delta or velocity data directly.