# TikTok Creative Center API

> TikTok Creative Center returns trending hashtag data as a workflow and API.

TikTok Creative Center, also called TikTok Trends, lists trending hashtags by country, period, and industry. It takes a country, trend period, industry, and maximum result count; anonymous visitors see at most three rows.

- Page: https://fous.com/workflows/tiktok-creative-center
- Handle: `@tiktok-creative-center`
- Category: [Marketing](https://fous.com/workflows/category/marketing)
- Source website: https://ads.tiktok.com/creative/creativeCenter/trends
- Last verified: Sep 29, 2026
- Fous is not affiliated with TikTok Creative Center.

## Methods

### List trending hashtags

Operation `list_trending_hashtags`, version 1. 1 credit per call.

List publicly visible TikTok Creative Center trending hashtags by country, time period, and industry. Anonymous visitors can see at most three rows; rank movement and new-entry status are not public and are null. The site offers 7 and 30 days but not the requested 120 days, which returns an explanation.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `period` | string | no | `"last_7_days"` | Trend period, for example last_7_days. The site no longer offers 120 days. |
| `country` | string | no | `"United States"` | Country name or two-letter code, for example United States or FR. |
| `industry` | string | no | `"all"` | Industry name, for example Beauty and Personal Care or Food and Beverage; use all for every industry. |
| `max_results` | integer | no | `20` | Most hashtags to return, for example 20. Anonymous access currently shows at most three. |

**Input schema**

```json
{
  "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 no longer offers 120 days.",
      "examples": [
        "last_7_days",
        "last_30_days"
      ]
    },
    "country": {
      "type": "string",
      "default": "United States",
      "description": "Country name or two-letter code, for example United States or FR.",
      "examples": [
        "United States",
        "France",
        "US"
      ]
    },
    "industry": {
      "type": "string",
      "default": "all",
      "description": "Industry name, for example Beauty and Personal Care or Food and Beverage; use all for every industry.",
      "examples": [
        "all",
        "Food and Beverage",
        "Beauty and Personal Care"
      ]
    },
    "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.",
      "x-fous-developer": true,
      "examples": [
        20,
        10,
        2
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "period": "last_7_days",
      "country": "United States",
      "industry": "all",
      "max_results": 20
    },
    {
      "period": "last_30_days",
      "country": "France",
      "industry": "Food and Beverage",
      "max_results": 10
    },
    {
      "period": "last_7_days",
      "country": "US",
      "industry": "Beauty and Personal Care",
      "max_results": 2
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `hashtags` | array |  |  |
| `hashtags[].rank` | integer | `1` | Public list position. |
| `hashtags[].views` | integer or null | `516063071` | Views for the selected period. |
| `hashtags[].hashtag` | string | `"#citytastetest"` | Hashtag with #. |
| `hashtags[].new_entry` | boolean or null |  | Whether this is a new entry; unavailable to anonymous visitors. |
| `hashtags[].posts_count` | integer or null | `663785` | Posts for the selected period. |
| `hashtags[].rank_change` | integer or null |  | Change in rank compared with the previous period; unavailable to anonymous visitors. |
| `hashtags[].hashtag_page_link` | string | `"https://ads.tiktok.com/creative/creativeCenter/trends/hashtag/7675592944980033556?region=US&period=7"` | TikTok Creative Center hashtag page link. |

**Example input**

```json
{
  "period": "last_7_days",
  "country": "United States",
  "industry": "all",
  "max_results": 20
}
```

**Example output**

```json
{
  "hashtags": [
    {
      "rank": 1,
      "views": 516063071,
      "hashtag": "#citytastetest",
      "new_entry": null,
      "posts_count": 663785,
      "rank_change": null,
      "hashtag_page_link": "https://ads.tiktok.com/creative/creativeCenter/trends/hashtag/7675592944980033556?region=US&period=7"
    },
    {
      "rank": 2,
      "views": 39782456,
      "hashtag": "#authentik",
      "new_entry": null,
      "posts_count": 65655,
      "rank_change": null,
      "hashtag_page_link": "https://ads.tiktok.com/creative/creativeCenter/trends/hashtag/14718761?region=US&period=7"
    },
    {
      "rank": 3,
      "views": 42023330,
      "hashtag": "#mylivejourney",
      "new_entry": null,
      "posts_count": 32679,
      "rank_change": null,
      "hashtag_page_link": "https://ads.tiktok.com/creative/creativeCenter/trends/hashtag/1663300444413953?region=US&period=7"
    }
  ]
}
```

## Quick start

Call the API with a Fous API key (`FOUS_API_KEY`). To create one, turn on Developer mode in Fous Studio, then open Keys & connections → API keys (https://app.fous.com/keys).

```bash
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
: "${FOUS_API_KEY:?Set FOUS_API_KEY before running this example}"

curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 120 \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@tiktok-creative-center",
  "visibility": "public",
  "operation": "list_trending_hashtags",
  "version": 1,
  "input": {
    "period": "last_7_days",
    "country": "United States",
    "industry": "all",
    "max_results": 20
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
import json
import os
import urllib.error
import urllib.request

api_key = os.environ.get("FOUS_API_KEY")
if not api_key:
    raise RuntimeError("Set FOUS_API_KEY before running this example")

body = json.loads("{\n  \"api\": \"@tiktok-creative-center\",\n  \"visibility\": \"public\",\n  \"operation\": \"list_trending_hashtags\",\n  \"version\": 1,\n  \"input\": {\n    \"period\": \"last_7_days\",\n    \"country\": \"United States\",\n    \"industry\": \"all\",\n    \"max_results\": 20\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=120) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
// First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
const apiKey = process.env.FOUS_API_KEY;
if (!apiKey) throw new Error("Set FOUS_API_KEY before running this example");

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(120_000),
  body: JSON.stringify({
  "api": "@tiktok-creative-center",
  "visibility": "public",
  "operation": "list_trending_hashtags",
  "version": 1,
  "input": {
    "period": "last_7_days",
    "country": "United States",
    "industry": "all",
    "max_results": 20
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

Or describe the data in plain language: send `{"api":"@tiktok-creative-center","prompt":"Describe the data you need, with every detail"}` to the same URL. Fous fills in the input, runs the method that fits and returns only the fields you asked for; `data.route.calls[].request` is the exact call it made. Routing is free; the run costs the same.

## Use cases

- Compare hashtag views across countries and periods
- Find popular hashtags in a specific industry
- Track hashtag post counts over a selected period
- Review public hashtag rankings

## FAQ

### Is Fous affiliated with TikTok Creative Center?

No. Fous is not affiliated with TikTok Creative Center. This workflow reads the public ads.tiktok.com website and returns its data.

### How much does it cost?

Each run costs 1 credit. With pay-as-you-go, a credit costs 1¢; monthly plans cost less per credit.

### Do I need a TikTok Creative Center account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from ads.tiktok.com when you run it; repeating the same request within a day may return the saved result. Fous checks this workflow automatically; it last passed a check on Sep 29, 2026.

### Which hashtags are trending in a country and industry?

List trending hashtags returns publicly visible hashtags for a selected country, period, and industry.

### How many views did a trending hashtag get?

List trending hashtags returns views for each hashtag over the selected period.

### How many posts used each trending hashtag?

List trending hashtags returns post counts for each hashtag over the selected period.

## Related

- [Google Trends API](https://fous.com/workflows/google-trends.md): Google Trends compares relative search interest over time and by region, shows related searches and current trends, with daily peaks for seven-day views.
- [TikTok API](https://fous.com/workflows/tiktok.md): TikTok returns public profiles and totals, recent pinned-first videos, and public video details and engagement; private content unavailable, and feeds may be incomplete or empty.
- [Twitch API](https://fous.com/workflows/twitch.md): Twitch returns channel profiles, live status, up to 10 broadcasts, top streams, viewer-ranked categories, up to 100 public videos/clips, and 1–30-day schedules; counts change.
- [Google Ads Transparency Center API](https://fous.com/workflows/google-ads-transparency-center.md): Explore public ads shown across Google services and sites.
- [Mastodon API](https://fous.com/workflows/mastodon.md): Mastodon provides public profiles and recent public posts, including hashtag posts, but excludes private and unlisted posts and may limit visibility to accounts known to mastodon.social or a selected server.
- [Hugging Face API](https://fous.com/workflows/hugging-face.md): Hugging Face returns public model, dataset, and demo search results, model details, or weekly trending models; unpublished information may be missing, and demo availability can change.
- [CoinGecko API](https://fous.com/workflows/coingecko.md): CoinGecko returns cryptocurrency prices and histories, sector rankings and details, and trending coins; non-USD historical values cover 365 days, histories 7–365 days, and today’s prices may change.
- [Spotify API](https://fous.com/workflows/spotify.md): Spotify returns public artist profiles, album credits and ordered tracks, song details and play counts, up to 500 playlist songs, keyword results, and country-based podcast charts; dates and regional options vary.
- [All Marketing workflows](https://fous.com/workflows/category/marketing)
