TikTok Top Ads Leaderboard - 122 Markets & Metrics
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.
Input schema
Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | required | Choose the Top Ads leaderboard, TikTok's handpicked Spotlight, or refresh specific ad IDs. |
country | string | optional | 122 supported markets. All countries reads multiple market boards and merges the results; it uses more requests. |
period | string | optional | The trailing window TikTok ranks over. |
Show all input fields
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | required | Choose the Top Ads leaderboard, TikTok's handpicked Spotlight, or refresh specific ad IDs. |
country | string | optional | 122 supported markets. All countries reads multiple market boards and merges the results; it uses more requests. |
period | string | optional | The trailing window TikTok ranks over. |
industry | string | optional | TikTok's industry taxonomy. Child categories are shown under their parent. |
objective | string | optional | Campaign objective as TikTok labels it. |
language | string | optional | Language of the ad copy. |
adFormat | string | optional | Spark ads are boosted organic posts; Non-Spark ads are regular in-feed ads. |
likeTier | string | optional | TikTok's like-percentile band; Top 1-20% is the highest. |
orderBy | string | optional | TikTok's ranking. CTR and Likes are sorted highest-first locally. |
maxItems | integer | optional | Maximum unique ads to deliver (0-500). TikTok exposes 20 per board; enable Sweep to read more boards. |
sweep | boolean | optional | Read more filter combinations to get past TikTok's 20-ad board. Turn off to get exactly one board. |
includeDetails | boolean | optional | Add landing page, target countries, comments, shares, and source (one extra request per ad). |
includeKeyframes | boolean | optional | Add the per-second retention curve (one extra request per ad). |
adIds | array | optional | Ad IDs or Creative Center URLs to refresh. Used only in 'Specific ads' mode. |
Download the published input schema
View complete JSON
{
"description": "Collect TikTok Creative Center Top Ads by market, period, industry, objective, language, ad format, like percentile, and ranking. No login or cookies required.",
"properties": {
"adFormat": {
"default": "",
"description": "Spark ads are boosted organic posts; Non-Spark ads are regular in-feed ads.",
"editor": "select",
"enum": [
"",
"1",
"2"
],
"enumTitles": [
"All ad formats",
"Spark ads",
"Non-Spark ads"
],
"prefill": "",
"title": "Ad format",
"type": "string"
},
"adIds": {
"default": [],
"description": "Ad IDs or Creative Center URLs to refresh. Used only in 'Specific ads' mode.",
"editor": "stringList",
"items": {
"type": "string"
},
"prefill": [],
"sectionCaption": "Specific ads",
"sectionDescription": "Only used when Mode is Specific ad IDs.",
"title": "Specific ad IDs",
"type": "array"
},
"country": {
"default": "US",
"description": "122 supported markets. All countries reads multiple market boards and merges the results; it uses more requests.",
"editor": "select",
"enum": [
"",
"AL",
"DZ",
"AO",
"AR",
"AM",
"AU",
"AT",
"AZ",
"BH",
"BD",
"BY",
"BE",
"BO",
"BA",
"BW",
"BR",
"BN",
"BG",
"KH",
"CM",
"CA",
"CL",
"CO",
"CR",
"CI",
"HR",
"CY",
"CZ",
"DK",
"DO",
"EC",
"EG",
"SV",
"EE",
"ET",
"FI",
"FR",
"GE",
"DE",
"GH",
"GR",
"GT",
"JO",
"HN",
"HK",
"HU",
"IN",
"ID",
"IQ",
"IE",
"IL",
"IT",
"JM",
"JP",
"KZ",
"KE",
"KW",
"KG",
"LA",
"LV",
"LB",
"LY",
"MY",
"MV",
"MU",
"MX",
"MD",
"MN",
"ME",
"MA",
"MZ",
"MM",
"NA",
"NL",
"NZ",
"NI",
"NG",
"MK",
"NO",
"OM",
"PK",
"PS",
"PA",
"PY",
"PE",
"PH",
"PL",
"PT",
"PR",
"QA",
"LT",
"RO",
"SA",
"SN",
"RS",
"SG",
"SK",
"SI",
"ZA",
"KR",
"ES",
"LK",
"SD",
"SE",
"CH",
"TW",
"TJ",
"TZ",
"TH",
"TT",
"TN",
"TR",
"UG",
"AE",
"GB",
"US",
"UY",
"VE",
"VN",
"YE",
"ZM",
"ZW"
],
"enumTitles": [
"All countries (sweep 122 markets)",
"Albania",
"Algeria",
"Angola",
"Argentina",
"Armenia",
"Australia",
"Austria",
"Azerbaijan",
"Bahrain",
"Bangladesh",
"Belarus",
"Belgium",
"Bolivia",
"Bosnia and Herzegovina",
"Botswana",
"Brazil",
"Brunei",
"Bulgaria",
"Cambodia",
"Cameroon",
"Canada",
"Chile",
"Colombia",
"Costa Rica",
"Cote d'Ivoire",
"Croatia",
"Cyprus",
"Czechia",
"Denmark",
"Dominican Republic",
"Ecuador",
"Egypt",
"El Salvador",
"Estonia",
"Ethiopia",
"Finland",
"France",
"Georgia",
"Germany",
"Ghana",
"Greece",
"Guatemala",
"Hashemite Kingdom of Jordan",
"Honduras",
"Hong Kong",
"Hungary",
"India",
"Indonesia",
"Iraq",
"Ireland",
"Israel",
"Italy",
"Jamaica",
"Japan",
"Kazakhstan",
"Kenya",
"Kuwait",
"Kyrgyzstan",
"Laos",
"Latvia",
"Lebanon",
"Libya",
"Malaysia",
"Maldives",
"Mauritius",
"Mexico",
"Moldova",
"Mongolia",
"Montenegro",
"Morocco",
"Mozambique",
"Myanmar",
"Namibia",
"Netherlands",
"New Zealand",
"Nicaragua",
"Nigeria",
"North Macedonia",
"Norway",
"Oman",
"Pakistan",
"Palestine",
"Panama",
"Paraguay",
"Peru",
"Philippines",
"Poland",
"Portugal",
"Puerto Rico",
"Qatar",
"Republic of Lithuania",
"Romania",
"Saudi Arabia",
"Senegal",
"Serbia",
"Singapore",
"Slovakia",
"Slovenia",
"South Africa",
"South Korea",
"Spain",
"Sri Lanka",
"Sudan",
"Sweden",
"Switzerland",
"Taiwan",
"Tajikistan",
"Tanzania",
"Thailand",
"Trinidad and Tobago",
"Tunisia",
"Turkey",
"Uganda",
"United Arab Emirates",
"United Kingdom",
"United States",
"Uruguay",
"Venezuela",
"Vietnam",
"Yemen",
"Zambia",
"Zimbabwe"
],
"prefill": "US",
"title": "Country",
"type": "string"
},
"includeDetails": {
"default": true,
"description": "Add landing page, target countries, comments, shares, and source (one extra request per ad).",
"prefill": false,
"sectionCaption": "Ad details",
"sectionDescription": "Optional enrichment requests.",
"title": "Include ad details",
"type": "boolean"
},
"includeKeyframes": {
"default": false,
"description": "Add the per-second retention curve (one extra request per ad).",
"prefill": false,
"title": "Include retention curve",
"type": "boolean"
},
"industry": {
"default": "",
"description": "TikTok's industry taxonomy. Child categories are shown under their parent.",
"editor": "select",
"enum": [
"",
"label_22000000000",
"label_22102000000",
"label_22101000000",
"label_22107000000",
"label_22108000000",
"label_22109000000",
"label_22106000000",
"label_22999000000",
"label_22112000000",
"label_22105000000",
"label_22113000000",
"label_22110000000",
"label_22111000000",
"label_16000000000",
"label_16105000000",
"label_16104000000",
"label_16101000000",
"label_16102000000",
"label_16999000000",
"label_16100000000",
"label_20000000000",
"label_20101000000",
"label_20110000000",
"label_20104000000",
"label_20106000000",
"label_20109000000",
"label_20107000000",
"label_20102000000",
"label_20105000000",
"label_20999000000",
"label_20111000000",
"label_20103000000",
"label_20100000000",
"label_20108000000",
"label_20112000000",
"label_12000000000",
"label_12104000000",
"label_12108000000",
"label_12100000000",
"label_12102000000",
"label_12110000000",
"label_12105000000",
"label_12107000000",
"label_12109000000",
"label_12103000000",
"label_12999000000",
"label_12101000000",
"label_12106000000",
"label_14000000000",
"label_14105000000",
"label_14104000000",
"label_14107000000",
"label_14106000000",
"label_14101000000",
"label_14100000000",
"label_14999000000",
"label_14103000000",
"label_14102000000",
"label_24000000000",
"label_24108000000",
"label_24118000000",
"label_24105000000",
"label_24103000000",
"label_24104000000",
"label_24109000000",
"label_24114000000",
"label_24107000000",
"label_24120000000",
"label_24119000000",
"label_24116000000",
"label_24117000000",
"label_24111000000",
"label_24106000000",
"label_24112000000",
"label_24101000000",
"label_24999000000",
"label_24113000000",
"label_24100000000",
"label_24102000000",
"label_24110000000",
"label_24115000000",
"label_30000000000",
"label_30100000000",
"label_30102000000",
"label_30101000000",
"label_10000000000",
"label_10100000000",
"label_10102000000",
"label_10105000000",
"label_10106000000",
"label_10999000000",
"label_10103000000",
"label_10101000000",
"label_10104000000",
"label_13000000000",
"label_13100000000",
"label_13108000000",
"label_13117000000",
"label_13115000000",
"label_13116000000",
"label_13112000000",
"label_13107000000",
"label_13104000000",
"label_13102000000",
"label_13110000000",
"label_13111000000",
"label_13109000000",
"label_13999000000",
"label_13105000000",
"label_13113000000",
"label_13101000000",
"label_13114000000",
"label_13103000000",
"label_27000000000",
"label_27103000000",
"label_27104000000",
"label_27100000000",
"label_27101000000",
"label_27102000000",
"label_27999000000",
"label_25000000000",
"label_25301000000",
"label_25302000000",
"label_25300000000",
"label_25313000000",
"label_25303000000",
"label_25999000000",
"label_25311000000",
"label_25304000000",
"label_25305000000",
"label_25306000000",
"label_25307000000",
"label_25308000000",
"label_25309000000",
"label_25310000000",
"label_25312000000",
"label_29000000000",
"label_29102000000",
"label_29101000000",
"label_29100000000",
"label_29103000000",
"label_29999000000",
"label_21000000000",
"label_21102000000",
"label_21101000000",
"label_21103000000",
"label_21104000000",
"label_21100000000",
"label_21999000000",
"label_21105000000",
"label_18000000000",
"label_18106000000",
"label_18110000000",
"label_18104000000",
"label_18101000000",
"label_18102000000",
"label_18105000000",
"label_18108000000",
"label_18109000000",
"label_18999000000",
"label_18112000000",
"label_18100000000",
"label_18103000000",
"label_18107000000",
"label_18111000000",
"label_26000000000",
"label_26114000000",
"label_26112000000",
"label_26102000000",
"label_26113000000",
"label_26108000000",
"label_26104000000",
"label_26105000000",
"label_26111000000",
"label_26999000000",
"label_26101000000",
"label_26106000000",
"label_26107000000",
"label_26109000000",
"label_26103000000",
"label_26100000000",
"label_23000000000",
"label_23113000000",
"label_23114000000",
"label_23122000000",
"label_23102000000",
"label_23126000000",
"label_23108000000",
"label_23105000000",
"label_23111000000",
"label_23116000000",
"label_23104000000",
"label_23128000000",
"label_23107000000",
"label_23124000000",
"label_23125000000",
"label_23127000000",
"label_23115000000",
"label_23106000000",
"label_23109000000",
"label_23110000000",
"label_23100000000",
"label_23119000000",
"label_23999000000",
"label_23129000000",
"label_23101000000",
"label_23118000000",
"label_23130000000",
"label_23131000000",
"label_23103000000",
"label_23134000000",
"label_23123000000",
"label_23132000000",
"label_23133000000",
"label_23112000000",
"label_23117000000",
"label_19000000000",
"label_19999000000",
"label_19103000000",
"label_19101000000",
"label_19102000000",
"label_19105000000",
"label_19106000000",
"label_19104000000",
"label_19100000000",
"label_28000000000",
"label_28100000000",
"label_28101000000",
"label_15000000000",
"label_15100000000",
"label_15105000000",
"label_15103000000",
"label_15101000000",
"label_15102000000",
"label_15104000000",
"label_15106000000",
"label_15107000000",
"label_15999000000",
"label_17000000000",
"label_17103000000",
"label_17999000000",
"label_17105000000",
"label_17106000000",
"label_11000000000",
"label_11111000000",
"label_11110000000",
"label_11101000000",
"label_11103000000",
"label_11102000000",
"label_11100000000",
"label_11107000000",
"label_11112000000",
"label_11104000000",
"label_11108000000",
"label_11106000000",
"label_11999000000",
"label_11105000000",
"label_11109000000"
],
"enumTitles": [
"All industries",
"Apparel & Accessories",
"Apparel & Accessories > Bags",
"Apparel & Accessories > Clothing Accessories",
"Apparel & Accessories > High-end Jewelry",
"Apparel & Accessories > Men's Clothing",
"Apparel & Accessories > Men's Shoes",
"Apparel & Accessories > Ordinary Jewelry",
"Apparel & Accessories > Other Apparel & Accessories",
"Apparel & Accessories > Traditional & Ceremonial Clothing",
"Apparel & Accessories > Watches",
"Apparel & Accessories > Wearable Tech Devices",
"Apparel & Accessories > Women's Clothing",
"Apparel & Accessories > Women's Shoes",
"Appliances",
"Appliances > Digital Devices",
"Appliances > Home Appliances",
"Appliances > Kitchen & Bathroom Appliances",
"Appliances > Large Appliances",
"Appliances > Other Appliances",
"Appliances > Personal Care Appliances",
"Apps",
"Apps > Audio & Video Players",
"Apps > Business & Productivity",
"Apps > Education",
"Apps > Financial Services",
"Apps > Health & Fitness",
"Apps > Life & Leisure",
"Apps > News & Reading",
"Apps > Online Shopping",
"Apps > Other Apps",
"Apps > Parenting",
"Apps > Photography",
"Apps > Social",
"Apps > Travel",
"Apps > Utilities",
"Baby, Kids & Maternity",
"Baby, Kids & Maternity > Baby Bedding",
"Baby, Kids & Maternity > Baby Feeding Supplies",
"Baby, Kids & Maternity > Baby Food",
"Baby, Kids & Maternity > Baby Formula",
"Baby, Kids & Maternity > Baby Hygiene Products",
"Baby, Kids & Maternity > Baby Shoes",
"Baby, Kids & Maternity > Child Car Seats",
"Baby, Kids & Maternity > Children's Apparel",
"Baby, Kids & Maternity > Diapers & Baby Wipes",
"Baby, Kids & Maternity > Other Baby, Kids & Maternity",
"Baby, Kids & Maternity > Strollers & Cribs",
"Baby, Kids & Maternity > Toys for Kids",
"Beauty & Personal Care",
"Beauty & Personal Care > Aesthetic Medicine",
"Beauty & Personal Care > Cosmetics",
"Beauty & Personal Care > Feminine Care",
"Beauty & Personal Care > Fragrances & Perfumes",
"Beauty & Personal Care > Haircare",
"Beauty & Personal Care > Oral Care",
"Beauty & Personal Care > Other Beauty & Personal Care",
"Beauty & Personal Care > Skincare",
"Beauty & Personal Care > Wig & Hair Styling",
"Business Services",
"Business Services > Agriculture, Forestry, Animal Husbandry & Fishing",
"Business Services > Auction Services",
"Business Services > Chemical Materials",
"Business Services > Constructional Engineering",
"Business Services > Electronics & Electrical",
"Business Services > Energy Conservation & Environmental Protection",
"Business Services > Exhibition Services",
"Business Services > Franchising",
"Business Services > Individual Entrepreneurship",
"Business Services > Investment Planning & Management",
"Business Services > IT Services",
"Business Services > Legal Services",
"Business Services > Logistics",
"Business Services > Machinery & Equipment",
"Business Services > Marketing & Advertising",
"Business Services > Office Equipment & Supplies",
"Business Services > Other Business Services",
"Business Services > Professional Consultation",
"Business Services > Real Estate & Home Rentals",
"Business Services > Recruitment & Job Searching",
"Business Services > Safety & Security",
"Business Services > Service Outsourcing",
"E-Commerce (Non-app)",
"E-Commerce (Non-app) > Big Box Retailers",
"E-Commerce (Non-app) > Large E-commerce Platforms",
"E-Commerce (Non-app) > Small & Medium-sized E-commerce Platforms",
"Education",
"Education > Early Childhood & Preschool Education",
"Education > Higher Education",
"Education > Language Training",
"Education > Non-academic Training (Hobbies)",
"Education > Other Education",
"Education > Overseas Education",
"Education > Primary & Secondary Education & K-12",
"Education > Vocational Training",
"Financial Services",
"Financial Services > Commercial Banks",
"Financial Services > Credit Bureaus",
"Financial Services > Credit Cards",
"Financial Services > Crowd Funding",
"Financial Services > Cryptocurrencies",
"Financial Services > Foreign Exchange Transactions",
"Financial Services > Funds",
"Financial Services > Guarantees",
"Financial Services > Insurance",
"Financial Services > Investment Advisory",
"Financial Services > Loan Services",
"Financial Services > Microfinance Companies",
"Financial Services > Other Financial Services",
"Financial Services > Pawn Shops",
"Financial Services > Precious Metals",
"Financial Services > Securities",
"Financial Services > Third-Party Payments",
"Financial Services > Trusts",
"Food & Beverage",
"Food & Beverage > Alcoholic Beverages",
"Food & Beverage > Cooking & Recipes",
"Food & Beverage > Cuisine",
"Food & Beverage > Food & Fresh Produce",
"Food & Beverage > Non-alcoholic Beverages",
"Food & Beverage > Other Food & Beverage",
"Games",
"Games > Action",
"Games > Casino",
"Games > Hyper-Casual",
"Games > Kids",
"Games > Match",
"Games > Other",
"Games > Party",
"Games > Puzzle",
"Games > Racing",
"Games > RPG",
"Games > Shooting",
"Games > Simulation",
"Games > Sports",
"Games > Strategy",
"Games > Tabletop",
"Health",
"Health > Dietary Supplements",
"Health > Medical Information",
"Health > Medical Services",
"Health > Medicine",
"Health > Other Health",
"Home Improvement",
"Home Improvement > Construction Materials & Lighting",
"Home Improvement > Furniture",
"Home Improvement > Hardware & Electrical",
"Home Improvement > Home Decor",
"Home Improvement > Interior Design & Decorating Services",
"Home Improvement > Other Home Improvement",
"Home Improvement > Power Strips & Socket",
"Household Products",
"Household Products > Cleaning Appliances",
"Household Products > Cleaning Supplies",
"Household Products > Coffee Accessories",
"Household Products > Daily Essentials",
"Household Products > Glasses & Drinkware",
"Household Products > Kitchen Accessories",
"Household Products > Laundry",
"Household Products > Leather Care",
"Household Products > Other Household Products",
"Household Products > Pest Control",
"Household Products > Storage Products",
"Household Products > Tea Sets",
"Household Products > Tissues & Wet Wipes",
"Household Products > Toys",
"Life Services",
"Life Services > Beauty & Personal Care",
"Life Services > Consumer Services",
"Life Services > Dating & Matchmaking Services",
"Life Services > Exercise & Fitness",
"Life Services > Gardening",
"Life Services > Gifts & Flowers",
"Life Services > Housekeeping",
"Life Services > Internet Services",
"Life Services > Other Life Services",
"Life Services > Photography",
"Life Services > Shopping Services",
"Life Services > Used Good Sales Platforms",
"Life Services > Utilities Payments",
"Life Services > Wedding Celebrations",
"Life Services > Wedding Photography",
"News & Entertainment",
"News & Entertainment > Anime",
"News & Entertainment > Astrology",
"News & Entertainment > Beauty & Personal Care",
"News & Entertainment > Business & Economy",
"News & Entertainment > Car Information",
"News & Entertainment > Celebrities & Gossip",
"News & Entertainment > Charity & Public Welfare",
"News & Entertainment > Collectables & Antiques",
"News & Entertainment > Culture & Art",
"News & Entertainment > Culture & History",
"News & Entertainment > E-commerce Information",
"News & Entertainment > Environmental Protection",
"News & Entertainment > Food & Cooking",
"News & Entertainment > Games & Utility Software",
"News & Entertainment > General Information",
"News & Entertainment > Humor",
"News & Entertainment > Law",
"News & Entertainment > Lifestyle News",
"News & Entertainment > Live Events",
"News & Entertainment > Military",
"News & Entertainment > Movies",
"News & Entertainment > Other News & Entertainment",
"News & Entertainment > Pet Information",
"News & Entertainment > Politics",
"News & Entertainment > Reading",
"News & Entertainment > Real Estate Information",
"News & Entertainment > Relationship Information",
"News & Entertainment > Science & Technology",
"News & Entertainment > Social Media Account Promotion",
"News & Entertainment > Sports & Fitness",
"News & Entertainment > Streaming Site",
"News & Entertainment > Tourist Information",
"News & Entertainment > TV Drama & Series",
"News & Entertainment > TV Variety Shows",
"Pets",
"Pets > Other Pets",
"Pets > Pet Grooming",
"Pets > Pet Healthcare",
"Pets > Pet Household Products",
"Pets > Pet Toys",
"Pets > Pet Travel Accessories",
"Pets > Pet Treats",
"Pets > Petfood",
"Sports & Outdoor",
"Sports & Outdoor > Outdoor Equipment",
"Sports & Outdoor > Sports & Equipment",
"Tech & Electronics",
"Tech & Electronics > Cell Phones",
"Tech & Electronics > Computer Accessories",
"Tech & Electronics > Computer Repair",
"Tech & Electronics > Computers",
"Tech & Electronics > Computers Components",
"Tech & Electronics > Gaming Devices",
"Tech & Electronics > Network Products",
"Tech & Electronics > Office Equipment",
"Tech & Electronics > Other Tech & Electronics",
"Travel",
"Travel > Hotels & Accommodation",
"Travel > Other Travel",
"Travel > Tours & Attractions",
"Travel > Travel Agencies & Services",
"Vehicle & Transportation",
"Vehicle & Transportation > Accessories for 2/3-Wheeled Vehicles",
"Vehicle & Transportation > Airplanes",
"Vehicle & Transportation > Auto Accessories",
"Vehicle & Transportation > Auto Parts",
"Vehicle & Transportation > Auto Services",
"Vehicle & Transportation > Automobiles",
"Vehicle & Transportation > Bicycles",
"Vehicle & Transportation > Car Dealerships",
"Vehicle & Transportation > Car Rentals",
"Vehicle & Transportation > Electric Scooters",
"Vehicle & Transportation > Motorcycles",
"Vehicle & Transportation > Other Vehicle & Transportation",
"Vehicle & Transportation > Used Cars",
"Vehicle & Transportation > Water Vehicles"
],
"prefill": "",
"sectionCaption": "Filters",
"sectionDescription": "Narrow the leaderboard. Leave a filter at All to sweep every value.",
"title": "Industry",
"type": "string"
},
"language": {
"default": "",
"description": "Language of the ad copy.",
"editor": "select",
"enum": [
"",
"en",
"es",
"ar",
"vi",
"th",
"de",
"id",
"pt",
"fr",
"ms",
"nl",
"ja",
"it",
"ro",
"zh-Hant",
"ko",
"uk"
],
"enumTitles": [
"All languages",
"English",
"Spanish",
"Arabic",
"Vietnamese",
"Thai",
"German",
"Indonesian",
"Portuguese",
"French",
"Malay",
"Dutch",
"Japanese",
"Italian",
"Romanian",
"Chinese (Traditional)",
"Korean",
"Ukrainian"
],
"prefill": "",
"title": "Ad language",
"type": "string"
},
"likeTier": {
"default": "",
"description": "TikTok's like-percentile band; Top 1-20% is the highest.",
"editor": "select",
"enum": [
"",
"1",
"2",
"3",
"4",
"5"
],
"enumTitles": [
"All like tiers",
"Top 1-20%",
"Top 21-40%",
"Top 41-60%",
"Top 61-80%",
"Top 81-100%"
],
"prefill": "",
"title": "Like percentile",
"type": "string"
},
"maxItems": {
"default": 30,
"description": "Maximum unique ads to deliver (0-500). TikTok exposes 20 per board; enable Sweep to read more boards.",
"maximum": 500,
"minimum": 0,
"prefill": 3,
"sectionCaption": "Collection",
"sectionDescription": "How many ads to collect and whether to read more boards.",
"title": "Maximum ads",
"type": "integer"
},
"mode": {
"default": "leaderboard",
"description": "Choose the Top Ads leaderboard, TikTok's handpicked Spotlight, or refresh specific ad IDs.",
"editor": "select",
"enum": [
"leaderboard",
"spotlight",
"byAdIds"
],
"enumTitles": [
"Top Ads leaderboard",
"Top Ads Spotlight",
"Specific ad IDs"
],
"prefill": "leaderboard",
"title": "Mode",
"type": "string"
},
"objective": {
"default": "",
"description": "Campaign objective as TikTok labels it.",
"editor": "select",
"enum": [
"",
"campaign_objective_traffic",
"campaign_objective_app_installs",
"campaign_objective_conversion",
"campaign_objective_video_views",
"campaign_objective_reach",
"campaign_objective_lead_generation",
"campaign_objective_product_sales",
"campaign_objective_app_promotion"
],
"enumTitles": [
"All objectives",
"Traffic",
"App Installs",
"Conversions",
"Video Views",
"Reach",
"Lead Generation",
"Product Sales",
"App Promotion"
],
"prefill": "",
"title": "Campaign objective",
"type": "string"
},
"orderBy": {
"default": "for_you",
"description": "TikTok's ranking. CTR and Likes are sorted highest-first locally.",
"editor": "select",
"enum": [
"for_you",
"impression",
"ctr",
"play_2s_rate",
"play_6s_rate",
"cvr",
"like"
],
"enumTitles": [
"TikTok For You ranking",
"Reach (TikTok ranking)",
"CTR (highest first)",
"2-second view rate",
"6-second view rate",
"Conversion rate",
"Likes (highest first)"
],
"prefill": "for_you",
"title": "Sort by",
"type": "string"
},
"period": {
"default": "30",
"description": "The trailing window TikTok ranks over.",
"editor": "select",
"enum": [
"7",
"30",
"180"
],
"enumTitles": [
"Last 7 days",
"Last 30 days",
"Last 180 days"
],
"prefill": "30",
"title": "Time period",
"type": "string"
},
"sweep": {
"default": true,
"description": "Read more filter combinations to get past TikTok's 20-ad board. Turn off to get exactly one board.",
"prefill": false,
"title": "Sweep to fill",
"type": "boolean"
}
},
"required": [
"mode"
],
"schemaVersion": 1,
"title": "TikTok Top Ads Scraper Input",
"type": "object"
}
Output schema
Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.
| Field | Type | Required | Description |
|---|---|---|---|
data | string | optional | Dataset containing one row per unique Top Ads creative. Existing fields adId, adUrl, adTitle, brandName, cost, ctr, like, industryKey, objectiveKey, isSearch, observedCountry, observedPeriod, scrapedAt, videoCoverUrl, videoDuration, videoHeight, videoWidth, videoId, and videoUrls are preserved; new fields are additive. |
Download the published output schema
View complete JSON
{
"actorOutputSchemaVersion": 1,
"description": "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.",
"properties": {
"data": {
"description": "Dataset containing one row per unique Top Ads creative. Existing fields adId, adUrl, adTitle, brandName, cost, ctr, like, industryKey, objectiveKey, isSearch, observedCountry, observedPeriod, scrapedAt, videoCoverUrl, videoDuration, videoHeight, videoWidth, videoId, and videoUrls are preserved; new fields are additive.",
"template": "{{links.apiDefaultDatasetUrl}}/items",
"title": "Top Ads Data",
"type": "string"
}
},
"title": "TikTok Top Ads Leaderboard Output"
}
Dataset schema
Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.
Download the published dataset schema
View complete JSON
{
"actorSpecification": 1,
"fields": {
"adFormat": {
"description": "Spark ads or Non-Spark ads; omitted when the board did not reveal it",
"title": "Ad Format",
"type": "string"
},
"adId": {
"description": "Unique TikTok material ID",
"title": "Ad ID",
"type": "string"
},
"adSource": {
"description": "TikTok Ads Manager or Others, from the ad detail",
"title": "Ad Source",
"type": "string"
},
"adTitle": {
"description": "Ad caption or headline",
"title": "Ad Title",
"type": "string"
},
"adUrl": {
"description": "Creative Center reference URL with the ad_id query parameter (TikTok redirects ad deep links to the dashboard)",
"title": "Ad URL",
"type": "string"
},
"availableTotal": {
"description": "TikTok's ranked-index size for the base query",
"title": "Available Total",
"type": "integer"
},
"brandName": {
"description": "Advertiser/brand name when TikTok publishes it; sentinel values are omitted",
"title": "Brand Name",
"type": "string"
},
"commentCount": {
"description": "Comment count from the ad detail; 0 is a real value",
"title": "Comments",
"type": "integer"
},
"cost": {
"description": "TikTok budget tier: 0 low, 1 medium, 2 high",
"title": "Cost Tier Code",
"type": "integer"
},
"costTier": {
"description": "Low, Medium, or High",
"title": "Cost Tier",
"type": "string"
},
"creativeCenterUrl": {
"description": "Canonical Creative Center ad URL in the form /topads/<id>/pc/en",
"title": "Creative Center URL",
"type": "string"
},
"ctr": {
"description": "TikTok CTR score in percent units (0.62 means 0.62%)",
"title": "CTR",
"type": "number"
},
"detailUnavailable": {
"description": "True when a requested ad ID has no detail record",
"title": "Detail Unavailable",
"type": "boolean"
},
"detailsFetched": {
"description": "Present when detail enrichment was requested",
"title": "Details Fetched",
"type": "boolean"
},
"foundInCountry": {
"description": "Market whose board surfaced the ad",
"title": "Found In Country",
"type": "string"
},
"industryKey": {
"description": "Raw TikTok industry label, e.g. label_14104000000",
"title": "Industry Key",
"type": "string"
},
"industryName": {
"description": "Human-readable industry name",
"title": "Industry",
"type": "string"
},
"isSearch": {
"description": "TikTok's raw is_search flag",
"title": "Is Search Ad",
"type": "boolean"
},
"landingPageUrl": {
"description": "Destination URL when the ad detail exposes it",
"title": "Landing Page",
"type": "string"
},
"like": {
"description": "Like count on the ad",
"title": "Likes",
"type": "integer"
},
"objectiveKey": {
"description": "Raw TikTok campaign objective key",
"title": "Objective Key",
"type": "string"
},
"objectiveName": {
"description": "Human-readable campaign objective",
"title": "Objective",
"type": "string"
},
"objectives": {
"description": "Objective objects with key, name, and numeric id",
"title": "Objectives",
"type": "array"
},
"observedCountry": {
"description": "Country filter applied, or all",
"title": "Observed Country",
"type": "string"
},
"observedPeriod": {
"description": "Time period in days (7, 30, or 180)",
"title": "Observed Period",
"type": "integer"
},
"parentIndustryName": {
"description": "Parent industry name when the ad has a child category",
"title": "Parent Industry",
"type": "string"
},
"rank": {
"description": "Position on the board that surfaced the ad (1-based)",
"title": "Rank",
"type": "integer"
},
"retentionCurve": {
"description": "Per-second retention points {second, value} when keyframes are enabled",
"title": "Retention Curve",
"type": "array"
},
"scrapedAt": {
"description": "ISO 8601 collection timestamp",
"title": "Scraped At",
"type": "string"
},
"shareCount": {
"description": "Share count from the ad detail; 0 is a real value",
"title": "Shares",
"type": "integer"
},
"source": {
"description": "creativeCenterTopAds, creativeCenterSpotlight, or creativeCenterAdDetail",
"title": "Source",
"type": "string"
},
"spotlightHighlight": {
"description": "TikTok expert commentary for Spotlight ads",
"title": "Spotlight Commentary",
"type": "string"
},
"targetCountries": {
"description": "Countries from the ad detail's country_code list",
"title": "Target Countries",
"type": "array"
},
"videoCoverUrl": {
"description": "Cover/thumbnail URL",
"title": "Video Cover URL",
"type": "string"
},
"videoDuration": {
"description": "Duration in seconds",
"title": "Video Duration",
"type": "number"
},
"videoHeight": {
"description": "Height in pixels",
"title": "Video Height",
"type": "integer"
},
"videoId": {
"description": "TikTok video ID for the ad creative",
"title": "Video ID",
"type": "string"
},
"videoUrlBest": {
"description": "Best available rendition (1080p, 720p, 540p, 480p, 360p)",
"title": "Best Video URL",
"type": "string"
},
"videoUrls": {
"description": "Resolution-keyed video URLs",
"title": "Video URLs",
"type": "object"
},
"videoUrlsExpireAt": {
"description": "Earliest expiry of the signed media URLs (ISO 8601)",
"title": "Media Expiry",
"type": "string"
},
"videoWidth": {
"description": "Width in pixels",
"title": "Video Width",
"type": "integer"
},
"voiceOver": {
"description": "Whether the ad detail reports a voice-over",
"title": "Voice Over",
"type": "boolean"
}
},
"title": "TikTok Top Ads",
"views": {
"overview": {
"display": {
"component": "table",
"properties": {
"adId": {
"format": "text",
"label": "Ad ID"
},
"adTitle": {
"format": "text",
"label": "Ad Title"
},
"brandName": {
"format": "text",
"label": "Brand"
},
"creativeCenterUrl": {
"format": "link",
"label": "Creative Center"
},
"ctr": {
"format": "number",
"label": "CTR"
},
"foundInCountry": {
"format": "text",
"label": "Market"
},
"industryName": {
"format": "text",
"label": "Industry"
},
"landingPageUrl": {
"format": "link",
"label": "Landing Page"
},
"like": {
"format": "number",
"label": "Likes"
},
"objectiveName": {
"format": "text",
"label": "Objective"
},
"observedPeriod": {
"format": "number",
"label": "Period (days)"
},
"scrapedAt": {
"format": "text",
"label": "Scraped At"
}
}
},
"title": "TikTok Top Ads",
"transformation": {
"fields": [
"adId",
"adTitle",
"brandName",
"ctr",
"like",
"industryName",
"objectiveName",
"foundInCountry",
"observedPeriod",
"landingPageUrl",
"creativeCenterUrl",
"scrapedAt"
]
}
}
}
}
Key-value schema
Published key-value store definitions, when provided by this build.
This definition is not present in the default published build. See the published README for available documentation.
Published README
Read the full published documentation
TikTok Top Ads Leaderboard - 122 Markets & Metrics
See what is actually winning on TikTok. This actor reads TikTok's public Creative Center Top Ads boards and returns one structured row per ad: the creative, brand, CTR, likes, budget tier, industry, campaign objective, downloadable video renditions, and the landing page when TikTok publishes it. It also reads TikTok's handpicked Top Ads Spotlight and can refresh a list of known ad IDs.
No TikTok account, cookies, API key, or browser is required. The actor signs its own anonymous Creative Center session with plain HTTP.
What this actor does
- Reads the Top Ads leaderboard for any of 122 markets, 7 / 30 / 180-day windows, 258 industries, 8 campaign objectives, 17 ad languages, Spark/Non-Spark formats, and 5 like-percentile tiers.
- Ranks by TikTok's For You mix, Reach, CTR, 2-second view rate, 6-second view rate, conversion rate, or Likes. CTR and Likes are returned highest-first.
- Goes beyond TikTok's 20-ad board by reading more filter combinations and deduplicating
by ad ID. It stops at your
maxItemsor when the source has no more unique ads. - Optionally adds the ad detail record: landing page, target countries, comments, shares, ad source, and the full objective list.
- Optionally adds the per-second retention curve from TikTok's keyframe data.
- Reads the Top Ads Spotlight: five handpicked ads with TikTok's expert commentary.
- Refreshes specific ad IDs or Creative Center URLs without re-running a whole board.
- Preserves the original output fields and adds new fields beside them.
How many ads can I get?
TikTok shows an anonymous visitor 20 ads per filter board (one market + period + industry + objective + ranking + format + like tier). The second page is empty. The ranked index behind a query can hold up to 500 ads, but only 20 are visible per board.
This actor reads board after board - other rankings, objectives, industries, formats,
like tiers, languages, and markets - and deduplicates by ad ID. maxItems is a cap on
unique ads, not a promise that one board contains that many. If the source runs out,
the run succeeds with an honest status message instead of pretending it filled the
request.
Modes
| Mode | What it reads |
|---|---|
| Top Ads leaderboard (default) | The main Top Ads boards, with all filters and the sweep. |
| Top Ads Spotlight | TikTok's handpicked Spotlight list, five ads with expert commentary. industry is the only board filter used; includeDetails adds title, brand, landing page, and target countries. |
| Specific ad IDs | A detail lookup for each ID or Creative Center URL you provide. |
Inputs
| Field | Default | What it controls |
|---|---|---|
mode |
leaderboard |
Leaderboard, Spotlight, or Specific ad IDs. |
country |
US |
122 markets, or All countries to read multiple market boards and merge the results. |
period |
30 |
Last 7, 30, or 180 days. |
industry |
All industries | TikTok's 258-entry industry taxonomy; child categories are shown under their parent. |
objective |
All objectives | Traffic, App Installs, Conversions, Video Views, Reach, Lead Generation, Product Sales, or App Promotion. |
language |
All languages | The language of the ad copy (17 options). |
adFormat |
All formats | All formats, Spark ads, or Non-Spark ads. |
likeTier |
All like tiers | All like tiers, Top 1-20%, Top 21-40%, Top 41-60%, Top 61-80%, or Top 81-100%. |
orderBy |
for_you |
For You, Reach, CTR, 2-second view rate, 6-second view rate, conversion rate, or Likes. |
maxItems |
30 |
Maximum unique ads to deliver, 0-500. |
sweep |
true |
Read more filter combinations to get past the 20-ad board. Turn off to get exactly one board. |
includeDetails |
true |
Add landing page, target countries, comments, shares, source, and objectives. |
includeKeyframes |
false |
Add the per-second retention curve. |
adIds |
Any | Ad IDs or Creative Center URLs for Specific ad IDs mode. |
Examples
Top US ads from the last 30 days:
{
"mode": "leaderboard",
"country": "US",
"period": "30",
"maxItems": 50,
"sweep": true
}
Spark conversion ads in Germany over 180 days, with landing pages:
{
"mode": "leaderboard",
"country": "DE",
"period": "180",
"objective": "campaign_objective_conversion",
"adFormat": "1",
"maxItems": 100,
"includeDetails": true
}
All countries, Beauty & Personal Care, highest CTR, top 20:
{
"mode": "leaderboard",
"country": "",
"period": "30",
"industry": "label_14000000000",
"orderBy": "ctr",
"maxItems": 20
}
Top Ads Spotlight:
{
"mode": "spotlight",
"industry": "label_15000000000",
"maxItems": 5
}
Refresh two known ads:
{
"mode": "byAdIds",
"adIds": [
"7694650748144042002",
"https://ads.tiktok.com/business/creativecenter/topads/7694538970823606279/pc/en"
]
}
Output
Every row keeps the original fields: adId, adUrl, adTitle, brandName, cost,
ctr, like, industryKey, objectiveKey, isSearch, observedCountry,
observedPeriod, scrapedAt, videoCoverUrl, videoDuration, videoHeight,
videoWidth, videoId, and videoUrls.
New fields are additive:
source,creativeCenterUrl,rank,foundInCountrycostTier,industryName,parentIndustryName,objectiveName,adFormatlandingPageUrl,targetCountries,commentCount,shareCount,adSource,objectives,voiceOverspotlightHighlight,retentionCurvevideoUrlBest,videoUrlsExpireAtdetailsFetched,detailUnavailable,availableTotal
Empty fields are omitted. 0 and false are kept because they are real values.
brandName="Not Mention" and similar placeholders are omitted.
Notes on the metrics
ctris TikTok's CTR score in percent units:0.62means0.62%.costis a budget tier, not money: 0 = Low, 1 = Medium, 2 = High.likeis an absolute count.commentCountandshareCountare detail fields; 0 is common and real.videoUrlsare signed CDN URLs with a limited lifetime.videoUrlsExpireAttells you when the earliest one expires. Download what you want to keep.availableTotalis TikTok's ranked-index size for the base query, not the number of rows the actor delivered.
Use cases
- Creative research - build a swipe file of winning hooks, formats, and CTAs by market, industry, objective, and language.
- Competitor monitoring - see which brands and landing pages are appearing in the Top Ads boards for your vertical.
- Benchmarking - compare your CTR and likes with the top percentile bands TikTok publishes.
- Trend tracking - run weekly with
period=7and watch new ads enter the board. - Creative briefs - pull the retention curve to show where viewers drop off.
FAQ
Do I need a TikTok account or cookies? No. The actor signs an anonymous Creative Center session itself. It never asks for a TikTok login, cookie, or API key.
Why did I get fewer rows than maxItems?
TikTok exposes 20 ads per board and up to 500 per query. The actor reads extra boards
when sweep is on, but some filter combinations have fewer unique ads. The run status
message reports how many boards were read and why it stopped.
Can I search by keyword? TikTok's keyword search on Top Ads is login-only; an anonymous request returns zero ads. This actor does not ship a keyword field. Use industry, objective, language, or a specific ad ID instead.
Why is brandName missing on some rows?
TikTok often does not publish a brand name. It is present on roughly a quarter of rows
in our sample. The actor omits the field rather than guessing.
Why does adUrl open the Top Ads dashboard?
TikTok has no stable public per-ad deep link; its own ad detail links redirect to the
dashboard. adId is the stable key. creativeCenterUrl uses TikTok's canonical ad
route for reference.
Are the video URLs permanent?
No. They are signed CDN URLs that expire within hours. Download them promptly or use
videoUrlsExpireAt.
Why do some industries return no ads? The 258-entry taxonomy includes niche child categories that TikTok may not have a board for in a given market and period. Try the parent industry or a longer period.
Is this affiliated with TikTok? No. This is an independent actor that reads publicly available Creative Center data. It is not endorsed by or affiliated with TikTok or ByteDance.
Limitations
- 20 ads per board, 500 per query.
- Keyword search is login-only and is not supported.
- Brand name and landing page are published for only some ads.
- Exact spend, impressions, reach, dates, and audience targeting are not in the public Creative Center payload.
- Media URLs expire.
- TikTok may change its internal signing scheme; the actor re-mints and can recover the signer from the live page bundle, but a future change can still require an update.
Data source
TikTok Creative Center Top Ads at
https://ads.tiktok.com/business/creativecenter/inspiration/topads/pc/en and Top Ads
Spotlight at
https://ads.tiktok.com/business/creativecenter/tiktok-topads-spotlight/pc/en.
The actor calls the same public JSON endpoints the pages use and reads only publicly
available data.
Python quickstart
Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.
Source build 4bew8UtrkUN8gbe80. Documentation is regenerated from the default published build; private drafts are not included.