---
title: "Google Flights Search"
method: GET
path: "/search"
---

# Google Flights Search

`GET /search`

## Request

- Base URL: `https://www.searchapi.io/api/v1`
- URL: `https://www.searchapi.io/api/v1/search`
- Auth: one of:
  - API key in header `Authorization`
  - API key in query parameter `api_key`

## Query parameters

- `engine` 'google_flights', required
- `departure_id` string
- `arrival_id` string
- `outbound_date` string
- `return_date` string
- `hl` 'af' | 'am' | 'ar' | 'bg' | 'bn' | 'bs' | 'ca' | 'cs' | 'da' | 'de' | 'el' | 'en' | 'en-GB' | 'en-US' | 'es' | 'es-419' | 'et' | 'eu' | 'fa' | 'fi' | 'fil' | 'fr' | 'gl' | 'gu' | 'hi' | 'hr' | 'hu' | 'id' | 'is' | 'it' | 'iw' | 'ja' | 'ka' | 'km' | 'kn' | 'ko' | 'lo' | 'lt' | 'lv' | 'mk' | 'ml' | 'mn' | 'mr' | 'ms' | 'ne' | 'nl' | 'no' | 'pa' | 'pl' | 'pt-BR' | 'pt-PT' | 'ro' | 'ru' | 'si' | 'sk' | 'sl' | 'sq' | 'sr' | 'sr-Latn' | 'sv' | 'sw' | 'ta' | 'te' | 'th' | 'tr' | 'uk' | 'ur' | 'vi' | 'zh-CN' | 'zh-TW'
- `gl` 'AF' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AG' | 'AR' | 'AM' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BT' | 'BO' | 'BA' | 'BW' | 'BR' | 'VG' | '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' | 'MS' | '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'
- `currency` 'ALL' | 'DZD' | 'ARS' | 'AMD' | 'AWG' | 'AUD' | 'AZN' | 'BSD' | 'BHD' | 'BYN' | 'BMD' | 'BAM' | 'BRL' | 'GBP' | 'BGN' | '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' | 'NOK' | 'OMR' | 'PKR' | 'PAB' | 'PEN' | 'PHP' | 'PLN' | 'QAR' | 'RON' | 'RUB' | 'SAR' | 'RSD' | 'SGD' | 'ZAR' | 'KRW' | 'SEK' | 'CHF' | 'THB' | 'TRY' | 'UAH' | 'AED' | 'USD' | 'VND'
- `flight_type` 'round_trip' | 'one_way' | 'multi_city'
- `stops` 'any' | 'nonstop' | 'one_stop_or_fewer' | 'two_stops_or_fewer'
- `sort_by` 'top_flights' | 'price' | 'departure_time' | 'arrival_time' | 'duration' | 'emissions'
- `travel_class` 'economy' | 'premium_economy' | 'business' | 'first_class'
- `exclude_basic_economy` boolean
- `adults` integer
- `children` integer
- `infants_in_seat` integer
- `infants_on_lap` integer
- `max_price` integer
- `carry_on_bags` integer
- `checked_bags` integer
- `included_airlines` string
- `excluded_airlines` string
- `included_connecting_airports` string
- `excluded_connecting_airports` string
- `outbound_times` string
- `return_times` string
- `emissions` '1'
- `layover_duration_min` integer
- `layover_duration_max` integer
- `max_flight_duration` integer
- `separate_tickets` '0' | '1'
- `departure_token` string
- `booking_token` string
- `multi_city_json` string
- `show_cheapest_flights` boolean
- `show_hidden_flights` boolean
- `expanded_search` boolean

## Response `200`

Successful response

- SearchResponse
  - `search_metadata` SearchMetadata
    - `id` string, required: Unique identifier for the search request
    - `status` string, required: Status of the search request
    - `created_at` string, date-time, required: Timestamp when the search was created
    - `request_time_taken` number: Time taken to make the request in seconds
    - `parsing_time_taken` number: Time taken to parse the results in seconds
    - `total_time_taken` number: Total time taken for the search in seconds
    - `request_url` string: Google Flights URL for this search
    - `html_url` string: URL to view HTML results
    - `json_url` string: URL to view JSON results
  - `search_parameters` SearchParameters
    - `engine` string: Engine used for the search
    - `departure_id` string: Departure airport or city ID
    - `arrival_id` string: Arrival airport or city ID
    - `currency` string: Currency for prices
    - `hl` string: Language for results
    - `gl` string: Country of search
    - `outbound_date` string: Outbound flight date
    - `return_date` string: Return flight date
    - `flight_type` string: Type of flight
    - `travel_class` string: Travel class
    - `exclude_basic_economy` 'true' | 'false': Exclude Basic Economy fares, echoed as the string that was sent
    - `stops` string: Number of stops
    - `sort_by` string: Sort order
    - `adults` integer: Number of adults
    - `children` integer: Number of children
    - `infants_in_seat` integer: Number of infants with seat
    - `infants_on_lap` integer: Number of infants on lap
    - `max_price` integer: Maximum price filter
    - `carry_on_bags` integer: Number of carry-on bags
    - `checked_bags` integer: Number of checked bags
    - `included_airlines` string: Included airlines
    - `excluded_airlines` string: Excluded airlines
    - `outbound_times` string: Outbound time preferences
    - `return_times` string: Return time preferences
    - `emissions` string: Emissions filter
    - `show_hidden_flights` boolean: Show hidden flights
    - `show_cheapest_flights` boolean: Show cheapest flights
    - `expanded_search` boolean: Retrieve more results, at the cost of a longer request
    - `included_connecting_airports` string: Included connecting airports
    - `excluded_connecting_airports` string: Excluded connecting airports
    - `layover_duration_min` integer: Minimum layover duration
    - `layover_duration_max` integer: Maximum layover duration
    - `max_flight_duration` integer: Maximum flight duration
    - `separate_tickets` string: Separate tickets option
    - `departure_token` string: Departure token for pagination
    - `booking_token` string: Booking token
    - `multi_city_json` string: Multi-city flight segments
  - `error` string: Error message if no results found
  - `best_flights` Flight[]: Best flight options
    - `flights` FlightSegment[]: Individual flight segments
      - `departure_airport` AirportDetails
        - `name` string: Airport name
        - `id` string: Airport code
        - `date` string: Date in YYYY-MM-DD format
        - `time` string: Time in HH:MM format
      - `arrival_airport` AirportDetails
        - `name` string: Airport name
        - `id` string: Airport code
        - `date` string: Date in YYYY-MM-DD format
        - `time` string: Time in HH:MM format
      - `duration` integer: Flight segment duration in minutes
      - `airplane` string: Aircraft type
      - `airline` string: Airline name
      - `airline_logo` string: URL to airline logo
      - `travel_class` string: Travel class
      - `flight_number` string: Flight number
      - `ticket_also_sold_by` string[]: Other sellers of this ticket
      - `is_overnight` boolean: Whether flight is overnight
      - `is_often_delayed` boolean: Whether flight is often delayed
      - `is_different_class_business` boolean: Whether business class differs
      - `extensions` string[]: Additional information
      - `detected_extensions` DetectedExtensions: Structured amenity data for flight segments
        - `has_power_and_usb_outlets` boolean: Power and USB outlets available
        - `has_some_power_and_usb_outlets` boolean: Some power and USB outlets available
        - `has_in_seat_power_outlet` boolean: In-seat power outlet available
        - `has_some_in_seat_power_outlet` boolean: Some in-seat power outlets available
        - `has_in_seat_usb_outlet` boolean: In-seat USB outlet available
        - `has_some_in_seat_usb_outlet` boolean: Some in-seat USB outlets available
        - `has_personal_video_screen` boolean: Personal video screen available
        - `has_live_tv` boolean: Live TV available
        - `has_on_demand_video` boolean: On-demand video available
        - `has_stream_video_to_own_device` boolean: Can stream video to personal device
        - `wifi` 'available' | 'free' | 'for fee': Wi-Fi availability status
        - `seat_type` 'Average Legroom' | 'Below Average Legroom' | 'Above Average Legroom' | 'Extra Reclining' | 'Lie Flat' | 'Individual Suite' | 'Standard Recliner Seat' | 'Angled Flat Seat': Seat type classification
        - `legroom_short` string: Short legroom description
        - `legroom_long` string: Detailed legroom description
        - `carbon_emission` number, float: Carbon emissions in kg
    - `layovers` Layover[]: Layover information
      - `duration` integer: Layover duration in minutes
      - `name` string: Airport name
      - `id` string: Airport code
      - `is_overnight` boolean: Whether layover is overnight
    - `total_duration` integer: Total flight duration in minutes
    - `carbon_emissions` CarbonEmissions
      - `this_flight` integer: CO2 emissions for this flight
      - `typical_for_this_route` integer: Typical emissions for route
      - `difference_percent` integer: Percentage difference from typical
      - `lowest_route` integer: Lowest emissions option for route
    - `price` integer: Flight price
    - `type` string: Flight type
    - `extensions` string[]: Additional flight information
    - `baggage` Baggage: Carry-on and checked bag allowance for the fare
      - `carry_on_bag` 'included' | 'for fee' | 'not included': Whether a carry-on bag is included in the price, available for a fee, or not included
      - `carry_on_bags_included` integer: Number of carry-on bags included in the price for all passengers
      - `checked_bag` 'included' | 'for fee' | 'not included': Whether a checked bag is included in the price, available for a fee, or not included
      - `checked_bags_included` integer: Number of checked bags included in the price for all passengers
      - `checked_bag_max_weight_kg` integer: Maximum weight per included checked bag in kilograms
    - `airline_logo` string: URL to airline logo
    - `booking_token` string: Token for booking this specific flight
    - `departure_token` string: Token for next page of results
  - `other_flights` Flight[]: Other available flights
    - `flights` FlightSegment[]: Individual flight segments
      - `departure_airport` AirportDetails
        - `name` string: Airport name
        - `id` string: Airport code
        - `date` string: Date in YYYY-MM-DD format
        - `time` string: Time in HH:MM format
      - `arrival_airport` AirportDetails
        - `name` string: Airport name
        - `id` string: Airport code
        - `date` string: Date in YYYY-MM-DD format
        - `time` string: Time in HH:MM format
      - `duration` integer: Flight segment duration in minutes
      - `airplane` string: Aircraft type
      - `airline` string: Airline name
      - `airline_logo` string: URL to airline logo
      - `travel_class` string: Travel class
      - `flight_number` string: Flight number
      - `ticket_also_sold_by` string[]: Other sellers of this ticket
      - `is_overnight` boolean: Whether flight is overnight
      - `is_often_delayed` boolean: Whether flight is often delayed
      - `is_different_class_business` boolean: Whether business class differs
      - `extensions` string[]: Additional information
      - `detected_extensions` DetectedExtensions: Structured amenity data for flight segments
        - `has_power_and_usb_outlets` boolean: Power and USB outlets available
        - `has_some_power_and_usb_outlets` boolean: Some power and USB outlets available
        - `has_in_seat_power_outlet` boolean: In-seat power outlet available
        - `has_some_in_seat_power_outlet` boolean: Some in-seat power outlets available
        - `has_in_seat_usb_outlet` boolean: In-seat USB outlet available
        - `has_some_in_seat_usb_outlet` boolean: Some in-seat USB outlets available
        - `has_personal_video_screen` boolean: Personal video screen available
        - `has_live_tv` boolean: Live TV available
        - `has_on_demand_video` boolean: On-demand video available
        - `has_stream_video_to_own_device` boolean: Can stream video to personal device
        - `wifi` 'available' | 'free' | 'for fee': Wi-Fi availability status
        - `seat_type` 'Average Legroom' | 'Below Average Legroom' | 'Above Average Legroom' | 'Extra Reclining' | 'Lie Flat' | 'Individual Suite' | 'Standard Recliner Seat' | 'Angled Flat Seat': Seat type classification
        - `legroom_short` string: Short legroom description
        - `legroom_long` string: Detailed legroom description
        - `carbon_emission` number, float: Carbon emissions in kg
    - `layovers` Layover[]: Layover information
      - `duration` integer: Layover duration in minutes
      - `name` string: Airport name
      - `id` string: Airport code
      - `is_overnight` boolean: Whether layover is overnight
    - `total_duration` integer: Total flight duration in minutes
    - `carbon_emissions` CarbonEmissions
      - `this_flight` integer: CO2 emissions for this flight
      - `typical_for_this_route` integer: Typical emissions for route
      - `difference_percent` integer: Percentage difference from typical
      - `lowest_route` integer: Lowest emissions option for route
    - `price` integer: Flight price
    - `type` string: Flight type
    - `extensions` string[]: Additional flight information
    - `baggage` Baggage: Carry-on and checked bag allowance for the fare
      - `carry_on_bag` 'included' | 'for fee' | 'not included': Whether a carry-on bag is included in the price, available for a fee, or not included
      - `carry_on_bags_included` integer: Number of carry-on bags included in the price for all passengers
      - `checked_bag` 'included' | 'for fee' | 'not included': Whether a checked bag is included in the price, available for a fee, or not included
      - `checked_bags_included` integer: Number of checked bags included in the price for all passengers
      - `checked_bag_max_weight_kg` integer: Maximum weight per included checked bag in kilograms
    - `airline_logo` string: URL to airline logo
    - `booking_token` string: Token for booking this specific flight
    - `departure_token` string: Token for next page of results
  - `price_insights` PriceInsights
    - `lowest_price` integer: Lowest price found
    - `price_level` 'low' | 'typical' | 'high': Price level assessment
    - `typical_price_range` object
      - `low_price` integer: Low end of typical price range
      - `high_price` integer: High end of typical price range
    - `price_history` object[]: Historical price data
      - `price` integer: Price on date
      - `iso_date` string: Date in ISO 8601 format
    - `cheapest_to_book` object: Booking timing insights with estimated savings
      - `estimated_savings` integer: Estimated savings amount in the selected currency
  - `airports` AirportInfo[]: Airport information
    - `departure` AirportData[]: Departure airport options
      - `airport` object
        - `id` string: Airport code
        - `name` string: Airport name
      - `city` string: City name
      - `country` string: Country name
      - `country_code` string: Country code
      - `image` string: Image URL
      - `thumbnail` string: Thumbnail URL
    - `arrival` AirportData[]: Arrival airport options
      - `airport` object
        - `id` string: Airport code
        - `name` string: Airport name
      - `city` string: City name
      - `country` string: Country name
      - `country_code` string: Country code
      - `image` string: Image URL
      - `thumbnail` string: Thumbnail URL
  - `selected_flights` SelectedFlight[]: Selected flights when using booking_token
    - `flights` FlightSegment[]: Individual flight segments
      - `departure_airport` AirportDetails
        - `name` string: Airport name
        - `id` string: Airport code
        - `date` string: Date in YYYY-MM-DD format
        - `time` string: Time in HH:MM format
      - `arrival_airport` AirportDetails
        - `name` string: Airport name
        - `id` string: Airport code
        - `date` string: Date in YYYY-MM-DD format
        - `time` string: Time in HH:MM format
      - `duration` integer: Flight segment duration in minutes
      - `airplane` string: Aircraft type
      - `airline` string: Airline name
      - `airline_logo` string: URL to airline logo
      - `travel_class` string: Travel class
      - `flight_number` string: Flight number
      - `ticket_also_sold_by` string[]: Other sellers of this ticket
      - `is_overnight` boolean: Whether flight is overnight
      - `is_often_delayed` boolean: Whether flight is often delayed
      - `is_different_class_business` boolean: Whether business class differs
      - `extensions` string[]: Additional information
      - `detected_extensions` DetectedExtensions: Structured amenity data for flight segments
        - `has_power_and_usb_outlets` boolean: Power and USB outlets available
        - `has_some_power_and_usb_outlets` boolean: Some power and USB outlets available
        - `has_in_seat_power_outlet` boolean: In-seat power outlet available
        - `has_some_in_seat_power_outlet` boolean: Some in-seat power outlets available
        - `has_in_seat_usb_outlet` boolean: In-seat USB outlet available
        - `has_some_in_seat_usb_outlet` boolean: Some in-seat USB outlets available
        - `has_personal_video_screen` boolean: Personal video screen available
        - `has_live_tv` boolean: Live TV available
        - `has_on_demand_video` boolean: On-demand video available
        - `has_stream_video_to_own_device` boolean: Can stream video to personal device
        - `wifi` 'available' | 'free' | 'for fee': Wi-Fi availability status
        - `seat_type` 'Average Legroom' | 'Below Average Legroom' | 'Above Average Legroom' | 'Extra Reclining' | 'Lie Flat' | 'Individual Suite' | 'Standard Recliner Seat' | 'Angled Flat Seat': Seat type classification
        - `legroom_short` string: Short legroom description
        - `legroom_long` string: Detailed legroom description
        - `carbon_emission` number, float: Carbon emissions in kg
    - `layovers` Layover[]: Layover information
      - `duration` integer: Layover duration in minutes
      - `name` string: Airport name
      - `id` string: Airport code
      - `is_overnight` boolean: Whether layover is overnight
    - `total_duration` integer: Total flight duration in minutes
    - `carbon_emissions` CarbonEmissions
      - `this_flight` integer: CO2 emissions for this flight
      - `typical_for_this_route` integer: Typical emissions for route
      - `difference_percent` integer: Percentage difference from typical
      - `lowest_route` integer: Lowest emissions option for route
    - `type` string: Flight type
    - `airline_logo` string: URL to airline logo
  - `booking_options` BookingOption[]: Booking options when using booking_token
    - `book_with` string: Booking provider name
    - `fare_type` string: Fare class label (e.g., BASIC ECONOMY, MAIN CABIN, FIRST, SAVER)
    - `airline_logos` string[]: URLs to airline logos
    - `flight_numbers` string[]: Flight numbers
    - `price` integer: Total price
    - `local_prices` object[]: Prices in local currencies
      - `currency` string: Currency code
      - `price` integer: Price in currency
    - `option_title` string: Option title
    - `extensions` string[]: Additional information
    - `baggage_prices` string[]: Baggage pricing information
    - `booking_phone` string: Phone number for booking
    - `estimated_phone_service_fee` integer: Phone service fee
    - `booking_request` BookingRequest: Booking request details
      - `url` string: Booking URL
      - `post_data` string: POST request data for booking
    - `is_split_booking` boolean: Whether this is a split booking option
    - `departure` BookingOption (recursive)
    - `arrival` BookingOption (recursive)
  - `airlines` Airlines: Airline filter data from the Google Flights dropdown
    - `alliances` object[]: Airline alliances available on the route
      - `code` string: Alliance code (e.g., STAR_ALLIANCE, SKYTEAM, ONEWORLD)
      - `name` string: Alliance name
    - `airlines` object[]: Individual airlines available on the route
      - `code` string: IATA airline code
      - `name` string: Airline name
    - `hubs` object[]: Hub airports for the route
      - `code` string: Airport code
      - `name` string: Airport name
  - `baggage_allowance_links` AirlineLink[]: Links to each airline's official baggage policy page
    - `airline_code` string: IATA airline code
    - `airline` string: Airline name
    - `url` string: URL to the airline's official page
  - `passenger_assistance_links` AirlineLink[]: Links to each airline's official accessibility and special assistance page
    - `airline_code` string: IATA airline code
    - `airline` string: Airline name
    - `url` string: URL to the airline's official page
  - `cheaper_alternatives` CheaperAlternative[]: Alternative travel dates with lower prices, when available
    - `departure` string: Departure date in YYYY-MM-DD format
    - `return` string: Return date in YYYY-MM-DD format
    - `price` integer: Price for the alternative dates

## Other responses

- `400`: Validation Error. There is an issue with query parameters, such as missing required parameters or invalid values.
- `401`: Authentication Error. The API key is missing or invalid.
- `429`: Rate Limit Exceeded. The number of allowed requests has been exceeded. Consider upgrading your plan or waiting for the limit to reset.
- `500`: Server Error. Internal server error.
- `503`: Timeout. We could not retrieve results in 90 seconds.

## Changes

- **2026-11-05** `fb53a1a0eb07`: 4 info
  - added the new optional `query` request parameter `exclude_basic_economy`
  - added the optional property `best_flights/items/baggage` to the response with the `200` status
  - added the optional property `other_flights/items/baggage` to the response with the `200` status
  - added the optional property `search_parameters/exclude_basic_economy` to the response with the `200` status

[Operation history](https://skmtc.dev/searchapi/apis/google-flights-api/changes/search/get.md)

---

[API](https://skmtc.dev/searchapi/apis/google-flights-api.md) - [All operations](https://skmtc.dev/searchapi/apis/google-flights-api/llms.txt) - [OpenAPI document](https://skmtc.dev/searchapi/apis/google-flights-api/revisions/fb53a1a0eb07?raw)
