{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Creative Center Scraper - Top Ads & Trends, No Login",
    "description": "Returns TikTok Creative Center lists as rows: top ads with CTR score, likes, objective, industry, video file and landing page, plus TikTok's visitor preview of trending hashtags (top 3 per list, with posts, views and trend curve) and trending videos (top 4 per list), per country. No login.",
    "version": "1.0",
    "x-build-id": "ljOhiJqgqFdio2eFt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/benthepythondev~tiktok-creative-center-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-benthepythondev-tiktok-creative-center-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/benthepythondev~tiktok-creative-center-scraper/runs": {
      "post": {
        "operationId": "runs-sync-benthepythondev-tiktok-creative-center-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/benthepythondev~tiktok-creative-center-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-benthepythondev-tiktok-creative-center-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "lists": {
            "title": "Lists",
            "type": "array",
            "description": "Chooses which Creative Center lists are read: topAds (the top ads), hashtags (the trending hashtags) and videos (the trending videos). Every list is read for every country below. Empty means topAds. TikTok closed its song and creator rankings in 2026.",
            "items": {
              "type": "string",
              "enum": [
                "topAds",
                "hashtags",
                "videos"
              ],
              "enumTitles": [
                "Top ads",
                "Trending hashtags",
                "Trending videos"
              ]
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Sets the countries to read, as two-letter codes such as US, GB, DE, JP. Top ads exist for 28 countries (and ALL for every country at once), hashtags for 27, videos for US, JP, VN, TH and ID. A country TikTok has no list for gives no rows and costs nothing. Empty means US.",
            "items": {
              "type": "string"
            }
          },
          "period": {
            "title": "Period (days)",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Sets the time window in days. Top ads offer 7, 30 and 180, hashtags 7, 30 and 90, videos 7 and 30; another number is replaced by the nearest one the list offers, and each row says which window it is from.",
            "default": 30
          },
          "maxItems": {
            "title": "Maximum rows per list",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Caps the rows of one list, where a list is one kind, country, period and filter. A logged-out visitor gets 20 top ads per list call, so for more than 20 the Actor asks the same list again in TikTok's other sort orders and filters and keeps each ad once. Hashtag lists have 3 entries and video lists 4, whatever is set here.",
            "default": 20
          },
          "includeDetails": {
            "title": "Top ads: add landing page and engagement",
            "type": "boolean",
            "description": "Adds the detail record to every top ad: landing page, comments, shares, the countries the ad runs in and its keywords. One more request per ad (about 27 ads a minute) and a second charge per ad.",
            "default": false
          },
          "orderBy": {
            "title": "Top ads: order",
            "enum": [
              "for_you",
              "ctr",
              "like",
              "cvr",
              "play_2s_rate",
              "play_6s_rate",
              "impression"
            ],
            "type": "string",
            "description": "Sets the order of the top ads list: for_you (TikTok's default), ctr, like, cvr, play_2s_rate, play_6s_rate or impression (reach). The first 20 rows carry their rank in this order.",
            "default": "for_you"
          },
          "industries": {
            "title": "Industries",
            "type": "array",
            "description": "Narrows top ads and hashtags to industries, by TikTok's name or id (for example Beauty & Personal Care or 14000000000). Each industry is a list of its own with its own rows. Top ads know 258 industries; hashtag lists know 15 main ones and skip the others.",
            "items": {
              "type": "string"
            }
          },
          "hashtagsByIndustry": {
            "title": "Hashtags: one list per industry",
            "type": "boolean",
            "description": "Reads the hashtag list of each of the 15 industries in addition to the overall list: 16 lists of 3 hashtags per country. A hashtag that is in several lists gives a row in each.",
            "default": false
          },
          "objectives": {
            "title": "Top ads: objectives",
            "type": "array",
            "description": "Keeps top ads with these campaign objectives: Traffic, App Installs, Conversions, Video Views, Reach, Lead Generation, Product sales.",
            "items": {
              "type": "string",
              "enum": [
                "Traffic",
                "App Installs",
                "Conversions",
                "Video Views",
                "Reach",
                "Lead Generation",
                "Product sales"
              ]
            }
          },
          "likeTiers": {
            "title": "Top ads: likes tier",
            "type": "array",
            "description": "Keeps top ads whose likes are in these tiers: 1 is the top 1-20%, 2 the top 21-40%, up to 5 for 81-100%.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "Top 1-20%",
                "Top 21-40%",
                "Top 41-60%",
                "Top 61-80%",
                "Top 81-100%"
              ]
            }
          },
          "adLanguages": {
            "title": "Top ads: ad languages",
            "type": "array",
            "description": "Keeps top ads in these languages, as TikTok's codes: en, es, ar, vi, th, de, id, pt, fr, ms, nl, ja, it, ro, zh-Hant, ko.",
            "items": {
              "type": "string"
            }
          },
          "adFormat": {
            "title": "Top ads: format",
            "enum": [
              "",
              "spark",
              "non_spark"
            ],
            "type": "string",
            "description": "Keeps Spark ads (ads made from organic posts) or non-Spark ads only. Empty keeps both.",
            "default": ""
          },
          "videoOrderBy": {
            "title": "Videos: orders",
            "type": "array",
            "description": "Chooses the orders of the trending videos list: views, engagement, six_second_view_rate. Each order is a list of its own with 4 videos. Empty means views.",
            "items": {
              "type": "string",
              "enum": [
                "views",
                "engagement",
                "six_second_view_rate"
              ],
              "enumTitles": [
                "Views",
                "Engagement rate",
                "6-second view rate"
              ]
            }
          },
          "videoContentTags": {
            "title": "Videos: content tags",
            "type": "array",
            "description": "Narrows trending videos to content tags: Beauty & Care, Fashion, Food & Beverage, Lifestyle & Leisure, Technology & Finance. Each tag is a list of its own with 4 videos.",
            "items": {
              "type": "string",
              "enum": [
                "Beauty & Care",
                "Fashion",
                "Food & Beverage",
                "Lifestyle & Leisure",
                "Technology & Finance"
              ]
            }
          },
          "videosByContentTag": {
            "title": "Videos: one list per content tag",
            "type": "boolean",
            "description": "Reads the video list of each of the five content tags in addition to the overall list: 6 lists of 4 videos per country and order.",
            "default": false
          },
          "debug": {
            "title": "Debug log",
            "type": "boolean",
            "description": "Logs every request with its size and time. For support.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}