Douyin Billboard topic hot API
API health
- 24h health
- Normal
- 24h average time
- —
- Healthy / normal
- Available
- Limited
- Mostly down
Last 24 hours
Last 30 days
See which Douyin hashtags are heating up, from the hashtag board in Hot Spot Treasure, over the last hour, day, 3 days or 7 days. Each hashtag has its rank, numeric ID for hashtag_detail, name, heat, all-time views and works, average views per work, cover and up to 14 days of daily heat. 50 per page; page on with next_page_token.
Price $0.81 per 1,000 requests ($0.000806 per call). Failed calls and empty results are not charged. Synchronous. For slow jobs add "mode": "async" to the body, take the job_id and poll.
AI prompt
Please help me write a data collection script with the EveryInfra Douyin Billboard topic hot endpoint (douyin/billboard_topic_hot).
How the endpoint works:
- Request: POST https://api.everyinfra.com/api/v1/social with the header Authorization: Bearer <API key>. Read the key from the EVERYINFRA_API_KEY environment variable and never hard-code it.
- In the request body, set platform to douyin and action to billboard_topic_hot, and put the parameters inside params.
- No required parameters.
- Optional parameters:
- keyword: Optional: keep only hashtags whose names contain this word, such as food; leave it out for the whole hashtag board.
- page_token: Page token. Leave it out for the first page (the top 50 hashtags), then pass back the previous response's next_page_token exactly as received, with the other parameters unchanged.
- time_window: Time window for the hashtag heat: 1h, 1d (default), 3d or 7d. (allowed: 1d / 1h / 3d / 7d)
- Returns a list of records. Main fields of each record: rank (Position from 1: the trending rank on t…), hashtag_id (Hashtag ID (a digit string)), hashtag_name (Hashtag name, without the #), hot_value (Heat value, Douyin's own measure, compa…), total_view_count (All-time views of the hashtag since it…), total_video_count (All-time count of works under the hasht…), average_view_count (Average plays of the works under the ha…), cover_image_url (Video or image-post cover thumbnail URL…), created_at, daily_trend (Daily heat of the hashtag (billboard_to…), next_page_token (Page token (search / user_posts / comme…).
- Example request body:
{
"platform": "douyin",
"action": "billboard_topic_hot",
"params": {}
}
- Price: $0.81 per 1,000 requests; failed and empty results are not charged.
- For dozens or hundreds of targets, add "mode": "async" to the body: you get a job_id at once and poll GET https://api.everyinfra.com/api/v1/jobs/{job_id} for the result.
- On 422, fix the request using the suggested parameter names and allowed values in the error; on 429 or 503, wait for Retry-After and try again.
Before writing code, ask me which targets I need, how many, which fields, and what output format I want; then confirm the plan and the rough cost with me.Request parameters
| Name | In | Type | Required | Default | Description |
|---|---|---|---|---|---|
Authorization | header | string | Yes | - | Bearer followed by your API key. Create it in the console; never put it in a URL or a code repository. |
platform | body | string | Yes | douyin | Platform identifier, fixed value. |
action | body | string | Yes | billboard_topic_hot | Capability identifier, fixed value. |
keyword | body.params | string | No | - | Optional: keep only hashtags whose names contain this word, such as food; leave it out for the whole hashtag board. |
page_token | body.params | string | No | - | Page token. Leave it out for the first page (the top 50 hashtags), then pass back the previous response's next_page_token exactly as received, with the other parameters unchanged. Each page holds up to 50 hashtags and is one call; tokens last 24 hours, and the last page has no next_page_token (about 1,000 hashtags per board at most). |
time_window | body.params | string (enum) | No | - | Time window for the hashtag heat: 1h, 1d (default), 3d or 7d.Allowed values1d1h3d7d |
Code samples
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
-H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H 'Content-Type: application/json' \
--data-raw '{
"platform": "douyin",
"action": "billboard_topic_hot",
"params": {}
}'OpenAPI definition (JSON)Samples read the key from the EVERYINFRA_API_KEY environment variable; copied code never contains your key.
Response example
No sample response is available for these parameters yet. This preview shows the response shape and fields from the API definition, with … as placeholders; it is not the result of a live call.
{
"id": "req_…",
"platform": "douyin",
"action": "billboard_topic_hot",
"results": [
{
"rank": …,
"hashtag_id": …,
"hashtag_name": …,
"hot_value": …,
"total_view_count": …,
"total_video_count": …,
"average_view_count": …,
"cover_image_url": …,
"created_at": …,
"daily_trend": …,
"next_page_token": …,
"platform": …
}
],
"next_page_token": …,
"pagination": { … },
"count": …,
"billing": {
"charged": …,
"charged_usd": …,
"balance_after_usd": …,
…
},
"quota": { … }
}Response fields
Business data is in results. The table lists the fields a record can contain; values the platform does not show are never made up.
| Field | Meaning |
|---|---|
rank | Position from 1: the trending rank on trending, the position on the Xingtu board on xingtu_creator_rankings, the position on the search board on billboard_search_hot, and the suggestion's place in Douyin's search box on search_suggest. |
hashtag_id | Hashtag ID (a digit string); pass it as hashtag_id to hashtag_detail. |
hashtag_name | Hashtag name, without the #. |
hot_value | Heat value, Douyin's own measure, comparable only within one board and window: on trending, the heat of the entry (often empty on the hotspot board); on the Hot Spot Treasure video boards, the board's heat score, rows ordered highest first; on billboard_search_hot, the term's search heat in the window. |
total_view_count | All-time views of the hashtag since it was created (hashtag_detail), as counted by the platform. |
total_video_count | All-time count of works under the hashtag (billboard_topic_hot). |
average_view_count | Average plays of the works under the hashtag (billboard_topic_hot). |
cover_image_url | Video or image-post cover thumbnail URL (search / user_posts rows). |
created_at | Creation time, same format as posted_at. |
daily_trend | Daily heat of the hashtag (billboard_topic_hot) as [{date (YYYY-MM-DD, China date), value}], oldest first, up to 14 days. |
next_page_token | Page token (search / user_posts / comments / comment_replies / billboard_video_hot / billboard_low_fan_explosion / billboard_high_completion / billboard_account_search / music_search): pass it back unchanged as page_token to fetch the next page, keeping the other parameters the same; valid for 24 hours. Every row of a page carries the same value, which also appears at the top level of the response. Absent on the last page. Comment pages walk all top-level comments page by page. |
platform | Source platform identifier, the same as platform in the request (for example xiaohongshu, tiktok). |
Errors and billing
- 401
- Missing or invalid key.
- 402
- Insufficient balance. Top up first.
- 422
- Invalid parameter name or value. Fix it using the suggestions in the error. No charge.
- 429
- Per-minute request limit reached. Wait for Retry-After, then try again.
- 503
- Could not complete. The held charge is returned to your balance. If the outcome is unknown, verify it before you retry.
- 200 empty
- No data. No charge.