{
  "description": "Scrape Google web, news, image and video results with country/language targeting, time filters, operators and optional AI Overview or real destination URLs.",
  "properties": {
    "countryCode": {
      "default": "",
      "description": "Country for the Google domain and searcher-location (gl) signal. Leave empty for US (google.com); if Precise Location is set and this is empty, the country is derived from it.",
      "editor": "select",
      "enum": [
        "",
        "us",
        "uk",
        "ca",
        "au",
        "de",
        "fr",
        "es",
        "it",
        "br",
        "mx",
        "in",
        "jp",
        "kr",
        "nl",
        "be",
        "at",
        "ch",
        "se",
        "no",
        "dk",
        "fi",
        "pl",
        "cz",
        "pt",
        "ie",
        "nz",
        "za",
        "sg",
        "hk",
        "tw",
        "ph",
        "th",
        "id",
        "my",
        "vn",
        "ar",
        "cl",
        "co",
        "pe",
        "tr",
        "ru",
        "ua",
        "il",
        "ae",
        "sa",
        "eg",
        "ng",
        "ke"
      ],
      "enumTitles": [
        "United States (default)",
        "United States",
        "United Kingdom",
        "Canada",
        "Australia",
        "Germany",
        "France",
        "Spain",
        "Italy",
        "Brazil",
        "Mexico",
        "India",
        "Japan",
        "South Korea",
        "Netherlands",
        "Belgium",
        "Austria",
        "Switzerland",
        "Sweden",
        "Norway",
        "Denmark",
        "Finland",
        "Poland",
        "Czech Republic",
        "Portugal",
        "Ireland",
        "New Zealand",
        "South Africa",
        "Singapore",
        "Hong Kong",
        "Taiwan",
        "Philippines",
        "Thailand",
        "Indonesia",
        "Malaysia",
        "Vietnam",
        "Argentina",
        "Chile",
        "Colombia",
        "Peru",
        "Turkey",
        "Russia",
        "Ukraine",
        "Israel",
        "UAE",
        "Saudi Arabia",
        "Egypt",
        "Nigeria",
        "Kenya"
      ],
      "prefill": "us",
      "title": "Country",
      "type": "string"
    },
    "csvFriendlyOutput": {
      "default": false,
      "description": "For web search, output one organic/paid result per row instead of one SERP page per row. Other SERP features are not included in this layout.",
      "prefill": false,
      "title": "CSV friendly output (one result per row)",
      "type": "boolean"
    },
    "dateFrom": {
      "description": "Only include results published on or after this date (YYYY-MM-DD). Must be used with Date to.",
      "editor": "datepicker",
      "prefill": "",
      "title": "Date from",
      "type": "string"
    },
    "dateTo": {
      "description": "Only include results published on or before this date (YYYY-MM-DD). Must be used with Date from.",
      "editor": "datepicker",
      "prefill": "",
      "title": "Date to",
      "type": "string"
    },
    "exactPhrase": {
      "default": false,
      "description": "Wrap each query in quotes so Google matches it as an exact phrase.",
      "prefill": false,
      "title": "Exact phrase match",
      "type": "boolean"
    },
    "excludeTerms": {
      "description": "Words to exclude, comma- or space-separated, e.g. jaguar, cats.",
      "editor": "textfield",
      "prefill": "",
      "title": "Exclude terms (-word)",
      "type": "string"
    },
    "fileType": {
      "description": "Restrict results to a file type, e.g. pdf, doc, xls. Sent to Google as-is.",
      "editor": "textfield",
      "prefill": "",
      "title": "File type (filetype:)",
      "type": "string"
    },
    "includeAiOverview": {
      "default": false,
      "description": "Opt-in browser-rendered AI Overview for web searches. Slower and not guaranteed: Google may not show one, and the text is best-effort. Only applies to web search.",
      "prefill": false,
      "title": "Include AI Overview (slower, best-effort)",
      "type": "boolean"
    },
    "includeDestinationUrl": {
      "default": false,
      "description": "Add a destinationUrl field with the real destination behind Google's redirect link. Adds one lookup per organic result. Only applies to web search.",
      "prefill": false,
      "title": "Resolve real result URLs",
      "type": "boolean"
    },
    "includeExtraBoxes": {
      "default": false,
      "description": "For web search, also extract weather, time zone, currency/unit converter, stock, jobs, videos, shopping and dictionary boxes when present.",
      "prefill": false,
      "title": "Include extra info boxes",
      "type": "boolean"
    },
    "intext": {
      "description": "Restrict results to pages containing this word in the body text. Sent to Google as-is.",
      "editor": "textfield",
      "prefill": "",
      "title": "Word in text (intext:)",
      "type": "string"
    },
    "intitle": {
      "description": "Restrict results to pages containing this word in the title. Sent to Google as-is.",
      "editor": "textfield",
      "prefill": "",
      "title": "Word in title (intitle:)",
      "type": "string"
    },
    "inurl": {
      "description": "Restrict results to pages containing this word in the URL. Sent to Google as-is.",
      "editor": "textfield",
      "prefill": "",
      "title": "Word in URL (inurl:)",
      "type": "string"
    },
    "languageCode": {
      "default": "",
      "description": "Language of Google's own interface, e.g. en, de, fr, es. This does not restrict the language of the matched pages.",
      "editor": "textfield",
      "prefill": "en",
      "title": "Interface language (hl)",
      "type": "string"
    },
    "maxPagesPerQuery": {
      "default": 1,
      "description": "Result pages to crawl per query for web, news and videos. Images are a single page. Web results stop at Google's own ceiling of roughly 7-10 pages.",
      "maximum": 10,
      "minimum": 1,
      "prefill": 1,
      "title": "Max pages per query",
      "type": "integer"
    },
    "maxResults": {
      "default": 100,
      "description": "Maximum items to return per query. Web results stop at Google's own ceiling of roughly 70-100; images return 50-100 per query and news/videos paginate in pages of 10.",
      "maximum": 200,
      "minimum": 1,
      "prefill": 3,
      "title": "Max results per query",
      "type": "integer"
    },
    "queries": {
      "description": "Google search queries. Each is searched separately; blank entries are dropped with a warning.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "prefill": [
        "Hotels in NYC"
      ],
      "title": "Search Queries",
      "type": "array"
    },
    "restrictResultsCountry": {
      "default": "",
      "description": "Only return pages whose content originates from this country (Google's cr parameter), independent of Country/gl. Leave empty for no restriction.",
      "editor": "select",
      "enum": [
        "",
        "us",
        "uk",
        "ca",
        "au",
        "de",
        "fr",
        "es",
        "it",
        "br",
        "mx",
        "in",
        "jp",
        "kr",
        "nl",
        "be",
        "at",
        "ch",
        "se",
        "no",
        "dk",
        "fi",
        "pl",
        "cz",
        "pt",
        "ie",
        "nz",
        "za",
        "sg",
        "hk",
        "tw",
        "ph",
        "th",
        "id",
        "my",
        "vn",
        "ar",
        "cl",
        "co",
        "pe",
        "tr",
        "ru",
        "ua",
        "il",
        "ae",
        "sa",
        "eg",
        "ng",
        "ke"
      ],
      "enumTitles": [
        "Any country (default)",
        "United States",
        "United Kingdom",
        "Canada",
        "Australia",
        "Germany",
        "France",
        "Spain",
        "Italy",
        "Brazil",
        "Mexico",
        "India",
        "Japan",
        "South Korea",
        "Netherlands",
        "Belgium",
        "Austria",
        "Switzerland",
        "Sweden",
        "Norway",
        "Denmark",
        "Finland",
        "Poland",
        "Czech Republic",
        "Portugal",
        "Ireland",
        "New Zealand",
        "South Africa",
        "Singapore",
        "Hong Kong",
        "Taiwan",
        "Philippines",
        "Thailand",
        "Indonesia",
        "Malaysia",
        "Vietnam",
        "Argentina",
        "Chile",
        "Colombia",
        "Peru",
        "Turkey",
        "Russia",
        "Ukraine",
        "Israel",
        "UAE",
        "Saudi Arabia",
        "Egypt",
        "Nigeria",
        "Kenya"
      ],
      "prefill": "",
      "title": "Restrict results to country (cr)",
      "type": "string"
    },
    "restrictResultsLanguage": {
      "default": "",
      "description": "Only return pages written in this language, e.g. en or en,fr for either. Leave empty for no restriction.",
      "editor": "textfield",
      "prefill": "",
      "title": "Restrict results language (lr)",
      "type": "string"
    },
    "safeSearch": {
      "default": "",
      "description": "Filter explicit content (safe=). Leave empty for Google's default.",
      "editor": "select",
      "enum": [
        "",
        "active",
        "off"
      ],
      "enumTitles": [
        "Default",
        "Filter explicit results",
        "Do not filter"
      ],
      "prefill": "",
      "title": "SafeSearch",
      "type": "string"
    },
    "searchType": {
      "default": "web",
      "description": "Which Google surface to scrape: web organic results, news cards, images, or videos.",
      "editor": "select",
      "enum": [
        "web",
        "news",
        "images",
        "videos"
      ],
      "enumTitles": [
        "Web results",
        "News",
        "Images",
        "Videos"
      ],
      "prefill": "web",
      "title": "Search type",
      "type": "string"
    },
    "site": {
      "description": "Restrict results to this domain, e.g. nike.com. Every organic result is checked against it; off-domain results Google slips in are dropped.",
      "editor": "textfield",
      "prefill": "",
      "title": "Site (site: operator)",
      "type": "string"
    },
    "timePeriod": {
      "default": "",
      "description": "Filter results by relative time. Leave empty for any time.",
      "editor": "select",
      "enum": [
        "",
        "hour",
        "day",
        "week",
        "month",
        "year"
      ],
      "enumTitles": [
        "Any time",
        "Past hour",
        "Past 24 hours",
        "Past week",
        "Past month",
        "Past year"
      ],
      "prefill": "",
      "title": "Time period",
      "type": "string"
    },
    "uule": {
      "description": "Optional Google-encoded location for city-level targeting. Best-effort: country targeting is reliable, city precision is not guaranteed. Leave empty to use Country only.",
      "editor": "textfield",
      "prefill": "",
      "title": "Precise location (uule)",
      "type": "string"
    }
  },
  "required": [
    "queries"
  ],
  "schemaVersion": 1,
  "title": "Google Search Results (SERP) Scraper Input",
  "type": "object"
}
