Douyin analytics Category insight API
Category insight (keywords, topics, trends) from Douyin analytics, returned as JSON rows you can save to CSV.
Douyin category insight (categoryInsight)
One record per category and last full week: hotKeywords (50), hotTopics (50), publishTrend, interactionTrend, supplyTrend, consumptionTrend (daily {date, rate}) and durationBreakdown (content share, interaction rate and completion rate per video length). Categories are slugs such as food, travel, tech; the full list is in the input field.
The input that produced this run
Mode categoryInsight. Parameters as sent, with what each one does.
| Parameter | Value | What it does |
|---|---|---|
mode | "categoryInsight" | What to fetch: an analysis record per account, video, creator, keyword or content category; or rows of similar creators, related words, suggestions, hot topics, videos and trend reports, and the creator center's... |
categories | ["food"] | Content categories, one record per category for the last full week (Monday to Sunday). Empty means food. One of: drama, celebrity, variety, movies, tv-series, music, anime, games, society, public-welfare, casual-shots,... |
maxResults | 1 | Maximum number of records or rows to return in total for this run. You are charged per record or row returned. |
12 fields in every categoryInsight
From the first record of the run above. Identity fields of ordinary users are masked on this site.
| Field | Type | Example |
|---|---|---|
type | str | categoryInsight |
category | str | food |
categoryId | str | 628 |
startDate | str | 2026-11-02 |
endDate | str | 2026-11-08 |
hotKeywords | list | [] |
hotTopics | list | [] |
publishTrend | dict | {"creators": [{"date": "2026-11-02", "rate": 56.5093}, {"dat |
interactionTrend | list | [{"date": "2026-11-02", "rate": 0.022157897834703018}, {"dat |
supplyTrend | list | [{"date": "2026-11-02", "rate": 0.032249289937153564}, {"dat |
consumptionTrend | list | [{"date": "2026-11-02", "rate": 0.05507944222466253}, {"date |
durationBreakdown | list | [] |
A real run, 12 fields per record
Run on 2026-11-09 with input {"mode": "categoryInsight", "categories": ["food"], "maxResults": 1}. Personal fields of ordinary users are masked here.
| category | startDate | endDate |
|---|---|---|
| food | 2026-11-02 | 2026-11-08 |
All 12 fields in one record
typecategoryInsightcategoryfoodcategoryId628startDate2026-11-02endDate2026-11-08hotKeywordshotTopicspublishTrendinteractionTrendsupplyTrendconsumptionTrenddurationBreakdown
Good to know before you run it
- Weekly figures (
relatedWords,categoryInsight) cover the last full Monday-to-Sunday week.
What one categoryInsight costs
Run start · $0.00005 · Once per run, when the first request succeeds, even if that request returns nothing. These modes pay several at that moment: accountInsight 3, keywordSuggestions 3, videoInsight 2, categoryInsight 2. Not charged when the run fails from the start or rejects the inputs, or when your spending limit cannot cover it. In creatorCompare, reportDetail and reportRecommendations every input after the first one needs a request of its own, so it is charged one more run start before it is looked up
Run this request yourself
The same input as above, three ways.