Nimbryxo Studio

Use TikTok Top Ads Leaderboard - 122 Markets & Metrics with Python

Collect TikTok Creative Center Top Ads across 122 markets with 258 industries, 7 rankings, landing pages, retention curves, and Spotlight. No login or cookies; sweeps past TikTok's 20-ad board up to 500 unique ads.

1. Choose the data you need

Review the published README for supported collection modes, examples, and limits. The recipe below uses the current published input definition.

2. Prepare a source-based input

This JSON contains published prefills and required-field defaults. Review every value for your task before running it; it is not a promise of successful collection.

{
  "adFormat": "",
  "adIds": [],
  "country": "US",
  "includeDetails": false,
  "includeKeyframes": false,
  "industry": "",
  "language": "",
  "likeTier": "",
  "maxItems": 3,
  "mode": "leaderboard",
  "objective": "",
  "orderBy": "for_you",
  "period": "30",
  "sweep": false
}

Download input.example.json and save your reviewed copy as input.json.

FieldTypeRequiredDescription
modestringrequiredChoose the Top Ads leaderboard, TikTok's handpicked Spotlight, or refresh specific ad IDs.
countrystringoptional122 supported markets. All countries reads multiple market boards and merges the results; it uses more requests.
periodstringoptionalThe trailing window TikTok ranks over.
industrystringoptionalTikTok's industry taxonomy. Child categories are shown under their parent.
objectivestringoptionalCampaign objective as TikTok labels it.
languagestringoptionalLanguage of the ad copy.
adFormatstringoptionalSpark ads are boosted organic posts; Non-Spark ads are regular in-feed ads.
likeTierstringoptionalTikTok's like-percentile band; Top 1-20% is the highest.
orderBystringoptionalTikTok's ranking. CTR and Likes are sorted highest-first locally.
maxItemsintegeroptionalMaximum unique ads to deliver (0-500). TikTok exposes 20 per board; enable Sweep to read more boards.
sweepbooleanoptionalRead more filter combinations to get past TikTok's 20-ad board. Turn off to get exactly one board.
includeDetailsbooleanoptionalAdd landing page, target countries, comments, shares, and source (one extra request per ad).
includeKeyframesbooleanoptionalAdd the per-second retention curve (one extra request per ad).
adIdsarrayoptionalAd IDs or Creative Center URLs to refresh. Used only in 'Specific ads' mode.

3. Start an Actor run

Set APIFY_TOKEN in your environment. Python 3.10 or newer is sufficient; this recipe uses no third-party packages.

Execution may incur charges. Review current pricing on Apify. The request asks for a 120-second timeout and a charge limit; these settings are subject to Apify’s pricing and do not guarantee an all-inclusive spending cap.

import json
import os
import urllib.request

# Save the schema-derived example as input.json; review and edit it first.
with open("input.json", encoding="utf-8") as stream:
    actor_input = json.load(stream)

token = os.environ["APIFY_TOKEN"]
request = urllib.request.Request(
    "https://api.apify.com/v2/acts/L2GXVohXHmaKGdJ8K/runs?timeout=120&maxTotalChargeUsd=0.50",
    data=json.dumps(actor_input).encode("utf-8"),
    headers={"Authorization": "Bearer " + token, "Content-Type": "application/json"},
    method="POST",
)
# This starts a potentially billable run. Do not automatically retry this POST.
with urllib.request.urlopen(request, timeout=40) as response:
    run = json.load(response)["data"]
print("Run ID:", run["id"])
print("Status:", run["status"])
# Inspect and download results in Apify Console once the run succeeds.

4. Inspect the actual results

Open the run in Apify Console and wait for a successful completion. Use the published output schema to locate results and the dataset schema to understand declared views. Missing or optional record fields must not be treated as guaranteed values.

Top-performing TikTok ads from the Creative Center. Each row includes the ad ID, title, brand, CTR, likes, cost tier, industry and objective names, video renditions, rank and market, and optional landing page, target countries, comments, shares, source, retention curve, and Spotlight commentary.

Questions before you run

Which inputs are required?

The published required fields are mode

What does this guide verify?

The fields, prefills, and schema links are rendered from the published build. This is a usage recipe, not a paid live extraction test. Source availability and collection results can vary.

What if the run request times out?

Check Apify Console before retrying. The first request may already have created a run. Do not automatically repeat a run-creation POST.

Generated from source build 4bew8UtrkUN8gbe80 and its README and schemas. Source changes regenerate this guide; no third-party editorial claims are inferred.