FETCHAPI

List trending TikTok ads by country and period API

One call returns up to 20 trending TikTok ads filtered by country, language, and period. Each item is an ad with brand name, video details, and performance metrics like CTR and likes. The answer shows 20 items per page; get the next page by incrementing the `page` parameter.

2 live routes on TikTok, from $0.00002 per call. Every route below answered our last live test on 2026-10-06; the gateway re-tests them daily.

Get a keySee it in the catalogUse it from MCP

Price per call, by route

The upstream price you are metered at, cheapest first. A route without a published price says so.

ProviderEndpointPriceTested
tiktok-scraper7RapidAPI listing
Get Top AdsCHEAPESTGET ads/top/ads$0.00002$0.02 / 1k calls✓ 2026-10-06pricing ↗
tiktok-api23RapidAPI listing
Get Top AdsGET api/trending/ads$0.00005$0.05 / 1k calls✓ 2026-10-06pricing ↗

What it returns

From a real call to the cheapest route: tiktok-scraper7.

One call returns up to 20 trending TikTok ads filtered by country, language, and period. Each item is an ad with brand name, video details, and performance metrics like CTR and likes. The answer shows 20 items per page; get the next page by incrementing the `page` parameter.
data.materials[].idAd IDdata.materials[].brand_nameBrand running the addata.materials[].ad_titleAd text/captiondata.materials[].video_info.coverAd thumbnail URLdata.materials[].video_info.video_urlAd video URLs by resolutiondata.materials[].ctrClick-through ratedata.materials[].likeLike countdata.materials[].costEstimated costdata.pagination.pageCurrent page numberdata.pagination.has_moreWhether more pages exist

Call it

HTTP with your key in x-api-key, or the call_endpoint tool of our MCP server.

GET /api/gw/rapidapi-tiktok-scraper7/ads/top/ads$0.00002 / call✓ working · tested 2026-10-060.44 s latency
Parameters
ParameterTypeNotes
limitnumber · queryoptionaldefault 20
industrystring · queryoptionalComma-separated (e.g. 28000000000,24000000000) Industry Codes : [Click](https://tikwmapi.com/docs/json/top_ads_industry.json)
objectivestring · queryoptionalComma-separated (e.g. 1,2) 1: Traffic 2: App installs 3: Conversions 4: Video views 5: Reach 8: Lead generation 15: Product sales
ad_languagestring · queryoptionalComma-separated (e.g. en,vi) 'en', 'es', 'ar', 'vi', 'th', 'de', 'id', 'pt', 'fr', 'ms', 'nl', 'ja', 'it', 'ro', 'zh-Hant', 'ko' · default en,de
ad_formatstring · queryoptional1: Spark Ads 2: Non-spark Ads · default 1
keywordstring · queryoptionalsearch keyword
periodstring · queryoptional7: Last 7 days 30: Last 30 days 180: Last 180 days · default 30
country_codestring · queryoptionalComma-separated (e.g. US,CA) 'DZ', 'AR', 'AU', 'AT', 'AZ', 'BH', 'BD', 'BY', 'BE', 'BO', 'BR', 'BG', 'KH', 'CA', 'CL', 'CO', 'CR', 'HR', 'CY', 'CZ', 'DK', 'DO', 'EC', 'EG', 'EE', 'FI', 'FR', 'DE', 'GR', 'GT', 'JO', 'HU', 'ID', 'IQ', 'IE', 'IL', 'IT', 'JP', 'KZ', 'KE', 'KW', 'LV', 'LB', 'MY', 'MX', 'MA', 'NL', 'NZ', 'NG', 'NO', 'OM', 'PK', 'PA', 'PY', 'PE', 'PH', 'PL', 'PT', 'PR', 'QA', 'LT', 'RO', 'SA', 'RS', 'SG', 'SK', 'SI', 'ZA', 'KR', 'ES', 'LK', 'SE', 'CH', 'TW', 'TH', 'TR', 'AE', 'GB', 'US', 'UY', 'VN' · default US,DE
order_bystring · queryoptionalimpression: Reach ctr: CTR like: Like cvr: CRV play_6s_rate: 6s view rate play_2s_rate: 2s view rate · default impression
likestring · queryoptional1: Top 1~20% 2: Top 21~40% 3: Top 41~60% 4: Top 61~80% 5: Top 81~100%
pagenumber · queryrequireddefault 1
HTTP
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-scraper7/ads/top/ads?page=1&limit=20&period=30&order_by=impression&ad_format=1&ad_language=en,de&country_code=US,DE" \
  -H "x-api-key: YOUR_KEY"
MCP
call_endpoint("rapidapi-tiktok-scraper7.get_top_ads", {"page": "1", "limit": "20", "period": "30", "order_by": "impression", "ad_format": "1", "ad_language": "en,de", "country_code": "US,DE"})
Real example answer (trimmed) · 2026-10-03
{
  "msg": "success",
  "code": 0,
  "data": {
    "materials": [
      {
        "id": "7673308566858088449",
        "ctr": 0.36,
        "cost": 2,
        "like": 54954,
        "ad_title": "🌙 Woke up like this at 56. No injectables, just one jar. The new @lorealparis Triple Power Rich Night Moisturizer takes the night shift so I don't have to do te…",
        "favorite": false,
        "is_search": true,
        "brand_name": "l'oreal paris",
        "video_info": {
          "vid": "v12044gd0000d9uh1p7og65vbai0osr0",
          "cover": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-37c799-sg/o0XxfADf2EhHRFjQUWckDCkIAIK9CqEI1jfREM~tplv-noop.image?dr=18692&refresh_token=744ebae7&x-expires=179…",
          "width": 720,
          "height": 1280,
          "duration": 43.234,
          "video_url": {
            "720p": "https://v16m-default.tiktokcdn.com/fbd9b48126309bf4502a7bcf652b261d/6ac1b1cf/video/tos/alisg/tos-alisg-ve-37c799-sg/owWUj0DQHAZfQjuiAIF2fEkDkfqcMSREHICh9E/?a=0&…"
          }
        },
        "industry_key": "label_14109000000",
        "objective_key": "campaign_objective_video_view"
      },
      {
        "id": "7680863927458562066",
        "ctr": 0.45,
        "cost": 2,
        "like": 4246,
        "ad_title": "It’s still summer: 30% off",
        "favorite": false,
        "is_search": true,
        "brand_name": "hesperia",
        "video_info": {
          "vid": "v14033g50000dabunhnog65necegk2b0",
          "cover": "https://p16-common-sign.tiktokcdn.com/tos-useast2a-p-0051c799-euttp/ogFv8JuVLAVUDEGCEujeeb6CoaXfQdoaG5sAID~tplv-noop.image?dr=18692&refresh_token=8431a810&x-exp…",
          "width": 720,
          "height": 1280,
          "duration": 15.019,
          "video_url": {
            "360p": "https://v16m-default.tiktokcdn.com/75879733eb46d4fba5f2ec98247cb1dc/6ac1b1b3/video/tos/useast2a/tos-useast2a-ve-0051c799-euttp/oMVvbeyGVQgDGJDq0CLFHskEIIDgyeA1h…",
            "480p": "https://v16m-default.tiktokcdn.com/6e0426e91c649dc0d5ee873b87770649/6ac1b1b3/video/tos/useast2a/tos-useast2a-ve-0051c799-euttp/okHvyIAIEhDALgeFeMCikV0kqEyDbGgrQ…",
            "540p": "https://v16m-default.tiktokcdn.com/38049f40aa3a113f9aceda8dfb5b1c7a/6ac1b1b3/video/tos/useast2a/tos-useast2a-ve-0051c799-euttp/oIqXNf5DqIQDDIB16BliUWSiEEBQZCAaQ…",
            "720p": "https://v16m-default.tiktokcdn.com/5d57f2ce84a64120d5470251534cbd0c/6ac1b1b3/video/tos/useast2a/tos-useast2a-ve-0051c799-euttp/ooCebuMpLy98JifjfKnIgCDQAJrWAGVVD…",
            "1080p": "https://v16m-default.tiktokcdn.com/312e2cfd68cd68cd089e639e6b439c1d/6ac1b1b3/video/tos/useast2a/tos-useast2a-ve-0051c799-euttp/ocDDamilqIBUQ1QAS52gfRiZqXEcNmEBQ…"
          }
        },
        "industry_key": "label_17103000000",
        "objective_key": "campaign_objective_conversion"
      },
      "… 2 more"
    ],
    "pagination": {
      "page": 1,
      "size": 20,
      "has_more": true,
      "total_count": 152
    }
  },
  "processed_time": 0.4052
}
Other routes for this job
tiktok-api23 · Get Top Ads$0.00005
GET /api/gw/rapidapi-tiktok-api23/api/trending/ads$0.00005 / call✓ working · tested 2026-10-060.49 s latency
Parameters
ParameterTypeNotes
keywordstring · queryoptionalSearch ads keyword
ad_formatstring · queryoptional- `1`: spark ads - `2`: non-spark ads
order_bystring · queryoptional- `impression` (reach) - `ctr` (CTR) - `like` (like) - `cvr` (CVR) - `play_6s_rate` (6s view rate) - `play_2s_rate` (2s view rate) · default ctr
periodnumber · queryoptionalEnum: `7` | `30` | `180` · default 7
likestring · queryoptional- `1`: Top 1~20% - `2`: Top 21~40% - `3`: Top 41~60% - `4`: Top 61~80% - `5`: Top 81~100%
limitnumber · queryoptionalMax = `20` · default 20
objectivestring · queryoptional- `1`: Traffic - `2`: App installs - `3`: Conversions - `4`: Video views - `5`: Reach - `6`: Lead generation - `7`: Product sales
countrystring · queryoptionalCountry code. Head [here](https://gist.githubusercontent.com/apiboxguru/21d1cff1bef7732d9533389cb540541f/raw/6669d1e0025b67e8c7a0a1649cd8c75c5d5d2803/tiktok_trending_support_countries_with_codes.json) for a full list of supported countries · default US
ad_languagestring · queryoptionalAds language. Supported language: `en` | `es` | `ar` | `vi` | `th` | `de` | `id` | `pt` | `fr` | `ms` | `nl` | `ja` | `it` | `ro` | `zh-Hant` | `ko`. You can use one or more languages: For example: `en, es`
industrystring · queryoptionalHead to [here](https://gist.githubusercontent.com/apiboxguru/d36908ea2bbe307e81bcc09ccf59616b/raw/302b5a442df9a6efced1dc430fd64d10a8226aeb/tiktok-ads-industry-code.json) for a full list of Industry code. You can combine multiple industries by using a comma. For example: `22102000000,22101000000`
pagenumber · queryoptionaldefault 1
HTTP
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/trending/ads?page=1&limit=20&period=7&country=US&order_by=ctr" \
  -H "x-api-key: YOUR_KEY"
MCP
call_endpoint("rapidapi-tiktok-api23.get_top_ads", {"page": "1", "limit": "20", "period": "7", "country": "US", "order_by": "ctr"})

Related TikTok APIs

All 43 TikTok jobs →

One key for every API on this page.

Call it over HTTP or from any MCP client. Each key has a rate limit and a monthly cap; calls are metered at the upstream price.