{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Hashtag Momentum & Top Creator Tracker",
    "description": "Reads TikTok Creative Center's trending-hashtag list for any country and returns rank, post and view counts, a day-by-day momentum curve, and top creators behind each trend.",
    "version": "1.0",
    "x-build-id": "vB58tHp5oGWTEgfzB"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/dataspryva~tiktok-hashtag-momentum-and-top-creator-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-dataspryva-tiktok-hashtag-momentum-and-top-creator-tracker",
        "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/dataspryva~tiktok-hashtag-momentum-and-top-creator-tracker/runs": {
      "post": {
        "operationId": "runs-sync-dataspryva-tiktok-hashtag-momentum-and-top-creator-tracker",
        "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/dataspryva~tiktok-hashtag-momentum-and-top-creator-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-dataspryva-tiktok-hashtag-momentum-and-top-creator-tracker",
        "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": {
          "mode": {
            "title": "What to collect",
            "enum": [
              "trendingHashtags",
              "trendingVideos"
            ],
            "type": "string",
            "description": "Choose 'Trending hashtags' for TikTok's ranked hashtag charts (post/view counts, popularity curve, creators) or 'Trending videos' for TikTok's ranked video charts (views, engagement, author stats).",
            "default": "trendingHashtags"
          },
          "countries": {
            "title": "Markets",
            "type": "array",
            "description": "(mode=trendingHashtags) One or more markets to read the hashtag chart for. Each market adds its own ranked rows.",
            "items": {
              "type": "string",
              "enum": [
                "US",
                "GB",
                "CA",
                "AU",
                "DE",
                "FR",
                "IT",
                "ES",
                "BR",
                "MX",
                "AR",
                "CO",
                "JP",
                "KR",
                "ID",
                "MY",
                "PH",
                "SG",
                "TH",
                "VN",
                "TW",
                "TR",
                "SA",
                "AE",
                "IL",
                "EG",
                "ZA"
              ],
              "enumTitles": [
                "United States",
                "United Kingdom",
                "Canada",
                "Australia",
                "Germany",
                "France",
                "Italy",
                "Spain",
                "Brazil",
                "Mexico",
                "Argentina",
                "Colombia",
                "Japan",
                "South Korea",
                "Indonesia",
                "Malaysia",
                "Philippines",
                "Singapore",
                "Thailand",
                "Vietnam",
                "Taiwan",
                "Turkey",
                "Saudi Arabia",
                "United Arab Emirates",
                "Israel",
                "Egypt",
                "South Africa"
              ]
            },
            "default": [
              "US"
            ]
          },
          "periods": {
            "title": "Time Windows",
            "type": "array",
            "description": "(mode=trendingHashtags) Lookback windows in days. 7 shows recent spikes, 90 shows longer-term trends. Select one or more.",
            "items": {
              "type": "string",
              "enum": [
                "7",
                "30",
                "90"
              ],
              "enumTitles": [
                "Last 7 days",
                "Last 30 days",
                "Last 90 days"
              ]
            },
            "default": [
              "7"
            ]
          },
          "includeOverallRanking": {
            "title": "Include Overall Chart",
            "type": "boolean",
            "description": "(mode=trendingHashtags) Include each market's overall top-3 hashtag chart. Turn off to read only the industry charts selected below.",
            "default": true
          },
          "scanAllIndustries": {
            "title": "Scan All Industries",
            "type": "boolean",
            "description": "(mode=trendingHashtags) Read all 19 industry charts for every market and window. This widens coverage from 3 to up to 60 hashtags per market and window, because each industry chart is read separately.",
            "default": true
          },
          "industries": {
            "title": "Industry Charts",
            "type": "array",
            "description": "(mode=trendingHashtags) Specific industry charts to read when 'Scan all industries' is off. Ignored when scanning all industries. 19 public categories are available.",
            "items": {
              "type": "string",
              "enum": [
                "10000000000",
                "11000000000",
                "12000000000",
                "13000000000",
                "14000000000",
                "15000000000",
                "16000000000",
                "17000000000",
                "18000000000",
                "19000000000",
                "20000000000",
                "21000000000",
                "22000000000",
                "23000000000",
                "24000000000",
                "25000000000",
                "27000000000",
                "28000000000",
                "29000000000"
              ],
              "enumTitles": [
                "Education",
                "Vehicle & Transportation",
                "Baby, Kids & Maternity",
                "Financial Services",
                "Beauty & Personal Care",
                "Tech & Electronics",
                "Appliances",
                "Travel",
                "Household Products",
                "Pets",
                "Apps",
                "Home Improvement",
                "Apparel & Accessories",
                "News & Entertainment",
                "Business Services",
                "Games",
                "Food & Beverage",
                "Sports & Outdoor",
                "Health"
              ]
            },
            "default": []
          },
          "includeCreatorLeaders": {
            "title": "Add Creator Leaderboard",
            "type": "boolean",
            "description": "(mode=trendingHashtags) Add creator rows that aggregate the creators TikTok credits across the collected hashtags, sorted by how many trends they appear in.",
            "default": false
          },
          "minHashtagAppearances": {
            "title": "Minimum Trend Appearances",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "(mode=trendingHashtags, creator leaderboard only) Only list creators credited on at least this many collected hashtag rows.",
            "default": 2
          },
          "videoCountries": {
            "title": "Video Markets",
            "type": "array",
            "description": "(mode=trendingVideos) Markets with a public TikTok trending-video chart. Select one or more.",
            "items": {
              "type": "string",
              "enum": [
                "US",
                "JP",
                "VN",
                "TH",
                "ID"
              ],
              "enumTitles": [
                "United States",
                "Japan",
                "Vietnam",
                "Thailand",
                "Indonesia"
              ]
            },
            "default": [
              "US"
            ]
          },
          "videoPeriods": {
            "title": "Video Time Windows",
            "type": "array",
            "description": "(mode=trendingVideos) Windows in days for the trending-video chart: 7 for videos created in the last week, 30 for the last month.",
            "items": {
              "type": "string",
              "enum": [
                "7",
                "30"
              ],
              "enumTitles": [
                "Last 7 days",
                "Last 30 days"
              ]
            },
            "default": [
              "7"
            ]
          },
          "videoSortBy": {
            "title": "Rank Videos By",
            "enum": [
              "views",
              "engagementRate",
              "sixSecondViewRate"
            ],
            "type": "string",
            "description": "(mode=trendingVideos) Metric used for the video ranking.",
            "default": "views"
          },
          "videoOrganicOnly": {
            "title": "Organic Videos Only",
            "type": "boolean",
            "description": "(mode=trendingVideos) Rank only organic (non-promoted) videos. TikTok returns a different ranking for organic-only charts.",
            "default": false
          },
          "videoContentTags": {
            "title": "Video Content Tags",
            "type": "array",
            "description": "(mode=trendingVideos) Query TikTok's video ranking by content tag and dedupe the videos. Each selected tag is a separate ranking read; 'All tags' also includes the unfiltered chart, returning up to ~24 videos per market, window and sort instead of 4. Leave empty for the current unfiltered ranking.",
            "items": {
              "type": "string",
              "enum": [
                "all",
                "11002",
                "11003",
                "11010",
                "11013",
                "11015"
              ],
              "enumTitles": [
                "All tags (unfiltered + 5 tags)",
                "Beauty & Care",
                "Fashion",
                "Food & Beverage",
                "Lifestyle & Leisure",
                "Technology & Finance"
              ]
            },
            "default": []
          },
          "weeksBack": {
            "title": "Extra Weekly Windows",
            "minimum": 0,
            "maximum": 4,
            "type": "integer",
            "description": "(mode=trendingVideos) Add past weekly rankings by moving the chart end date back 7 days per step (0-4). Useful for comparing this week with earlier weeks.",
            "default": 0
          },
          "includeTopComments": {
            "title": "Include Top Comments",
            "type": "boolean",
            "description": "(mode=trendingVideos) Add each video's top comments and comment keywords. Each video's comments are read separately (up to 100 videos per run).",
            "default": false
          },
          "maxItems": {
            "title": "Maximum Rows",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum number of data rows to write per run. Creator rows are not counted.",
            "default": 1000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}