{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Creative Center Scraper - Top Ads, Hashtags & Trends",
    "description": "Scrape the TikTok Creative Center: search top-performing TikTok ads by keyword, industry, objective and period, get ad details and performance analyses, trending hashtags, videos and search words, music charts and creator search insights. No login or cookies needed. Export JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "1XebJ7u6HG5cT5bPc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/clover_folktale~tiktok-creative-center-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-clover_folktale-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/clover_folktale~tiktok-creative-center-scraper/runs": {
      "post": {
        "operationId": "runs-sync-clover_folktale-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/clover_folktale~tiktok-creative-center-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-clover_folktale-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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "topAds",
              "adDetail",
              "trendingHashtags",
              "trendingVideos",
              "trendingSearches",
              "musicChart",
              "searchInsights"
            ],
            "type": "string",
            "description": "What to scrape: top ads by keyword (or the top ads for the chosen filters), the details and analyses of single ads, trending hashtags, trending videos, trending search words, the music charts, or creator search insights (topics people search for).",
            "default": "topAds"
          },
          "keywords": {
            "title": "Keywords (mode: topAds)",
            "type": "array",
            "description": "Search keywords; each keyword is a separate search and pays its own start fee. Leave empty to list the top ads for the chosen filters.",
            "items": {
              "type": "string"
            }
          },
          "adIds": {
            "title": "Ad IDs or links (mode: adDetail)",
            "type": "array",
            "description": "Ad IDs (the adId field of a topAds result) or Creative Center ad links. One start fee per run.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Region (modes: trendingHashtags, trendingVideos)",
            "enum": [
              "AR",
              "AU",
              "BR",
              "CA",
              "CO",
              "FR",
              "DE",
              "ID",
              "IT",
              "JP",
              "MY",
              "MX",
              "NL",
              "PK",
              "PH",
              "RO",
              "SA",
              "SG",
              "ZA",
              "KR",
              "ES",
              "SE",
              "TH",
              "TR",
              "AE",
              "GB",
              "US",
              "VN"
            ],
            "type": "string",
            "description": "Region of the ranking. These are the regions the Creative Center offers. Ad search (mode topAds) does not use it: the platform ranks ads across regions.",
            "default": "US"
          },
          "industry": {
            "title": "Industry (modes: topAds, trendingHashtags)",
            "enum": [
              "10000000000",
              "15000000000",
              "27000000000",
              "22000000000",
              "13000000000",
              "29000000000",
              "12000000000",
              "24000000000",
              "14000000000",
              "19000000000",
              "16000000000",
              "30000000000",
              "25000000000",
              "18000000000",
              "11000000000",
              "28000000000",
              "20000000000",
              "17000000000",
              "23000000000",
              "21000000000",
              "26000000000"
            ],
            "type": "string",
            "description": "Only ads or hashtags of this industry. Leave empty for all industries."
          },
          "adPeriod": {
            "title": "Period (mode: topAds)",
            "enum": [
              "7",
              "30",
              "180"
            ],
            "type": "string",
            "description": "Time window of the ad ranking.",
            "default": "180"
          },
          "adSort": {
            "title": "Sort by (mode: topAds)",
            "enum": [
              "for_you",
              "likes"
            ],
            "type": "string",
            "description": "Order of the ads: the Creative Center's default ranking, or by likes.",
            "default": "for_you"
          },
          "objective": {
            "title": "Ad objective (mode: topAds)",
            "enum": [
              "1",
              "2",
              "3",
              "4",
              "5",
              "8",
              "15",
              "16"
            ],
            "type": "string",
            "description": "Only ads with this campaign objective. Leave empty for all."
          },
          "adLanguage": {
            "title": "Ad language (mode: topAds)",
            "enum": [
              "en",
              "es",
              "ar",
              "vi",
              "th",
              "de",
              "id",
              "pt",
              "fr",
              "ms",
              "nl",
              "ja",
              "it",
              "ro",
              "zh-Hant",
              "ko"
            ],
            "type": "string",
            "description": "Only ads in this language. Leave empty for all."
          },
          "adFormat": {
            "title": "Ad format (mode: topAds)",
            "enum": [
              "1",
              "2"
            ],
            "type": "string",
            "description": "Only Spark Ads (boosted organic posts) or only other ads. Leave empty for both."
          },
          "adPerformance": {
            "title": "Performance rank (mode: topAds)",
            "enum": [
              "1",
              "2",
              "3",
              "4",
              "5"
            ],
            "type": "string",
            "description": "Only ads in this fifth of the ranking by performance. Leave empty for all."
          },
          "includeKeyframe": {
            "title": "Include keyframe analysis (mode: adDetail)",
            "type": "boolean",
            "description": "Add one record per ad with the second-by-second retention curve. Charged as one more result.",
            "default": false
          },
          "includePercentile": {
            "title": "Include percentile (mode: adDetail)",
            "type": "boolean",
            "description": "Add one record per ad with its click-through rate percentile among all ads. Charged as one more result.",
            "default": false
          },
          "includeInteractive": {
            "title": "Include interactive analysis (mode: adDetail)",
            "type": "boolean",
            "description": "Add one record per ad with the viewer-interaction curve and its percentile. Charged as one more result.",
            "default": false
          },
          "hashtagPeriod": {
            "title": "Period in days (mode: trendingHashtags)",
            "enum": [
              "7",
              "30",
              "90"
            ],
            "type": "string",
            "description": "Time window of the hashtag ranking.",
            "default": "7"
          },
          "videoPeriod": {
            "title": "Period (mode: trendingVideos)",
            "enum": [
              "standard",
              "longer"
            ],
            "type": "string",
            "description": "Standard or longer ranking window of the trending videos.",
            "default": "standard"
          },
          "videoSort": {
            "title": "Rank by (mode: trendingVideos)",
            "enum": [
              "views",
              "engagement",
              "completion"
            ],
            "type": "string",
            "description": "Metric the trending videos are ranked by.",
            "default": "views"
          },
          "organicOnly": {
            "title": "Organic videos only (mode: trendingVideos)",
            "type": "boolean",
            "description": "Leave out videos that are ads.",
            "default": false
          },
          "includeDetails": {
            "title": "Include details (modes: trendingHashtags, trendingVideos)",
            "type": "boolean",
            "description": "Complete every record with its detail view: audience ages, countries and recent videos for a hashtag, comments and author region for a video. Slower; the records cost the same.",
            "default": false
          },
          "chart": {
            "title": "Chart (mode: musicChart)",
            "enum": [
              "top",
              "viral"
            ],
            "type": "string",
            "description": "Which music chart to read.",
            "default": "top"
          },
          "includeAudience": {
            "title": "Include audience (mode: searchInsights)",
            "type": "boolean",
            "description": "Add one record per topic with the age, gender and location of the people searching. Charged as one more result.",
            "default": false
          },
          "includeTrend": {
            "title": "Include trend (mode: searchInsights)",
            "type": "boolean",
            "description": "Add one record per topic with its weekly trend and top countries. Charged as one more result.",
            "default": false
          },
          "includeVideos": {
            "title": "Include videos (mode: searchInsights)",
            "type": "boolean",
            "description": "Add the top videos of each topic as records (up to 20 per topic). Each video is charged as one result.",
            "default": false
          },
          "maxResults": {
            "title": "Max results per keyword or ad",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum records for each input (up to 1000; a mode without a list is one input). You are charged $0.0017 per record returned, plus a $0.005 start fee per run. Keyword search pays the start fee again for every further keyword.",
            "default": 20
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}