{
  "openapi": "3.0.1",
  "info": {
    "title": "Tiktok Hashtag Analytics Scraper",
    "description": "Extract hashtag performance metrics from TikTok Creative Center. Get video views, post counts, engagement trends, audience demographics by age and country, related hashtags, top creators, and top videos. Analyze specific hashtags or discover trending ones across 7, 30, or 120 day periods.",
    "version": "1.0",
    "x-build-id": "mnCKjmZ86ViEZEGpb"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parseforge~tiktok-hashtag-analytics-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parseforge-tiktok-hashtag-analytics-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/parseforge~tiktok-hashtag-analytics-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parseforge-tiktok-hashtag-analytics-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/parseforge~tiktok-hashtag-analytics-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parseforge-tiktok-hashtag-analytics-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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "specificHashtags",
              "trendingHashtags"
            ],
            "type": "string",
            "description": "Choose 'specificHashtags' to get analytics for specific hashtags you provide, or 'trendingHashtags' to get the top trending hashtags list.",
            "default": "specificHashtags"
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Free users: Limited to 100. Paid users: Optional, max 1,000,000."
          },
          "hashtags": {
            "title": "Hashtags",
            "type": "array",
            "description": "List of hashtag names to look up (without the # symbol). Used when mode = specificHashtags.",
            "items": {
              "type": "string"
            }
          },
          "period": {
            "title": "Time Period (days)",
            "minimum": 7,
            "maximum": 120,
            "type": "integer",
            "description": "Time period for analytics data: 7 (7 days), 30 (30 days), or 120 (120 days).",
            "default": 7
          },
          "countryCode": {
            "title": "Country Code",
            "enum": [
              "US",
              "GB",
              "DE",
              "FR",
              "JP",
              "IT",
              "ES",
              "BR",
              "MX",
              "CA",
              "AU",
              "RU",
              "TR",
              "SA",
              "AE",
              "EG",
              "ID",
              "IN",
              "PH",
              "TH",
              "VN",
              "MY",
              "SG",
              "KR",
              "PL",
              "NL",
              "BE",
              "SE",
              "NO",
              "DK",
              "FI",
              "CH",
              "AT",
              "PT",
              "GR",
              "CZ",
              "RO",
              "HU",
              "AR",
              "CL",
              "CO",
              "PE",
              "ZA",
              "IL",
              "PK",
              "BD",
              "NG",
              "KE",
              "IE"
            ],
            "type": "string",
            "description": "TikTok Creative Center country. Only the codes in the dropdown are supported — picking anything else will fail the run.",
            "default": "US"
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Apify proxy used to reach TikTok Creative Center. Residential is strongly recommended — the endpoint heavily rate-limits and gates datacenter IPs, returning empty payloads instead of failing visibly."
          },
          "maxConcurrency": {
            "title": "Max Concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum number of parallel requests. Lower this if you get rate-limited.",
            "default": 5
          },
          "enrichOutput": {
            "title": "✨ Enrich each hashtag with cross-platform trend data",
            "type": "boolean",
            "description": "Toggle on to add cross-platform momentum + growth rates to every hashtag (TikTok, Google, YouTube, Amazon). Default off (free of charge). Requires an enrichment connector below.",
            "default": false
          },
          "enrichConnector": {
            "title": "✨ Enrichment Connector",
            "type": "string",
            "description": "Pick the Trends MCP (recommended) for cross-platform momentum, or DataForSEO for Google SERP rank + Amazon results on the hashtag. Click '+' to authorize a new connector if you haven't yet."
          },
          "enrichTool": {
            "title": "✨ Enrichment tool override (advanced)",
            "type": "string",
            "description": "Override the auto-picked tool name. Leave empty for auto-detect."
          },
          "mcpProxyUrlOverride": {
            "title": "🛠 MCP proxy URL override (dev/diagnostic)",
            "type": "string",
            "description": "Diagnostic only. Bypasses Apify's MCP proxy and talks directly to an MCP server URL. Leave empty for normal use."
          },
          "mcpTokenOverride": {
            "title": "🛠 MCP bearer token override (dev/diagnostic)",
            "type": "string",
            "description": "Diagnostic only. Used with the URL override above — paste the service's API key to authenticate directly. Leave empty for normal use."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}