{
  "title": "TikTok Verified Mention Tracker input",
  "description": "List the TikTok accounts you want to monitor. The tracker finds public posts that tag or @mention each account, labels why every post matched, and lets you narrow results by date, views and order.",
  "type": "object",
  "schemaVersion": 1,
  "properties": {
    "usernames": {
      "title": "TikTok accounts to track",
      "type": "array",
      "description": "Brand or creator accounts whose mentions you want. Type a handle (nike), a handle with @ (@nike) or paste a profile link (https://www.tiktok.com/@nike). One account per line; duplicates are merged.",
      "editor": "stringList",
      "prefill": [
        "billieeilish"
      ]
    },
    "mentionFilter": {
      "title": "Which posts to keep",
      "type": "string",
      "description": "Every saved post carries a mentionType label: 'tagged' (the caption contains TikTok's clickable tag of the account), 'captionText' (the caption types @handle without a working tag) or 'searchResult' (TikTok search returned it for the handle, but the caption doesn't name the account). By default you get real mentions: tagged posts plus @handle captions.",
      "editor": "select",
      "enum": [
        "taggedOrCaption",
        "tagged",
        "all"
      ],
      "enumTitles": [
        "Real mentions: tagged or @handle in the caption",
        "Only posts with TikTok's clickable tag",
        "Every search result, labelled"
      ],
      "default": "taggedOrCaption",
      "prefill": "all"
    },
    "excludeOwnPosts": {
      "title": "Skip the account's own posts",
      "type": "boolean",
      "description": "Leave out posts published by the tracked account itself, so you only see what other people say about it.",
      "default": true,
      "prefill": true
    },
    "datePosted": {
      "title": "Posted within",
      "type": "string",
      "description": "Only look at posts published in this period.",
      "editor": "select",
      "enum": [
        "anyTime",
        "past24Hours",
        "pastWeek",
        "pastMonth",
        "past3Months",
        "past6Months"
      ],
      "enumTitles": [
        "Any time",
        "Last 24 hours",
        "Last 7 days",
        "Last 30 days",
        "Last 3 months",
        "Last 6 months"
      ],
      "default": "anyTime"
    },
    "postedAfter": {
      "title": "Posted on or after",
      "type": "string",
      "description": "Exact cut-off date. Use a date (2026-10-01) or a relative age such as '3 days' or '2 weeks'. Works together with 'Posted within'; the stricter of the two applies.",
      "editor": "datepicker",
      "dateType": "absoluteOrRelative"
    },
    "sortBy": {
      "title": "Order of results",
      "type": "string",
      "description": "How saved posts are ordered for each account. 'Most liked' and 'Newest first' look at every post found before keeping the top ones.",
      "editor": "select",
      "enum": [
        "relevance",
        "mostLiked",
        "newest"
      ],
      "enumTitles": [
        "Most relevant (TikTok's order)",
        "Most liked first",
        "Newest first"
      ],
      "default": "relevance"
    },
    "minPlayCount": {
      "title": "Minimum views",
      "type": "integer",
      "description": "Skip posts with fewer views than this. Leave empty to keep posts of any size.",
      "minimum": 0,
      "maximum": 2147483647
    },
    "searchDepth": {
      "title": "Search depth",
      "type": "string",
      "description": "'Standard' runs one search per account and reads every page TikTok returns. 'Deep' adds searches by plain handle, display name and #handle, a most-liked pass, several date ranges and the Photo tab, then merges them without duplicates. Deep finds noticeably more mentions but takes a few minutes per account. Set the run memory to at least 2048 MB for deep search.",
      "editor": "select",
      "enum": [
        "standard",
        "deep"
      ],
      "enumTitles": [
        "Standard (fast)",
        "Deep (more mentions, slower)"
      ],
      "default": "standard",
      "prefill": "standard"
    },
    "searchCountry": {
      "title": "Search from country",
      "type": "string",
      "description": "TikTok shows different posts in different countries. Pick a country to see the mentions people there get in their search results (for example Japan for Japanese posts). 'Any' uses the fastest connection. Runs with a country are slower.",
      "editor": "select",
      "enum": [
        "any",
        "AR",
        "AU",
        "AT",
        "BD",
        "BE",
        "BR",
        "CA",
        "CL",
        "CO",
        "CZ",
        "DK",
        "EG",
        "FI",
        "FR",
        "DE",
        "GR",
        "ID",
        "IE",
        "IL",
        "IT",
        "JP",
        "KE",
        "MY",
        "MX",
        "MA",
        "NL",
        "NZ",
        "NG",
        "NO",
        "PK",
        "PE",
        "PH",
        "PL",
        "PT",
        "RO",
        "SA",
        "SG",
        "ZA",
        "KR",
        "ES",
        "SE",
        "CH",
        "TW",
        "TH",
        "TR",
        "UA",
        "AE",
        "GB",
        "US",
        "VN"
      ],
      "enumTitles": [
        "Any (fastest)",
        "Argentina",
        "Australia",
        "Austria",
        "Bangladesh",
        "Belgium",
        "Brazil",
        "Canada",
        "Chile",
        "Colombia",
        "Czechia",
        "Denmark",
        "Egypt",
        "Finland",
        "France",
        "Germany",
        "Greece",
        "Indonesia",
        "Ireland",
        "Israel",
        "Italy",
        "Japan",
        "Kenya",
        "Malaysia",
        "Mexico",
        "Morocco",
        "Netherlands",
        "New Zealand",
        "Nigeria",
        "Norway",
        "Pakistan",
        "Peru",
        "Philippines",
        "Poland",
        "Portugal",
        "Romania",
        "Saudi Arabia",
        "Singapore",
        "South Africa",
        "South Korea",
        "Spain",
        "Sweden",
        "Switzerland",
        "Taiwan",
        "Thailand",
        "Turkey",
        "Ukraine",
        "United Arab Emirates",
        "United Kingdom",
        "United States",
        "Vietnam"
      ],
      "default": "any"
    },
    "followRelatedVideos": {
      "title": "Also follow related videos",
      "type": "boolean",
      "description": "After searching, open TikTok's related videos for every post that tags the account and keep related posts that also mention it (repeating a few hops). Often finds many extra tagged posts, mostly from creators who tag the account regularly. Slower, and needs at least 4096 MB of run memory.",
      "default": false,
      "prefill": false
    },
    "maxResultsPerProfile": {
      "title": "Max posts per account",
      "type": "integer",
      "description": "Stop after this many saved posts for each account. TikTok search usually yields tens to a few hundred posts per account, so very high values simply mean 'everything found'.",
      "minimum": 1,
      "maximum": 500,
      "default": 50,
      "prefill": 3
    },
    "maxItems": {
      "title": "Max posts in total",
      "type": "integer",
      "description": "Optional limit across all accounts in this run. Leave empty for no overall limit.",
      "minimum": 1,
      "maximum": 10000
    },
    "downloadVideos": {
      "title": "Save video files",
      "type": "boolean",
      "description": "Download each saved video into this run's key-value store and add a permanent link to it (downloadedVideoUrl). TikTok's own video links only play inside TikTok, so turn this on when you need playable files. It makes runs slower and uses storage.",
      "default": false,
      "prefill": false
    },
    "addPostCountry": {
      "title": "Add the country each post was made in",
      "type": "boolean",
      "description": "Look up the country TikTok records for every saved post (locationCreated, e.g. US, BR, JP). Useful for market breakdowns of who mentions you. Adds a few seconds per post.",
      "default": false,
      "prefill": false
    }
  },
  "required": [
    "usernames"
  ]
}
