{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Trends Scraper [NO COOKIES] ✅",
    "description": "Scrape what's trending on TikTok by country: hashtags, sounds, creators, and users. No TikTok account, API key, or login. Built for content strategists, e-commerce brands, and trend researchers who need to spot trends before they peak. Export JSON, CSV, Excel.",
    "version": "0.0",
    "x-build-id": "N1oFGbEeuV8M1hCgE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/unseenuser~TikTok-Search-Scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-unseenuser-TikTok-Search-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/unseenuser~TikTok-Search-Scraper/runs": {
      "post": {
        "operationId": "runs-sync-unseenuser-TikTok-Search-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/unseenuser~TikTok-Search-Scraper/run-sync": {
      "post": {
        "operationId": "run-sync-unseenuser-TikTok-Search-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": "STEP 1 - Pick what you want to do",
            "enum": [
              "trending_feed",
              "popular_hashtags",
              "popular_creators",
              "search_keyword",
              "search_hashtag",
              "search_users",
              "top_search",
              "song_intel"
            ],
            "type": "string",
            "description": "Pick one mode from the list. Each label ends with the Step 2 field you need to fill - the emoji at the end of the label matches the emoji on that Step 2 field. For example, 🔥 Trending Feed ends with 'fill: 🌍 Region', so after picking it you go to Step 2 and set 🌍 Region (and leave the other three Step 2 fields empty). The default mode (🔥 Trending Feed in United States) gives you a working one-click demo without touching anything else.",
            "default": "trending_feed"
          },
          "queries": {
            "title": "💬 Search terms   (only for: 🔎 Search by Keyword, 👤 Search Users, 🏆 Top Search)",
            "uniqueItems": true,
            "type": "array",
            "description": "Type any free-text search terms, one per row. Each row runs as its own separate search - so if you type 'mexican food' on one row and 'ramen recipe' on another, you get two independent sets of results side by side in your output. Good examples: 'mexican food', 'fitness coach', 'skincare 2026'. Leave this empty unless your mode is 🔎 Search by Keyword, 👤 Search Users, or 🏆 Top Search.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "hashtags": {
            "title": "#️⃣ Hashtags   (only for: #️⃣ Search by Hashtag)",
            "uniqueItems": true,
            "type": "array",
            "description": "Type one hashtag per row - with or without the leading # (both forms work). Each hashtag runs as its own separate pull of every video posted under it. For example, 'foryou' and '#skincare2026' both work. Leave this empty unless your mode is #️⃣ Search by Hashtag.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "songUrls": {
            "title": "🎵 Song URLs   (only for: 🎵 Song Intel)",
            "uniqueItems": true,
            "type": "array",
            "description": "Paste one TikTok song page URL per row. To find a song URL: open any TikTok video that uses the song, tap on the song's name at the bottom of the video, and copy the link that opens. The URL looks like 'https://www.tiktok.com/music/Original-Sound-7234567890123456789'. For each URL you paste, the Actor returns the song's details plus every video that currently uses it. Leave this empty unless your mode is 🎵 Song Intel.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "region": {
            "title": "🌍 Region   (only for: 🔥 Trending Feed, 📈 Popular Hashtags, 🌟 Popular Creators)",
            "enum": [
              "US",
              "GB",
              "CA",
              "AU",
              "IL",
              "JP",
              "KR",
              "BR",
              "IN",
              "DE",
              "FR",
              "ES",
              "IT",
              "MX",
              "ID",
              "PH",
              "VN",
              "TH",
              "TR",
              "AE",
              "SA",
              "EG",
              "ZA",
              "NG",
              "AR",
              "CL",
              "CO",
              "PE",
              "PL",
              "NL",
              "SE",
              "NO",
              "FI",
              "DK",
              "BE",
              "PT",
              "GR",
              "CZ",
              "RO",
              "MY",
              "SG",
              "PK",
              "BD",
              "HK",
              "TW",
              "RU",
              "AT",
              "CH",
              "IE",
              "NZ",
              "HU",
              "UA",
              "MA",
              "KE",
              "QA",
              "KW",
              "LB",
              "DO",
              "VE",
              "EC",
              "CR",
              "PR",
              "BG",
              "SK",
              "HR",
              "SI",
              "LT",
              "LV",
              "EE"
            ],
            "type": "string",
            "description": "Pick the country whose trends you want to pull. For example, pick 🇺🇸 United States to see what is viral in the US today, or 🇯🇵 Japan to see Japan's trending feed. This field is only used by the three region-based modes (🔥 Trending Feed, 📈 Popular Hashtags, 🌟 Popular Creators) - every other mode ignores it, so you can leave it on United States if you are not using those modes.",
            "default": "US"
          },
          "maxResults": {
            "title": "📦 Max results per query / hashtag / song   (0 = fetch everything available)",
            "minimum": 0,
            "type": "integer",
            "description": "Caps how many rows the Actor returns per input. 'Per input' means per query, per hashtag, or per song URL you provided in Step 2 - so if your mode is 🔎 Search by Keyword and you entered three queries, setting this to 50 gives you up to 50 videos for each query (up to 150 rows in total). Set this to 0 to keep pulling until there is no more data to fetch for each input - typically around 1000-2000 rows per input depending on the mode, with internal safety caps that keep a '0' run from producing a runaway bill. This is the main lever to control your cost: lower it to spend less, leave it at 0 for the maximum amount of data.",
            "default": 0
          },
          "sortBy": {
            "title": "↕️ Sort hint",
            "enum": [
              "relevance",
              "recent",
              "popular"
            ],
            "type": "string",
            "description": "A hint about how you want the results ordered: by relevance to your search, by date (most recent first), or by popularity. This hint is honored only in some modes - in modes that do not support it, the field is quietly ignored and you get the mode's natural ordering. Safe to leave on 'Relevance (default)' if you are not sure, which is what most buyers do.",
            "default": "relevance"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}