TikTok API: List trending hashtags
Lists publicly visible TikTok Creative Center trending hashtags by country, time period and industry. Anonymous visitors see at most three rows; rank change and new-entry status are not public and come back null.
Unofficial. Not affiliated with or endorsed by TikTok.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Period optional
period Trend period, for example last_7_days. The site offers 7 and 30 days; 120 days is refused.
last_7_days
One of
last_7_days,last_30_days,last_120_days. Defaultlast_7_days.- Country optional
country Country name or two-letter code, for example United States or FR.
United States
Default
United States.- Industry optional
industry Industry name, for example Beauty and Personal Care or Food and Beverage; use all for every industry.
all
Default
all.- Max Results optional
max_results Most hashtags to return, for example 20. Anonymous access currently shows at most three.
20
Whole number from 1 to 100. Default
20.
Input as JSON
{ "period": "last_7_days", "country": "United States", "industry": "all", "max_results": 20}Output
{ "hashtags": [ { "rank": 1, "views": 312182870, "hashtag": "#tiktokscaryhorrorcontest", "new_entry": null, "posts_count": 73462, "rank_change": null, "hashtag_page_link": "https://ads.tiktok.com/creative/creativeCenter/trends/hashtag/7691443554018656263?region=US&period=7" }, { "rank": 2, "views": 24120743, "hashtag": "#marvelrivalsavengers", "new_entry": null, "posts_count": 110088, "rank_change": null, "hashtag_page_link": "https://ads.tiktok.com/creative/creativeCenter/trends/hashtag/7462773581512966150?region=US&period=7" }, { "rank": 3, "views": 30155625, "hashtag": "#livecanbeeasy", "new_entry": null, "posts_count": 21285, "rank_change": null, "hashtag_page_link": "https://ads.tiktok.com/creative/creativeCenter/trends/hashtag/7534678037321744414?region=US&period=7" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"ads.tiktok.com/list_trending_hashtags","input":{"period":"last_7_days","country":"United States","industry":"all","max_results":20}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "ads.tiktok.com/list_trending_hashtags" , "input": { "period": "last_7_days", "country": "United States", "industry": "all", "max_results": 20 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "ads.tiktok.com/list_trending_hashtags" , "input": { "period": "last_7_days", "country": "United States", "industry": "all", "max_results": 20 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run ads.tiktok.com/list_trending_hashtags# with {"period":"last_7_days","country":"United States","industry":"all","max_results":20}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "properties": { "period": { "enum": [ "last_7_days", "last_30_days", "last_120_days" ], "type": "string", "default": "last_7_days", "description": "Trend period, for example last_7_days. The site offers 7 and 30 days; 120 days is refused." }, "country": { "type": "string", "default": "United States", "description": "Country name or two-letter code, for example United States or FR." }, "industry": { "type": "string", "default": "all", "description": "Industry name, for example Beauty and Personal Care or Food and Beverage; use all for every industry." }, "max_results": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Most hashtags to return, for example 20. Anonymous access currently shows at most three." } }}Output schema
{ "type": "object", "required": [ "hashtags" ], "properties": { "hashtags": { "type": "array", "items": { "type": "object", "required": [ "rank", "hashtag", "posts_count", "views", "rank_change", "new_entry", "hashtag_page_link" ], "properties": { "rank": { "type": "integer", "description": "Public list position." }, "views": { "type": [ "integer", "null" ], "description": "Views for the selected period." }, "hashtag": { "type": "string", "description": "Hashtag with #." }, "new_entry": { "type": [ "boolean", "null" ], "description": "Whether this is a new entry; unavailable to anonymous visitors." }, "posts_count": { "type": [ "integer", "null" ], "description": "Posts for the selected period." }, "rank_change": { "type": [ "integer", "null" ], "description": "Change in rank compared with the previous period; unavailable to anonymous visitors." }, "hashtag_page_link": { "type": "string", "description": "TikTok Creative Center hashtag page link." } }, "additionalProperties": false } } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
ads.tiktok.com/list_trending_hashtags- Returns
- rank, hashtag, posts count, views, hashtag page link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method ads.tiktok.com/list_trending_hashtags with the inputs above.
Ask your agent
- What hashtags are trending in the United States over the last 7 days?
- Show me the top 10 trending TikTok hashtags in France for the past 30 days in Beauty and Personal Care.
- Which hashtags are rising in Japan in the last 7 days under Food and Beverage?
- List the most viewed trending hashtags across all industries in Brazil for last_30_days, with post counts.
- Give me the top 25 trending hashtags in Germany over the past week on tiktok.com, including their hashtag page links.
See more
All TikTok methodsGets details and engagement statistics for one public TikTok video from its link, including vm.tiktok.com short links: creator, caption, hashtags, posting time, views, likes, comments, shares, length and sound.
tiktok.com/get_videoGets a TikTok creator's public profile and totals (followers, following, likes, videos) from a username, @handle or profile link. Profiles not visible to public visitors cannot be returned.
tiktok.com/get_profileLists Google Trends 'Trending now' searches for a country, time window and category, in Google's order. Each search comes with its volume, activity, related searches and news headlines.
trends.google.com/list_trending_searchesLists TMDB homepage trending titles for today or this week in displayed order, with year, user score, overview and poster. The homepage shows up to 20 mixed movie and TV titles per period; the movie and TV filters select from those.
themoviedb.org/list_trendingLists Hugging Face models in trending order this week, optionally filtered to one task. Downloads cover the last 30 days.
huggingface.co/list_trending_modelsLists up to 25 public repositories trending on GitHub, in page order, optionally filtered by programming language and time period.
github.com/list_trending_repositoriesLists the latest public posts for a hashtag on a Mastodon server, newest first. Some servers require login for public timelines.
mastodon.social/list_hashtag_postsLists Twitch games and categories ranked by current live viewers, with content tags, box art and category links.
twitch.tv/list_top_categories