TikTok trend research
Produce a dated, sample-aware view of what TikTok is surfacing for a topic,
hashtag, category, country, or period. Distinguish TikTok's different trend
surfaces: a recommended feed, Creative Center rankings, hashtag activity, and
Explore are not interchangeable measurements.
Setup and requests
Set CRAWLORA_API_KEY to a key from crawlora.net, then
run the helper bundled with this skill. It sends x-api-key to
https://api.crawlora.net/api/v1; keep the key in the environment. Read
reference/endpoints.md for exact parameters.
Set `CRAWLORA_API_KEY` in the environment before running the helper.
scripts/crawlora.sh /tiktok/creative-center/hashtags country_code=US period=7 | jq '.'
scripts/crawlora.sh /tiktok/creative-center/videos \
country_code=US period=7 sort_by=engagement organic_only=true | jq '.'
Inspect both HTTP success and the JSON envelope, including nested upstream
code values. A 2xx response with no usable data is not automatically a
successful trend observation.
Workflow
- Clarify the topic or hashtag, country, lookback period, surface, requested
sample size, and whether paid content should be excluded. Record retrieval
time because trend results change.
- Choose the matching surface:
/tiktok/trending for TikTok's current recommended feed; it has no
geography or historical-period control.
/tiktok/creative-center/hashtags for ranked hashtags by country and
period (7 or 30 days).
/tiktok/creative-center/videos for ranked videos by country and period,
sorted by views, engagement, or six_second_views; use
organic_only=true when the brief is organic-only.
/tiktok/search for keyword-matched videos when the brief starts from a
topic rather than a known hashtag.
/tiktok/search/hashtag to discover candidate hashtags, then
/tiktok/hashtag/{name} and /tiktok/hashtags to resolve a hashtag id and
inspect its listed videos.
/tiktok/category followed by /tiktok/explore/{id} for a category feed.
Do not describe an Explore feed as a global trend ranking.
- For a topic brief, use search/hashtag discovery first, then validate a
bounded set of returned video ids with
/tiktok/post/{id}. Use identifiers
returned by the API; do not invent ids from captions or display names.
- Compare countries or topics only when the surface, period, sort, and filters
match. Deduplicate by stable hashtag or video id and stop at the requested
bound or the returned pagination terminal state.
- Report the observed ranking/activity, source links or ids, filters, sample
size, and retrieval time. Separate the measured signal from explanations or
content recommendations.
Interpretation and limits
- Anonymous Creative Center access is partial: hashtag requests return at most
three records, while video requests return only page one (four videos), even
when the response reports a larger upstream total. Do not call that total
accessible coverage.
- Creative Center video availability is uneven. US, JP, ID, VN, and TH have
reliably returned populated samples; a valid empty result in another market
can be genuine upstream no-data. Do not retry it indefinitely or claim an
outage without corroboration.
engagement_rate and six_seconds_vtr are ratios, not percentages. Keep
period-scoped and lifetime fields separate. Counts and ranks are surface-
specific and do not establish reach across all TikTok.
- Hashtag
viewCount/videoCount and search results reflect TikTok's current
index. They are not a complete historical archive. A search match is not
proof that every returned video is about the intended brand or topic.
- Missing fields are unknown, not zero. A valid empty sample is an observation
to report with its filters, not a reason to fabricate a conclusion.
- Do not claim to have watched a video's hook, heard its audio, or judged its
visual format unless the environment actually exposed the media. Signed media
URLs may expire.
Reliability and output
Use bounded pagination. On 429, back off; retry one transient 5xx when
useful. Stop on 401/403 and report the access limitation. Preserve partial
results when enrichment fails, labeling which observations are missing.
Return a concise table or brief with surface, topic/hashtag, country, period,
rank or metric, source URL/id, retrieval time, and coverage caveats. Call
patterns “observed in this sample”; label forecasts, content ideas, and causal
claims as hypotheses.
1---2name: tiktok-trend-research3description: Build evidence-backed TikTok trend briefs from current feeds, Creative Center rankings, hashtag data, and Explore categories through Crawlora. Use for trend discovery, country/period comparisons, and topic or hashtag momentum; use tiktok-ad-research for paid-ad analysis.4---56# TikTok trend research78Produce a dated, sample-aware view of what TikTok is surfacing for a topic,9hashtag, category, country, or period. Distinguish TikTok's different trend10surfaces: a recommended feed, Creative Center rankings, hashtag activity, and11Explore are not interchangeable measurements.1213## Setup and requests1415Set `CRAWLORA_API_KEY` to a key from [crawlora.net](https://crawlora.net), then16run the helper bundled with this skill. It sends `x-api-key` to17`https://api.crawlora.net/api/v1`; keep the key in the environment. Read18[`reference/endpoints.md`](reference/endpoints.md) for exact parameters.1920```sh21Set `CRAWLORA_API_KEY` in the environment before running the helper.22scripts/crawlora.sh /tiktok/creative-center/hashtags country_code=US period=7 | jq '.'23scripts/crawlora.sh /tiktok/creative-center/videos \24 country_code=US period=7 sort_by=engagement organic_only=true | jq '.'25```2627Inspect both HTTP success and the JSON envelope, including nested upstream28`code` values. A `2xx` response with no usable data is not automatically a29successful trend observation.3031## Workflow32331. Clarify the topic or hashtag, country, lookback period, surface, requested34 sample size, and whether paid content should be excluded. Record retrieval35 time because trend results change.362. Choose the matching surface:37 - `/tiktok/trending` for TikTok's current recommended feed; it has no38 geography or historical-period control.39 - `/tiktok/creative-center/hashtags` for ranked hashtags by country and40 period (`7` or `30` days).41 - `/tiktok/creative-center/videos` for ranked videos by country and period,42 sorted by `views`, `engagement`, or `six_second_views`; use43 `organic_only=true` when the brief is organic-only.44 - `/tiktok/search` for keyword-matched videos when the brief starts from a45 topic rather than a known hashtag.46 - `/tiktok/search/hashtag` to discover candidate hashtags, then47 `/tiktok/hashtag/{name}` and `/tiktok/hashtags` to resolve a hashtag id and48 inspect its listed videos.49 - `/tiktok/category` followed by `/tiktok/explore/{id}` for a category feed.50 Do not describe an Explore feed as a global trend ranking.513. For a topic brief, use search/hashtag discovery first, then validate a52 bounded set of returned video ids with `/tiktok/post/{id}`. Use identifiers53 returned by the API; do not invent ids from captions or display names.544. Compare countries or topics only when the surface, period, sort, and filters55 match. Deduplicate by stable hashtag or video id and stop at the requested56 bound or the returned pagination terminal state.575. Report the observed ranking/activity, source links or ids, filters, sample58 size, and retrieval time. Separate the measured signal from explanations or59 content recommendations.6061## Interpretation and limits6263- Anonymous Creative Center access is partial: hashtag requests return at most64 three records, while video requests return only page one (four videos), even65 when the response reports a larger upstream total. Do not call that total66 accessible coverage.67- Creative Center video availability is uneven. US, JP, ID, VN, and TH have68 reliably returned populated samples; a valid empty result in another market69 can be genuine upstream no-data. Do not retry it indefinitely or claim an70 outage without corroboration.71- `engagement_rate` and `six_seconds_vtr` are ratios, not percentages. Keep72 period-scoped and lifetime fields separate. Counts and ranks are surface-73 specific and do not establish reach across all TikTok.74- Hashtag `viewCount`/`videoCount` and search results reflect TikTok's current75 index. They are not a complete historical archive. A search match is not76 proof that every returned video is about the intended brand or topic.77- Missing fields are unknown, not zero. A valid empty sample is an observation78 to report with its filters, not a reason to fabricate a conclusion.79- Do not claim to have watched a video's hook, heard its audio, or judged its80 visual format unless the environment actually exposed the media. Signed media81 URLs may expire.8283## Reliability and output8485Use bounded pagination. On `429`, back off; retry one transient `5xx` when86useful. Stop on `401`/`403` and report the access limitation. Preserve partial87results when enrichment fails, labeling which observations are missing.8889Return a concise table or brief with `surface`, topic/hashtag, country, period,90rank or metric, source URL/id, retrieval time, and coverage caveats. Call91patterns “observed in this sample”; label forecasts, content ideas, and causal92claims as hypotheses.