{
  "description": "Collect all-time stats for one or more TikTok hashtags and/or the videos underneath them. Stats mode is the cheapest; feed mode returns the public US hashtag feed; search mode returns one page of keyword search; auto combines stats and feed and adds search when the feed is short.",
  "properties": {
    "hashtags": {
      "description": "Hashtags to collect. Accepts a bare tag, #tag, or a TikTok tag URL. Case-insensitive, duplicates removed. Up to 10.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "maxItems": 10,
      "minItems": 1,
      "prefill": [
        "fitness"
      ],
      "title": "Hashtags",
      "type": "array"
    },
    "includeStatsRow": {
      "default": true,
      "description": "Emit the aggregate hashtag stats row before video rows in feed, search and auto modes. Stats mode always emits it.",
      "title": "Include Stats Row",
      "type": "boolean"
    },
    "maxHashtags": {
      "default": 10,
      "description": "Process no more than this many hashtags from the list (1–10). Extra hashtags are skipped.",
      "maximum": 10,
      "minimum": 1,
      "title": "Max Hashtags",
      "type": "integer"
    },
    "maxVideosPerHashtag": {
      "default": 30,
      "description": "Upper bound on videos per hashtag for feed, search and auto modes (0–300). Use 0 for stats only. TikTok usually returns fewer than requested: the feed is served in pages of about 30 and many tags stop after roughly 100–150 rows.",
      "maximum": 300,
      "minimum": 0,
      "prefill": 0,
      "title": "Max Videos Per Hashtag",
      "type": "integer"
    },
    "mode": {
      "default": "stats",
      "description": "What to collect. 'stats' returns one aggregate row per hashtag (cheapest). 'feed' returns the public hashtag video feed. 'search' returns one page of TikTok keyword/hashtag search results. 'auto' returns stats plus the feed and adds search results only when the feed is shorter than one page.",
      "editor": "select",
      "enum": [
        "stats",
        "feed",
        "search",
        "auto"
      ],
      "enumTitles": [
        "Stats only — video and view totals",
        "Hashtag feed — videos under the tag",
        "Search — one page of TikTok results",
        "Auto — stats + feed, search when short"
      ],
      "prefill": "stats",
      "title": "Mode",
      "type": "string"
    },
    "proxyConfiguration": {
      "description": "Optional. Leave empty to use the built-in US residential connection with automatic fallback. Set your own Apify proxy configuration here to override it. Feed mode uses the most residential bandwidth, which is billed by Apify proxy usage.",
      "editor": "proxy",
      "title": "Proxy Configuration",
      "type": "object"
    },
    "region": {
      "default": "US",
      "description": "Market used for the hashtag feed. Only the United States is verified to return a public feed; other markets are not exposed yet.",
      "editor": "select",
      "enum": [
        "US"
      ],
      "enumTitles": [
        "United States (verified)"
      ],
      "title": "Region",
      "type": "string"
    }
  },
  "required": [
    "hashtags"
  ],
  "schemaVersion": 1,
  "title": "TikTok Hashtag Stats and Video Feed Input",
  "type": "object"
}
