{
  "description": "Expand seed keywords into long-tail Google autocomplete suggestions with eight expansion modes, 134 markets, 78 languages and optional recursion.",
  "properties": {
    "containsKeyword": {
      "description": "Keep only suggestions containing this substring (case-insensitive). Prefix with `!` to exclude matches instead.",
      "editor": "textfield",
      "title": "Must contain",
      "type": "string"
    },
    "country": {
      "default": "US",
      "description": "Google market used for the `gl` parameter. Changes ranking and local phrasing. 134 markets were verified against the live endpoint; the legacy `ALL` value maps to US.",
      "editor": "select",
      "enum": [
        "US",
        "GB",
        "CA",
        "AU",
        "NZ",
        "IE",
        "DE",
        "FR",
        "ES",
        "IT",
        "NL",
        "BE",
        "AT",
        "CH",
        "PT",
        "GR",
        "CZ",
        "PL",
        "SE",
        "NO",
        "DK",
        "FI",
        "HU",
        "RO",
        "BG",
        "HR",
        "SK",
        "SI",
        "EE",
        "LV",
        "LT",
        "LU",
        "MT",
        "CY",
        "IS",
        "LI",
        "MC",
        "AD",
        "SM",
        "JP",
        "KR",
        "CN",
        "TW",
        "HK",
        "MO",
        "IN",
        "PK",
        "BD",
        "LK",
        "NP",
        "AF",
        "ID",
        "TH",
        "VN",
        "PH",
        "MY",
        "SG",
        "BN",
        "MM",
        "KH",
        "LA",
        "TL",
        "BR",
        "MX",
        "AR",
        "CL",
        "CO",
        "PE",
        "VE",
        "EC",
        "BO",
        "PY",
        "UY",
        "GT",
        "CR",
        "PA",
        "DO",
        "PR",
        "CU",
        "SV",
        "HN",
        "NI",
        "JM",
        "TT",
        "BB",
        "RU",
        "TR",
        "UA",
        "BY",
        "KZ",
        "UZ",
        "AZ",
        "AM",
        "GE",
        "MD",
        "RS",
        "BA",
        "MK",
        "AL",
        "ME",
        "XK",
        "ZA",
        "NG",
        "EG",
        "MA",
        "DZ",
        "TN",
        "KE",
        "GH",
        "ET",
        "UG",
        "TZ",
        "RW",
        "ZW",
        "SN",
        "CI",
        "CM",
        "MZ",
        "AO",
        "ZM",
        "AE",
        "SA",
        "IL",
        "QA",
        "KW",
        "BH",
        "OM",
        "JO",
        "LB",
        "SY",
        "IQ",
        "IR",
        "YE",
        "PS",
        "ALL"
      ],
      "enumTitles": [
        "United States",
        "United Kingdom",
        "Canada",
        "Australia",
        "New Zealand",
        "Ireland",
        "Germany",
        "France",
        "Spain",
        "Italy",
        "Netherlands",
        "Belgium",
        "Austria",
        "Switzerland",
        "Portugal",
        "Greece",
        "Czechia",
        "Poland",
        "Sweden",
        "Norway",
        "Denmark",
        "Finland",
        "Hungary",
        "Romania",
        "Bulgaria",
        "Croatia",
        "Slovakia",
        "Slovenia",
        "Estonia",
        "Latvia",
        "Lithuania",
        "Luxembourg",
        "Malta",
        "Cyprus",
        "Iceland",
        "Liechtenstein",
        "Monaco",
        "Andorra",
        "San Marino",
        "Japan",
        "South Korea",
        "China",
        "Taiwan",
        "Hong Kong",
        "Macao",
        "India",
        "Pakistan",
        "Bangladesh",
        "Sri Lanka",
        "Nepal",
        "Afghanistan",
        "Indonesia",
        "Thailand",
        "Vietnam",
        "Philippines",
        "Malaysia",
        "Singapore",
        "Brunei",
        "Myanmar",
        "Cambodia",
        "Laos",
        "Timor-Leste",
        "Brazil",
        "Mexico",
        "Argentina",
        "Chile",
        "Colombia",
        "Peru",
        "Venezuela",
        "Ecuador",
        "Bolivia",
        "Paraguay",
        "Uruguay",
        "Guatemala",
        "Costa Rica",
        "Panama",
        "Dominican Republic",
        "Puerto Rico",
        "Cuba",
        "El Salvador",
        "Honduras",
        "Nicaragua",
        "Jamaica",
        "Trinidad and Tobago",
        "Barbados",
        "Russia",
        "Turkey",
        "Ukraine",
        "Belarus",
        "Kazakhstan",
        "Uzbekistan",
        "Azerbaijan",
        "Armenia",
        "Georgia",
        "Moldova",
        "Serbia",
        "Bosnia and Herzegovina",
        "North Macedonia",
        "Albania",
        "Montenegro",
        "Kosovo",
        "South Africa",
        "Nigeria",
        "Egypt",
        "Morocco",
        "Algeria",
        "Tunisia",
        "Kenya",
        "Ghana",
        "Ethiopia",
        "Uganda",
        "Tanzania",
        "Rwanda",
        "Zimbabwe",
        "Senegal",
        "Cote d'Ivoire",
        "Cameroon",
        "Mozambique",
        "Angola",
        "Zambia",
        "United Arab Emirates",
        "Saudi Arabia",
        "Israel",
        "Qatar",
        "Kuwait",
        "Bahrain",
        "Oman",
        "Jordan",
        "Lebanon",
        "Syria",
        "Iraq",
        "Iran",
        "Yemen",
        "Palestine",
        "All markets (legacy — maps to US)"
      ],
      "prefill": "US",
      "title": "Country (gl)",
      "type": "string"
    },
    "dedupeAcrossSeeds": {
      "default": false,
      "description": "Emit a phrase only once per run. Off keeps every seed complete; on removes overlaps between seeds.",
      "prefill": false,
      "title": "Dedupe across seeds",
      "type": "boolean"
    },
    "expansionDepth": {
      "default": "0",
      "description": "Re-query the first 15 discovered suggestions to go one or two levels deeper. Off for the cheapest run.",
      "editor": "select",
      "enum": [
        "0",
        "1",
        "2"
      ],
      "enumTitles": [
        "Off (mode only)",
        "One extra level (top 15 suggestions)",
        "Two extra levels"
      ],
      "prefill": "0",
      "title": "Recursion depth",
      "type": "string"
    },
    "includeIntent": {
      "default": true,
      "description": "Add a deterministic intent tag (question, comparison, local, transactional, commercial, informational) where a language vocabulary matches.",
      "prefill": false,
      "title": "Add intent tags",
      "type": "boolean"
    },
    "keywords": {
      "default": [
        "python tutorial"
      ],
      "description": "One or more seeds. 1-3 word seeds return the most suggestions. Each seed is expanded according to `mode`.",
      "editor": "stringList",
      "prefill": [
        "python tutorial"
      ],
      "title": "Seed keywords",
      "type": "array"
    },
    "language": {
      "default": "en",
      "description": "Language used for the `hl` parameter and for the locale-aware question and modifier words. 19 languages have native expansion vocabularies; the rest fall back to English modifiers.",
      "editor": "select",
      "enum": [
        "en",
        "es",
        "fr",
        "de",
        "it",
        "pt",
        "nl",
        "pl",
        "sv",
        "no",
        "da",
        "fi",
        "cs",
        "el",
        "hu",
        "ro",
        "bg",
        "hr",
        "sk",
        "sl",
        "et",
        "lv",
        "lt",
        "ga",
        "is",
        "mt",
        "ru",
        "uk",
        "be",
        "sr",
        "bs",
        "mk",
        "sq",
        "ar",
        "tr",
        "he",
        "fa",
        "ur",
        "ku",
        "ja",
        "ko",
        "zh-CN",
        "zh-TW",
        "hi",
        "bn",
        "ta",
        "te",
        "ml",
        "mr",
        "gu",
        "kn",
        "pa",
        "ne",
        "si",
        "my",
        "id",
        "th",
        "vi",
        "ms",
        "tl",
        "km",
        "lo",
        "sw",
        "am",
        "ha",
        "yo",
        "ig",
        "zu",
        "xh",
        "af",
        "az",
        "kk",
        "uz",
        "ky",
        "tg",
        "mn",
        "ka",
        "hy"
      ],
      "enumTitles": [
        "English",
        "Spanish",
        "French",
        "German",
        "Italian",
        "Portuguese",
        "Dutch",
        "Polish",
        "Swedish",
        "Norwegian",
        "Danish",
        "Finnish",
        "Czech",
        "Greek",
        "Hungarian",
        "Romanian",
        "Bulgarian",
        "Croatian",
        "Slovak",
        "Slovenian",
        "Estonian",
        "Latvian",
        "Lithuanian",
        "Irish",
        "Icelandic",
        "Maltese",
        "Russian",
        "Ukrainian",
        "Belarusian",
        "Serbian",
        "Bosnian",
        "Macedonian",
        "Albanian",
        "Arabic",
        "Turkish",
        "Hebrew",
        "Persian",
        "Urdu",
        "Kurdish",
        "Japanese",
        "Korean",
        "Chinese (Simplified)",
        "Chinese (Traditional)",
        "Hindi",
        "Bengali",
        "Tamil",
        "Telugu",
        "Malayalam",
        "Marathi",
        "Gujarati",
        "Kannada",
        "Punjabi",
        "Nepali",
        "Sinhala",
        "Burmese",
        "Indonesian",
        "Thai",
        "Vietnamese",
        "Malay",
        "Tagalog",
        "Khmer",
        "Lao",
        "Swahili",
        "Amharic",
        "Hausa",
        "Yoruba",
        "Igbo",
        "Zulu",
        "Xhosa",
        "Afrikaans",
        "Azerbaijani",
        "Kazakh",
        "Uzbek",
        "Kyrgyz",
        "Tajik",
        "Mongolian",
        "Georgian",
        "Armenian"
      ],
      "prefill": "en",
      "title": "Language (hl)",
      "type": "string"
    },
    "maxItems": {
      "default": 5000,
      "description": "Hard cap on dataset records across all seeds and sources. Flat mode counts suggestions; tree mode counts one record per seed/source.",
      "maximum": 50000,
      "minimum": 1,
      "prefill": 3,
      "title": "Max records",
      "type": "integer"
    },
    "maxLength": {
      "description": "Drop suggestions longer than this many characters.",
      "maximum": 500,
      "minimum": 1,
      "title": "Max characters",
      "type": "integer"
    },
    "maxSuggestionsPerSeed": {
      "description": "Cap on suggestions collected for one seed, applied after all expansion queries have run. Defaults to 2,000 when omitted (legacy maxItemsPerKeyword is honoured).",
      "maximum": 10000,
      "minimum": 1,
      "prefill": 3,
      "title": "Max suggestions per seed",
      "type": "integer"
    },
    "minLength": {
      "description": "Drop suggestions shorter than this many characters.",
      "maximum": 200,
      "minimum": 1,
      "title": "Min characters",
      "type": "integer"
    },
    "mode": {
      "default": "all",
      "description": "How each seed is expanded. `all` runs every strategy; `exact` queries only the seed; `alphabet` adds a-z and 0-9 before and after; `questions` uses locale question words; `modifiers` adds prepositions and buyer-intent words; `related` adds trailing-space, wildcard, local, review and price variants.",
      "editor": "select",
      "enum": [
        "all",
        "exact",
        "alphabet",
        "questions",
        "modifiers",
        "prepositions",
        "comparisons",
        "related"
      ],
      "enumTitles": [
        "All strategies (deepest)",
        "Exact seed only",
        "Alphabet + digits (a-z, 0-9, prefix and suffix)",
        "Question words (locale-aware)",
        "Modifiers (prepositions + buyer intent)",
        "Prepositions only",
        "Comparisons (vs / or / versus)",
        "Related (wildcard, near me, review, price)"
      ],
      "prefill": "exact",
      "title": "Expansion mode",
      "type": "string"
    },
    "outputFormat": {
      "default": "flat",
      "description": "`flat` emits one row per suggestion. `tree` emits one row per seed and source with a nested suggestions array (the legacy shape).",
      "editor": "select",
      "enum": [
        "flat",
        "tree"
      ],
      "enumTitles": [
        "Flat (one row per suggestion)",
        "Tree (nested per seed)"
      ],
      "prefill": "flat",
      "title": "Output shape",
      "type": "string"
    },
    "source": {
      "default": "web",
      "description": "Which Google autocomplete surface to query: web, YouTube or Shopping. `all` runs all three and multiplies the request count.",
      "editor": "select",
      "enum": [
        "web",
        "youtube",
        "shopping",
        "all"
      ],
      "enumTitles": [
        "Google web",
        "YouTube",
        "Google Shopping",
        "All three surfaces"
      ],
      "prefill": "web",
      "title": "Google surface",
      "type": "string"
    }
  },
  "required": [
    "keywords"
  ],
  "schemaVersion": 1,
  "title": "Google Autocomplete Keyword Expansion Scraper Input",
  "type": "object"
}
