{
  "description": "Search Google Flights by route and date. Choose one-way or round-trip, filter fares, fetch return options, or collect a price calendar.",
  "properties": {
    "adults": {
      "default": 1,
      "description": "Travellers aged 12 and over (1-9).",
      "maximum": 9,
      "minimum": 1,
      "prefill": 1,
      "title": "Adults",
      "type": "integer"
    },
    "airlines": {
      "default": [],
      "description": "Two-letter IATA airline codes to keep, e.g. [\"BA\",\"AA\"]. Flights marketed by or codesharing with these airlines are kept. Empty means all airlines.",
      "editor": "stringList",
      "prefill": [],
      "title": "Only these airlines",
      "type": "array"
    },
    "arrivalTimeRange": {
      "default": "any",
      "description": "Only arrivals in this local-time window.",
      "editor": "select",
      "enum": [
        "any",
        "00-06",
        "06-12",
        "12-18",
        "18-24"
      ],
      "enumTitles": [
        "Any time",
        "00:00-06:00",
        "06:00-12:00",
        "12:00-18:00",
        "18:00-24:00"
      ],
      "prefill": "any",
      "title": "Arrival time",
      "type": "string"
    },
    "cabinClass": {
      "default": "economy",
      "description": "Cabin to search.",
      "editor": "select",
      "enum": [
        "economy",
        "premium_economy",
        "business",
        "first"
      ],
      "enumTitles": [
        "Economy",
        "Premium economy",
        "Business",
        "First"
      ],
      "prefill": "economy",
      "title": "Cabin class",
      "type": "string"
    },
    "children": {
      "default": 0,
      "description": "Travellers aged 2-11 (0-8).",
      "maximum": 8,
      "minimum": 0,
      "prefill": 0,
      "title": "Children",
      "type": "integer"
    },
    "country": {
      "default": "US",
      "description": "Country whose fares and availability Google should show.",
      "editor": "select",
      "enum": [
        "AF",
        "AL",
        "DZ",
        "AS",
        "AD",
        "AO",
        "AG",
        "AR",
        "AM",
        "AU",
        "AT",
        "AZ",
        "BS",
        "BH",
        "BD",
        "BY",
        "BE",
        "BZ",
        "BJ",
        "BT",
        "BO",
        "BA",
        "BW",
        "BR",
        "BN",
        "BG",
        "BF",
        "BI",
        "KH",
        "CM",
        "CA",
        "CV",
        "CF",
        "TD",
        "CL",
        "CN",
        "CO",
        "CG",
        "CD",
        "CK",
        "CR",
        "CI",
        "HR",
        "CU",
        "CY",
        "CZ",
        "DK",
        "DJ",
        "DM",
        "DO",
        "EC",
        "EG",
        "SV",
        "EE",
        "ET",
        "FJ",
        "FI",
        "FR",
        "GA",
        "GM",
        "GE",
        "DE",
        "GH",
        "GI",
        "GR",
        "GL",
        "GT",
        "GG",
        "GY",
        "HT",
        "HN",
        "HK",
        "HU",
        "IS",
        "IN",
        "ID",
        "IR",
        "IQ",
        "IE",
        "IM",
        "IL",
        "IT",
        "JM",
        "JP",
        "JE",
        "JO",
        "KZ",
        "KE",
        "KI",
        "KW",
        "KG",
        "LA",
        "LV",
        "LB",
        "LS",
        "LY",
        "LI",
        "LT",
        "LU",
        "MG",
        "MW",
        "MY",
        "MV",
        "ML",
        "MT",
        "MU",
        "MX",
        "FM",
        "MD",
        "MN",
        "ME",
        "MA",
        "MZ",
        "MM",
        "NA",
        "NR",
        "NP",
        "NL",
        "NZ",
        "NI",
        "NE",
        "NG",
        "NU",
        "MK",
        "NO",
        "OM",
        "PK",
        "PS",
        "PA",
        "PG",
        "PY",
        "PE",
        "PH",
        "PN",
        "PL",
        "PT",
        "PR",
        "QA",
        "RO",
        "RU",
        "RW",
        "WS",
        "SM",
        "ST",
        "SA",
        "SN",
        "RS",
        "SC",
        "SL",
        "SG",
        "SK",
        "SI",
        "SB",
        "SO",
        "ZA",
        "KR",
        "ES",
        "LK",
        "SH",
        "VC",
        "SR",
        "SE",
        "CH",
        "TW",
        "TJ",
        "TZ",
        "TH",
        "TL",
        "TG",
        "TO",
        "TT",
        "TN",
        "TR",
        "TM",
        "UG",
        "UA",
        "AE",
        "GB",
        "US",
        "UY",
        "UZ",
        "VU",
        "VE",
        "VN",
        "ZM",
        "ZW"
      ],
      "enumTitles": [
        "Afghanistan",
        "Albania",
        "Algeria",
        "American Samoa",
        "Andorra",
        "Angola",
        "Antigua & Barbuda",
        "Argentina",
        "Armenia",
        "Australia",
        "Austria",
        "Azerbaijan",
        "Bahamas",
        "Bahrain",
        "Bangladesh",
        "Belarus",
        "Belgium",
        "Belize",
        "Benin",
        "Bhutan",
        "Bolivia",
        "Bosnia & Herzegovina",
        "Botswana",
        "Brazil",
        "Brunei",
        "Bulgaria",
        "Burkina Faso",
        "Burundi",
        "Cambodia",
        "Cameroon",
        "Canada",
        "Cape Verde",
        "Central African Republic",
        "Chad",
        "Chile",
        "China",
        "Colombia",
        "Congo - Brazzaville",
        "Congo - Kinshasa",
        "Cook Islands",
        "Costa Rica",
        "Côte d’Ivoire",
        "Croatia",
        "Cuba",
        "Cyprus",
        "Czechia",
        "Denmark",
        "Djibouti",
        "Dominica",
        "Dominican Republic",
        "Ecuador",
        "Egypt",
        "El Salvador",
        "Estonia",
        "Ethiopia",
        "Fiji",
        "Finland",
        "France",
        "Gabon",
        "Gambia",
        "Georgia",
        "Germany",
        "Ghana",
        "Gibraltar",
        "Greece",
        "Greenland",
        "Guatemala",
        "Guernsey",
        "Guyana",
        "Haiti",
        "Honduras",
        "Hong Kong",
        "Hungary",
        "Iceland",
        "India",
        "Indonesia",
        "Iran",
        "Iraq",
        "Ireland",
        "Isle of Man",
        "Israel",
        "Italy",
        "Jamaica",
        "Japan",
        "Jersey",
        "Jordan",
        "Kazakhstan",
        "Kenya",
        "Kiribati",
        "Kuwait",
        "Kyrgyzstan",
        "Laos",
        "Latvia",
        "Lebanon",
        "Lesotho",
        "Libya",
        "Liechtenstein",
        "Lithuania",
        "Luxembourg",
        "Madagascar",
        "Malawi",
        "Malaysia",
        "Maldives",
        "Mali",
        "Malta",
        "Mauritius",
        "Mexico",
        "Micronesia",
        "Moldova",
        "Mongolia",
        "Montenegro",
        "Morocco",
        "Mozambique",
        "Myanmar (Burma)",
        "Namibia",
        "Nauru",
        "Nepal",
        "Netherlands",
        "New Zealand",
        "Nicaragua",
        "Niger",
        "Nigeria",
        "Niue",
        "North Macedonia",
        "Norway",
        "Oman",
        "Pakistan",
        "Palestine",
        "Panama",
        "Papua New Guinea",
        "Paraguay",
        "Peru",
        "Philippines",
        "Pitcairn Islands",
        "Poland",
        "Portugal",
        "Puerto Rico",
        "Qatar",
        "Romania",
        "Russia",
        "Rwanda",
        "Samoa",
        "San Marino",
        "São Tomé & Príncipe",
        "Saudi Arabia",
        "Senegal",
        "Serbia",
        "Seychelles",
        "Sierra Leone",
        "Singapore",
        "Slovakia",
        "Slovenia",
        "Solomon Islands",
        "Somalia",
        "South Africa",
        "South Korea",
        "Spain",
        "Sri Lanka",
        "St. Helena",
        "St. Vincent & Grenadines",
        "Suriname",
        "Sweden",
        "Switzerland",
        "Taiwan",
        "Tajikistan",
        "Tanzania",
        "Thailand",
        "Timor-Leste",
        "Togo",
        "Tonga",
        "Trinidad & Tobago",
        "Tunisia",
        "Türkiye",
        "Turkmenistan",
        "Uganda",
        "Ukraine",
        "United Arab Emirates",
        "United Kingdom",
        "United States",
        "Uruguay",
        "Uzbekistan",
        "Vanuatu",
        "Venezuela",
        "Vietnam",
        "Zambia",
        "Zimbabwe"
      ],
      "prefill": "US",
      "title": "Country",
      "type": "string"
    },
    "currency": {
      "default": "USD",
      "description": "Currency for every price.",
      "editor": "select",
      "enum": [
        "ALL",
        "DZD",
        "ARS",
        "AMD",
        "AWG",
        "AUD",
        "AZN",
        "BSD",
        "BHD",
        "BYN",
        "BMD",
        "BAM",
        "BRL",
        "GBP",
        "CAD",
        "XPF",
        "CLP",
        "CNY",
        "COP",
        "CRC",
        "CUP",
        "CZK",
        "DKK",
        "DOP",
        "EGP",
        "EUR",
        "GEL",
        "HKD",
        "HUF",
        "ISK",
        "INR",
        "IDR",
        "IRR",
        "ILS",
        "JMD",
        "JPY",
        "JOD",
        "KZT",
        "KWD",
        "LBP",
        "MKD",
        "MYR",
        "MXN",
        "MDL",
        "MAD",
        "TWD",
        "NZD",
        "NGN",
        "NOK",
        "OMR",
        "PKR",
        "PAB",
        "PEN",
        "PHP",
        "PLN",
        "QAR",
        "RON",
        "RUB",
        "SAR",
        "RSD",
        "SGD",
        "ZAR",
        "KRW",
        "SEK",
        "CHF",
        "THB",
        "TRY",
        "UAH",
        "AED",
        "USD",
        "VND"
      ],
      "enumTitles": [
        "Albanian Lek",
        "Algerian Dinar",
        "Argentine Peso",
        "Armenian Dram",
        "Aruban Florin",
        "Australian Dollar",
        "Azerbaijani Manat",
        "Bahamian Dollar",
        "Bahraini Dinar",
        "Belarusian Ruble",
        "Bermudan Dollar",
        "Bosnia-Herzegovina Convertible Mark",
        "Brazilian Real",
        "British Pound",
        "Canadian Dollar",
        "CFP Franc",
        "Chilean Peso",
        "Chinese Yuan",
        "Colombian Peso",
        "Costa Rican Colón",
        "Cuban Peso",
        "Czech Koruna",
        "Danish Krone",
        "Dominican Peso",
        "Egyptian Pound",
        "Euro",
        "Georgian Lari",
        "Hong Kong Dollar",
        "Hungarian Forint",
        "Icelandic Króna",
        "Indian Rupee",
        "Indonesian Rupiah",
        "Iranian Rial",
        "Israeli New Shekel",
        "Jamaican Dollar",
        "Japanese Yen",
        "Jordanian Dinar",
        "Kazakhstani Tenge",
        "Kuwaiti Dinar",
        "Lebanese Pound",
        "Macedonian Denar",
        "Malaysian Ringgit",
        "Mexican Peso",
        "Moldovan Leu",
        "Moroccan Dirham",
        "New Taiwan Dollar",
        "New Zealand Dollar",
        "Nigerian Naira",
        "Norwegian Krone",
        "Omani Rial",
        "Pakistani Rupee",
        "Panamanian Balboa",
        "Peruvian Sol",
        "Philippine Peso",
        "Polish Zloty",
        "Qatari Riyal",
        "Romanian Leu",
        "Russian Ruble",
        "Saudi Riyal",
        "Serbian Dinar",
        "Singapore Dollar",
        "South African Rand",
        "South Korean Won",
        "Swedish Krona",
        "Swiss Franc",
        "Thai Baht",
        "Turkish Lira",
        "Ukrainian Hryvnia",
        "United Arab Emirates Dirham",
        "US Dollar",
        "Vietnamese Dong"
      ],
      "prefill": "USD",
      "title": "Currency",
      "type": "string"
    },
    "departureTimeRange": {
      "default": "any",
      "description": "Only departures in this local-time window.",
      "editor": "select",
      "enum": [
        "any",
        "00-06",
        "06-12",
        "12-18",
        "18-24"
      ],
      "enumTitles": [
        "Any time",
        "00:00-06:00",
        "06:00-12:00",
        "12:00-18:00",
        "18:00-24:00"
      ],
      "prefill": "any",
      "title": "Departure time",
      "type": "string"
    },
    "destinationAirport": {
      "default": "LHR",
      "description": "Three-letter IATA airport or city code, e.g. LHR, HND, LON. One code per search; use `searches` for alternate airports.",
      "editor": "textfield",
      "prefill": "LHR",
      "title": "Destination airport or city",
      "type": "string"
    },
    "excludeAirlines": {
      "default": [],
      "description": "Two-letter IATA airline codes to remove, e.g. [\"FR\"].",
      "editor": "stringList",
      "prefill": [],
      "title": "Exclude these airlines",
      "type": "array"
    },
    "includePriceInsights": {
      "default": true,
      "description": "Add Google's current, typical and historical price range when available.",
      "prefill": false,
      "title": "Include price insights",
      "type": "boolean"
    },
    "infants": {
      "default": 0,
      "description": "Infants under 2 travelling on an adult lap (0-8). Cannot exceed the number of adults.",
      "maximum": 8,
      "minimum": 0,
      "prefill": 0,
      "title": "Infants on lap",
      "type": "integer"
    },
    "infantsInSeat": {
      "default": 0,
      "description": "Infants under 2 travelling in their own seat (0-8).",
      "maximum": 8,
      "minimum": 0,
      "prefill": 0,
      "title": "Infants in a seat",
      "type": "integer"
    },
    "language": {
      "default": "en",
      "description": "Language Google Flights uses for airport and airline names.",
      "editor": "select",
      "enum": [
        "af",
        "bs",
        "ca",
        "cs",
        "da",
        "de",
        "et",
        "en-GB",
        "en-US",
        "es",
        "es-419",
        "eu",
        "fil",
        "fr",
        "gl",
        "hr",
        "id",
        "is",
        "it",
        "sw",
        "lv",
        "lt",
        "hu",
        "ms",
        "nl",
        "no",
        "pl",
        "pt-BR",
        "pt-PT",
        "ro",
        "sq",
        "sk",
        "sl",
        "sr-Latn",
        "fi",
        "sv",
        "vi",
        "tr",
        "el",
        "bg",
        "mk",
        "mn",
        "ru",
        "sr",
        "uk",
        "ka",
        "iw",
        "ur",
        "ar",
        "fa",
        "am",
        "ne",
        "mr",
        "hi",
        "as",
        "bn",
        "pa",
        "gu",
        "or",
        "ta",
        "te",
        "kn",
        "ml",
        "si",
        "th",
        "lo",
        "km",
        "ko",
        "zh-HK",
        "ja",
        "zh-CN",
        "zh-TW",
        "en"
      ],
      "enumTitles": [
        "Afrikaans",
        "Bosnian",
        "Catalan",
        "Czech",
        "Danish",
        "German",
        "Estonian",
        "English (United Kingdom)",
        "English (United States)",
        "Spanish (Spain)",
        "Spanish (Latin America)",
        "Basque",
        "Filipino",
        "French",
        "Galician",
        "Croatian",
        "Indonesian",
        "Icelandic",
        "Italian",
        "Swahili",
        "Latvian",
        "Lithuanian",
        "Hungarian",
        "Malay",
        "Dutch",
        "Norwegian",
        "Polish",
        "Portuguese (Brazil)",
        "Portuguese (Portugal)",
        "Romanian",
        "Albanian",
        "Slovak",
        "Slovenian",
        "Serbian (Latin)",
        "Finnish",
        "Swedish",
        "Vietnamese",
        "Turkish",
        "Greek",
        "Bulgarian",
        "Macedonian",
        "Mongolian",
        "Russian",
        "Serbian (Cyrillic)",
        "Ukrainian",
        "Georgian",
        "Hebrew",
        "Urdu",
        "Arabic",
        "Persian",
        "Amharic",
        "Nepali",
        "Marathi",
        "Hindi",
        "Assamese",
        "Bangla",
        "Punjabi",
        "Gujarati",
        "Odia",
        "Tamil",
        "Telugu",
        "Kannada",
        "Malayalam",
        "Sinhala",
        "Thai",
        "Lao",
        "Khmer",
        "Korean",
        "Chinese (Hong Kong)",
        "Japanese",
        "Chinese (Simplified)",
        "Chinese (Traditional)",
        "English"
      ],
      "prefill": "en",
      "title": "Language",
      "type": "string"
    },
    "lessEmissions": {
      "default": false,
      "description": "Keep itineraries Google marks as producing less CO2 than typical for the route.",
      "prefill": false,
      "title": "Lower-emission flights only",
      "type": "boolean"
    },
    "maxDurationMinutes": {
      "description": "Drop itineraries longer than this, including layovers.",
      "maximum": 4320,
      "minimum": 30,
      "title": "Maximum total duration (minutes)",
      "type": "integer"
    },
    "maxPrice": {
      "description": "Drop fares above this price, in the chosen currency.",
      "maximum": 100000,
      "minimum": 0,
      "title": "Maximum price",
      "type": "integer"
    },
    "maxResults": {
      "default": 61,
      "description": "Maximum number of flight or calendar rows to return; in calendar mode it also caps the number of days.",
      "maximum": 200,
      "minimum": 1,
      "prefill": 1,
      "title": "Maximum results",
      "type": "integer"
    },
    "maxStops": {
      "default": "any",
      "description": "Largest number of stops allowed on any leg.",
      "editor": "select",
      "enum": [
        "any",
        "nonstop",
        "one_stop",
        "two_or_fewer"
      ],
      "enumTitles": [
        "Any",
        "Nonstop only",
        "One stop or fewer",
        "Two stops or fewer"
      ],
      "prefill": "any",
      "title": "Maximum stops",
      "type": "string"
    },
    "minPrice": {
      "description": "Drop fares below this price, in the chosen currency.",
      "maximum": 100000,
      "minimum": 0,
      "title": "Minimum price",
      "type": "integer"
    },
    "mode": {
      "default": "search",
      "description": "Search flights, or collect the cheapest fare for each date around your departure date.",
      "editor": "select",
      "enum": [
        "search",
        "calendar"
      ],
      "enumTitles": [
        "Search flights",
        "Price calendar"
      ],
      "prefill": "search",
      "title": "Mode",
      "type": "string"
    },
    "originAirport": {
      "default": "JFK",
      "description": "Three-letter IATA airport or city code, e.g. JFK, LHR, NYC. One code per search; use `searches` for alternate airports.",
      "editor": "textfield",
      "prefill": "JFK",
      "title": "Origin airport or city",
      "type": "string"
    },
    "outboundDate": {
      "description": "Departure date in YYYY-MM-DD format. Leave empty to use 30 days from today (UTC); the chosen date is logged.",
      "editor": "textfield",
      "prefill": "2026-12-10",
      "title": "Departure date",
      "type": "string"
    },
    "priceAlertThreshold": {
      "description": "When set, add a priceBelowThreshold flag to every fare in the chosen currency.",
      "maximum": 100000,
      "minimum": 0,
      "title": "Price alert threshold",
      "type": "number"
    },
    "priceGraphDays": {
      "default": 61,
      "description": "Number of calendar days to return in price-calendar mode (1-61), starting on the departure date; also capped by maxResults.",
      "maximum": 61,
      "minimum": 1,
      "prefill": 1,
      "title": "Price calendar days",
      "type": "integer"
    },
    "returnDate": {
      "description": "Return date in YYYY-MM-DD format. Leave empty for a one-way search.",
      "editor": "textfield",
      "title": "Return date",
      "type": "string"
    },
    "returnOptionsPerOutbound": {
      "default": 5,
      "description": "How many return flights to attach to each selected outbound.",
      "maximum": 20,
      "minimum": 1,
      "prefill": 5,
      "title": "Return options per outbound",
      "type": "integer"
    },
    "returnOptionsTop": {
      "default": 0,
      "description": "For round trips, fetch return flights for this many top outbound options. 0 turns this off.",
      "maximum": 20,
      "minimum": 0,
      "prefill": 0,
      "title": "Return options for top outbounds",
      "type": "integer"
    },
    "searches": {
      "description": "Optional list of searches to run in one go. Each item needs originAirport, destinationAirport, outboundDate and an optional returnDate. Up to 20.",
      "editor": "json",
      "items": {
        "properties": {
          "destinationAirport": {
            "description": "Destination IATA airport or city code (one per search).",
            "title": "Destination airport or city",
            "type": "string"
          },
          "originAirport": {
            "description": "Origin IATA airport or city code (one per search).",
            "title": "Origin airport or city",
            "type": "string"
          },
          "outboundDate": {
            "description": "Departure date YYYY-MM-DD.",
            "title": "Departure date",
            "type": "string"
          },
          "returnDate": {
            "description": "Return date YYYY-MM-DD; leave empty for one-way.",
            "title": "Return date",
            "type": "string"
          }
        },
        "required": [
          "originAirport",
          "destinationAirport"
        ],
        "type": "object"
      },
      "title": "Additional searches",
      "type": "array"
    },
    "sortBy": {
      "default": "top",
      "description": "How to order the returned flights.",
      "editor": "select",
      "enum": [
        "top",
        "cheapest",
        "fastest",
        "earliestDeparture",
        "latestDeparture",
        "lowestEmissions"
      ],
      "enumTitles": [
        "Google's top picks",
        "Cheapest first",
        "Fastest first",
        "Earliest departure",
        "Latest departure",
        "Lowest emissions"
      ],
      "prefill": "top",
      "title": "Sort results by",
      "type": "string"
    }
  },
  "required": [
    "mode"
  ],
  "schemaVersion": 1,
  "title": "Google Flights Fare & Itinerary Filter Scraper Input",
  "type": "object"
}
