Google Flights Deals API

Our Google Flight Deals API allows you to scrape flight deals from Google Flight Deals.


The API endpoint is https://serpapi.com/search?engine=google_flights_deals

Head to the playground for a live and interactive demo.

API Parameters

Search Query

departure_id

Optional

Parameter defines the departure airport code or location kgmid.
An airport code is an uppercase 3-letter code. You can search for it using our Google Flights Autocomplete API or IATA.
For example, CDG is Paris Charles de Gaulle Airport and AUS is Austin-Bergstrom International Airport.
A location kgmid is a string that starts with /m/ or /g/. You can search for a location on Wikidata and use its "Freebase ID" as the location kgmid. For example, /m/0vzm is the location kgmid for Austin, TX.
You can specify multiple departure airports by separating them with a comma. For example, CDG,ORY,/m/04jpl.

Localization

gl

Optional

Parameter defines the country to use for the Google Flights Deals search. It's a two-letter country code. (e.g., us for the United States, uk for United Kingdom, or fr for France) Head to the Google countries page for a full list of supported Google countries.

hl

Optional

Parameter defines the language to use for the Google Flights Deals search. It's a two-letter language code. (e.g., en for English, es for Spanish, or fr for French). Head to the Google languages page for a full list of supported Google languages.

currency

Optional

Parameter defines the currency of the returned prices. Default to USD. Head to the Google Travel Currencies page for a full list of supported currency codes.

Advanced Google Flights Parameters

type

Optional

Parameter defines the type of the flights.
Available options:

1 - Round trip (default)
2 - One way

travel_class

Optional

Parameter defines the travel class.
Available options:

1 - Economy (default)
2 - Premium economy
3 - Business
4 - First

Date Parameters

outbound_date

Optional

Parameter defines when you want to depart. Use a single YYYY-MM-DD date for an exact departure date, or two comma-separated dates for a flexible departure window.

Examples:
2026-06-09 — depart on this exact date
2026-06-09,2026-07-08 — depart anytime within this window

With a single date: return_date (single date) is required for round trip flights.
With a date range: optionally combine with one of return_date (as a range), travel_duration, or trip_length to control the trip length. If none are provided, deals of any duration are returned.
If omitted entirely, deals for any date are returned.

return_date

Optional

Parameter defines when you want to return. Use a single YYYY-MM-DD date for an exact return date, or two comma-separated dates for a flexible return window.

Examples:
2026-06-15 — return on this exact date (use with a single outbound_date)
2026-06-15,2026-07-15 — return anytime within this window (use with a range outbound_date)

Not available for one-way flights (type = 2).
A single return_date must be paired with a single outbound_date. A range return_date must be paired with a range outbound_date.
Cannot be combined with travel_duration or trip_length (use one or the other to define trip length).

travel_duration

Optional

Parameter defines a preset trip duration when searching with flexible dates.
Available options:

1 - 1 week (default)
2 - Weekend
3 - 2 weeks

Can be used alone (deals of this duration, any departure date) or with outbound_date as a date range (e.g., 2026-06-09,2026-07-08) to limit the departure window.
Cannot be combined with return_date or trip_length.
Not available for one-way flights (type = 2).

trip_length

Optional

Parameter defines a custom trip length in days when searching with flexible dates. Provide a single number for an exact duration, or two comma-separated numbers for a min/max range.

Examples:
7 — exactly 7 days
5,10 — between 5 and 10 days

Can be used alone (deals of this length, any departure date) or with outbound_date as a date range (e.g., 2026-06-09,2026-07-08) to limit the departure window.
Cannot be combined with return_date or travel_duration.
Not available for one-way flights (type = 2).
Each value must be at least 1. When two values are provided, the first (min) must be ≤ the second (max).

Number Of Passengers

adults

Optional

Parameter defines the number of adults. Default to 1.

children

Optional

Parameter defines the number of children. Default to 0.

infants_in_seat

Optional

Parameter defines the number of infants in seat. Default to 0.

infants_on_lap

Optional

Parameter defines the number of infants on lap. Default to 0.

Advanced Filters

stops

Optional

Parameter defines the number of stops during the flight.
Available options:

0 - Any number of stops (default)
1 - Nonstop only
2 - 1 stop or fewer
3 - 2 stops or fewer

exclude_airlines

Optional

Parameter defines the airline codes to be excluded. Split multiple airlines with comma.
It can't be used together with include_airlines.
Each airline code should be a 2-character IATA code consisting of either two uppercase letters or one uppercase letter and one digit. You can search for airline codes on IATA.
For example, UA is United Airlines.
Additionally, alliances can be also included here:

STAR_ALLIANCE - Star Alliance
SKYTEAM - SkyTeam
ONEWORLD - Oneworld

exclude_airlines and include_airlines parameters can't be used together.

include_airlines

Optional

Parameter defines the airline codes to be included. Split multiple airlines with comma.
It can't be used together with exclude_airlines.
Each airline code should be a 2-character IATA code consisting of either two uppercase letters or one uppercase letter and one digit. You can search for airline codes on IATA.
For example, UA is United Airlines.
Additionally, alliances can be also included here:

STAR_ALLIANCE - Star Alliance
SKYTEAM - SkyTeam
ONEWORLD - Oneworld

exclude_airlines and include_airlines parameters can't be used together.

max_price

Optional

Parameter defines the maximum ticket price. Default to unlimited.

max_duration

Optional

Parameter defines the maximum flight duration, in minutes. For example, specify 1500 for 25 hours.

If your search returns no results, try increasing your max_duration by up to 200 minutes to account for route-specific scheduling variances.

Serpapi Parameters

engine

Required

Set parameter to google_flights to use the Google Flights API engine.

no_cache

Optional

Parameter will force SerpApi to fetch the Google Flights results even if a cached version is already present. A cache is served only if the query and all parameters are exactly the same. Cache expires after 1h. Cached searches are free, and are not counted towards your searches per month. It can be set to false (default) to allow results from the cache, or true to disallow results from the cache. no_cache and async parameters should not be used together.

async

Optional

Parameter defines the way you want to submit your search to SerpApi. It can be set to false (default) to open an HTTP connection and keep it open until you got your search results, or true to just submit your search to SerpApi and retrieve them later. In this case, you'll need to use our Searches Archive API to retrieve your results. async and no_cache parameters should not be used together. async should not be used on accounts with Ludicrous Speed enabled.

zero_trace

Optional

Enterprise only. Parameter enables ZeroTrace mode. It can be set to false (default) or true. Enable this mode to skip storing search parameters, search files, and search metadata on our servers. This may make debugging more difficult.

api_key

Required

Parameter defines the SerpApi private key to use.

output

Optional

Parameter defines the final output you want. It can be set to json (default) to get a structured JSON of the results, or html to get the raw html retrieved.

API Results

JSON Results

JSON output includes structured data for Flight Results and Price Insights.

A search status is accessible through search_metadata.status. It flows this way: Processing -> Success || Error. If a search has failed, error will contain an error message. search_metadata.id is the search ID inside SerpApi.

HTML Results

This API does not have html response, just a text. search_metadata.prettify_html_file contains prettified version of result. It is displayed in playground.

API Examples

Example with departure_id: CDG

Example with departure_id: CDG

JSON Example

{
  "search_metadata": {
    "id": "69df341afe1c6b0c8741b97a",
    "status": "Success",
    "json_endpoint": "https://serpapi.com/searches/NsiaMlh76FXwRFtJwEqzxQ/69df341afe1c6b0c8741b97a.json",
    "created_at": "2026-04-15 06:45:46 UTC",
    "processed_at": "2026-04-15 06:45:46 UTC",
    "google_flights_deals_url": "https://www.google.com/travel/flights/deals?hl=en&gl=us&curr=USD&tfs=CBwQBhoJagcIARIDQ0RHGglyBwgBEgNDREdAAUgBcAGCAQsI____________AZgBAdoBCAoEMAFIARAD",
    "raw_html_file": "https://serpapi.com/searches/NsiaMlh76FXwRFtJwEqzxQ/69df341afe1c6b0c8741b97a.html",
    "prettify_html_file": "https://serpapi.com/searches/NsiaMlh76FXwRFtJwEqzxQ/69df341afe1c6b0c8741b97a.prettify",
    "total_time_taken": 1.05
  },
  "search_parameters": {
    "engine": "google_flights_deals",
    "hl": "en",
    "gl": "us",
    "departure_id": "CDG",
    "currency": "USD"
  },
  "departure_informations": {
    "airport_name": "Paris Charles de Gaulle Airport",
    "airport_code": "CDG",
    "city": "Paris",
    "city_id": "/m/05qtj",
    "country": "France",
    "gps_coordinates": {
      "latitude": 49.0097222,
      "longitude": 2.54777778
    }
  },
  "deals": [
    {
      "destination_id": "/m/0k02q",
      "name": "São Vicente",
      "country": "Cape Verde",
      "price": 468,
      "average_price": 2023,
      "discount_percentage": 77,
      "flight_link": "https://www.google.com/travel/flights?tfs=CCoQAhojEgoyMDI2LTA5LTIxagcIARIDQ0RHcgwIAhIIL20vMGswMnEaIxIKMjAyNi0wOS0yN2oMCAISCC9tLzBrMDJxcgcIARIDQ0RHQAFIAVIDVVNEenxDalJJUzB4RVdWQTBjVzFEV0d0QlFrTk5jbWRDUnkwdExTMHRMUzB0ZG5kaVpYSXhNVUZCUVVGQlIyNW1Ua0p6UW10dlVIbEJFaEpFWldGc1EyOXVjM1J5WVdsdWRITXdMVEFhQ3dpYTdRSVFBaG9EVlZORU9EaHdtdTBD&curr=USD&hl=en-US&gl=US&gsas=1",
      "serpapi_flight_link": "https://serpapi.com/search.json?arrival_id=%2Fm%2F0k02q&currency=USD&deep_search=true&departure_id=CDG&engine=google_flights&gl=us&hl=en&outbound_date=2026-09-21&return_date=2026-09-27",
      "thumbnail": "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcSckNH_rI-kBJM6PJ-RAKRePrYid1GUv0qhBH4U4D5UJLafW0hdULdYan8zocbhufPAg32weA",
      "start_date": "2026-09-21",
      "end_date": "2026-09-27",
      "departure_airport_code": "CDG",
      "arrival_airport_code": "VXE",
      "flight_duration": 350,
      "stops": 0,
      "airline": "Cabo Verde Airlines",
      "airline_code": "VR",
      "description": "Cape Verde island with beaches, colonial buildings in Mindelo city & Parque Natural Monte Verde.",
      "highlights": "Port city of Mindelo & Monte Verde park"
    },
    {
      "destination_id": "/m/04yqyw",
      "name": "Calvi",
      "country": "France",
      "price": 118,
      "average_price": 476,
      "discount_percentage": 75,
      "flight_link": "https://www.google.com/travel/flights?tfs=CCoQAhokEgoyMDI2LTA2LTI4agcIARIDQ0RHcg0IAhIJL20vMDR5cXl3GiQSCjIwMjYtMDctMDRqDQgCEgkvbS8wNHlxeXdyBwgBEgNDREdAAUgBUgNVU0R6fENqUklTMHhFV1ZBMGNXMURXR3RCUWtOTmNtZENSeTB0TFMwdExTMHRkbmRpWlhJeE1VRkJRVUZCUjI1bVRrSnpRbXR2VUhsQkVoSkVaV0ZzUTI5dWMzUnlZV2x1ZEhNd0xURWFDZ2pnV3hBQ0dnTlZVMFE0T0hEZ1d3PT0&curr=USD&hl=en-US&gl=US&gsas=1",
      "serpapi_flight_link": "https://serpapi.com/search.json?arrival_id=%2Fm%2F04yqyw&currency=USD&deep_search=true&departure_id=CDG&engine=google_flights&gl=us&hl=en&outbound_date=2026-06-28&return_date=2026-07-04",
      "thumbnail": "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcSHFraY_5UQPbLXwkvhOjRs5cYy3rjbOE25c-yKiGf7NEVzPm7fG4u6usoov8ogtjAXtxGKqQ",
      "start_date": "2026-06-28",
      "end_date": "2026-07-04",
      "departure_airport_code": "CDG",
      "arrival_airport_code": "CLY",
      "flight_duration": 110,
      "stops": 0,
      "airline": "easyJet",
      "airline_code": "U2",
      "description": "Corsican town with a medieval citadel, the cathedral of St-Jean-Baptiste, & Quai Landry esplanade.",
      "highlights": "St-Jean-Baptiste Cathedral & Quai Landry"
    },
    {
      "destination_id": "/m/01_8b9",
      "name": "Tetouan",
      "country": "Morocco",
      "price": 175,
      "average_price": 560,
      "discount_percentage": 69,
      "flight_link": "https://www.google.com/travel/flights?tfs=CCoQAhokEgoyMDI2LTA2LTA0agcIARIDQ0RHcg0IAhIJL20vMDFfOGI5GiQSCjIwMjYtMDYtMTFqDQgCEgkvbS8wMV84YjlyBwgBEgNDREdAAUgBUgNVU0R6fENqUklTMHhFV1ZBMGNXMURXR3RCUWtOTmNtZENSeTB0TFMwdExTMHRkbmRpWlhJeE1VRkJRVUZCUjI1bVRrSnpRbXR2VUhsQkVoSkVaV0ZzUTI5dWMzUnlZV2x1ZEhNd0xUSWFDd2pWaUFFUUFob0RWVk5FT0RodzFZZ0I&curr=USD&hl=en-US&gl=US&gsas=1",
      "serpapi_flight_link": "https://serpapi.com/search.json?arrival_id=%2Fm%2F01_8b9&currency=USD&deep_search=true&departure_id=CDG&engine=google_flights&gl=us&hl=en&outbound_date=2026-06-04&return_date=2026-06-11",
      "thumbnail": "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSPD7dWLi5abOyX7IkmzQxNTywOBGfRCPbBnAiuAtFcc2uijKcbi_JKpWwbYcqx4H0HmjtyCg",
      "start_date": "2026-06-04",
      "end_date": "2026-06-11",
      "departure_airport_code": "CDG",
      "arrival_airport_code": "TTU",
      "flight_duration": 175,
      "stops": 0,
      "airline": "Royal Air Maroc",
      "airline_code": "AT",
      "highlights": "Beach and palace"
    },
    ...
  ]
}

Example with departure_id: /m/04jpl (London)

Example with departure_id: /m/04jpl (London)

JSON Example

{
  ...
  "departure_informations": {
    "city": "London",
    "city_id": "/m/04jpl"
  },
  "deals": [
    {
      "destination_id": "/m/016d7r",
      "name": "Santander",
      "country": "Spain",
      "price": 41,
      "average_price": 203,
      "discount_percentage": 80,
      "flight_link": "https://www.google.com/travel/flights?tfs=CCoQAhopEgoyMDI2LTA0LTIwagwIAxIIL20vMDRqcGxyDQgCEgkvbS8wMTZkN3IaKRIKMjAyNi0wNC0yOGoNCAISCS9tLzAxNmQ3cnIMCAMSCC9tLzA0anBsQAFIAVIDVVNEenxDalJJVGt0a1RsTnROMFJRWVRSQlEzbDNVVUZDUnkwdExTMHRMUzB0YjJ0aWFtSXlOa0ZCUVVGQlIyNW1UMXBWVG1KZk1ubEJFaEpFWldGc1EyOXVjM1J5WVdsdWRITXdMVEFhQ2dqa0h4QUNHZ05WVTBRNE9IRGtIdz09&curr=USD&hl=en-US&gl=US&gsas=1",
      "serpapi_flight_link": "https://serpapi.com/search.json?arrival_id=%2Fm%2F016d7r&currency=USD&deep_search=true&departure_id=%2Fm%2F04jpl&engine=google_flights&gl=us&hl=en&outbound_date=2026-04-20&return_date=2026-04-28",
      "thumbnail": "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcSeV2SE09AgNQCMRc3EmEZVkj_0ZiF4jgfhGcUeUcblpt2Ry-C0p1Pc9B6vUWoj3lV1tkW2Pw",
      "start_date": "2026-04-20",
      "end_date": "2026-04-28",
      "departure_airport_code": "STN",
      "arrival_airport_code": "SDR",
      "flight_duration": 120,
      "stops": 0,
      "description": "Spanish city on the Bay of Santander with the Palacio de la Magdalena & a striking cathedral.",
      "highlights": "Palacio de la Magdalena, cathedral & bay"
    },
    {
      "destination_id": "/m/09b83",
      "name": "Strasbourg",
      "country": "France",
      "price": 65,
      "average_price": 313,
      "discount_percentage": 79,
      "flight_link": "https://www.google.com/travel/flights?tfs=CCoQAhooEgoyMDI2LTA1LTExagwIAxIIL20vMDRqcGxyDAgCEggvbS8wOWI4MxooEgoyMDI2LTA1LTE4agwIAhIIL20vMDliODNyDAgDEggvbS8wNGpwbEABSAFSA1VTRHp8Q2pSSVRrdGtUbE50TjBSUVlUUkJRM2wzVVVGQ1J5MHRMUzB0TFMwdGIydGlhbUl5TmtGQlFVRkJSMjVtVDFwVlRtSmZNbmxCRWhKRVpXRnNRMjl1YzNSeVlXbHVkSE13TFRFYUNnaW9NaEFDR2dOVlUwUTRPSENvTWc9PQ&curr=USD&hl=en-US&gl=US&gsas=1",
      "serpapi_flight_link": "https://serpapi.com/search.json?arrival_id=%2Fm%2F09b83&currency=USD&deep_search=true&departure_id=%2Fm%2F04jpl&engine=google_flights&gl=us&hl=en&outbound_date=2026-05-11&return_date=2026-05-18",
      "thumbnail": "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSm1nnLuamJf87_1NRr1qbAFUwJbrsXMz-AIheIEsAgIIyLr5nSFtvXscIEn2ycc7u5reBOLQ",
      "start_date": "2026-05-11",
      "end_date": "2026-05-18",
      "departure_airport_code": "LGW",
      "arrival_airport_code": "SXB",
      "flight_duration": 95,
      "stops": 0,
      "airline": "easyJet",
      "airline_code": "U2",
      "description": "Grand Est city offering scenic canals, Renaissance Neubau & a Gothic cathedral with animated clock.",
      "highlights": "Renaissance Neubau & a Gothic cathedral"
    },
    {
      "destination_id": "/m/013517",
      "name": "Osijek",
      "country": "Croatia",
      "price": 113,
      "average_price": 532,
      "discount_percentage": 79,
      "flight_link": "https://www.google.com/travel/flights?tfs=CCoQAhopEgoyMDI2LTA3LTA0agwIAxIIL20vMDRqcGxyDQgCEgkvbS8wMTM1MTcaKRIKMjAyNi0wNy0xMWoNCAISCS9tLzAxMzUxN3IMCAMSCC9tLzA0anBsQAFIAVIDVVNEenxDalJJVGt0a1RsTnROMFJRWVRSQlEzbDNVVUZDUnkwdExTMHRMUzB0YjJ0aWFtSXlOa0ZCUVVGQlIyNW1UMXBWVG1KZk1ubEJFaEpFWldGc1EyOXVjM1J5WVdsdWRITXdMVElhQ2dpSVdCQUNHZ05WVTBRNE9IQ0lXQT09&curr=USD&hl=en-US&gl=US&gsas=1",
      "serpapi_flight_link": "https://serpapi.com/search.json?arrival_id=%2Fm%2F013517&currency=USD&deep_search=true&departure_id=%2Fm%2F04jpl&engine=google_flights&gl=us&hl=en&outbound_date=2026-07-04&return_date=2026-07-11",
      "thumbnail": "https://encrypted-tbn1.gstatic.com/licensed-image?q=tbn:ANd9GcQ1ea1XjVcwow-tI5kyfW3gDBoUaPt36hG_29tanb_K-HunAIYdLP_IriSnv7-Mfzt2qt8_vaJLhsPimfhZehgdZ5q70MfGmb4",
      "start_date": "2026-07-04",
      "end_date": "2026-07-11",
      "departure_airport_code": "STN",
      "arrival_airport_code": "OSI",
      "flight_duration": 150,
      "stops": 0,
      "airline": "Ryanair",
      "airline_code": "FR",
      "highlights": "Zoo, museum, monument, concert, and church"
    },
    ...
  ],
  ...
}

Example with type: 2 (One Way)

Example with type: 2 (One Way)

JSON Example

{
  ...
  "search_parameters": {
    "engine": "google_flights_deals",
    "hl": "en",
    "gl": "us",
    "type": "2",
    "departure_id": "MAD",
    "currency": "USD"
  },
  "departure_informations": {
    "airport_name": "Adolfo Suárez Madrid-Barajas Airport",
    "airport_code": "MAD",
    "city": "Madrid",
    "city_id": "/m/056_y",
    "country": "Spain",
    "gps_coordinates": {
      "latitude": 40.4997222,
      "longitude": -3.5655556
    }
  },
  "deals": [
    {
      "destination_id": "/m/0ccn5",
      "name": "Alghero",
      "country": "Italy",
      "price": 36,
      "average_price": 135,
      "discount_percentage": 74,
      "flight_link": "https://www.google.com/travel/flights?tfs=CCoQAhojEgoyMDI2LTA2LTE0agcIARIDTUFEcgwIAhIIL20vMGNjbjVAAUgBUgNVU0R6fENqUklSMlJGY1dsVFRYQlRjelJCUWpZeFNGRkNSeTB0TFMwdExTMHRMWFozYlhreU1FRkJRVUZCUjI1bVQyUk5TbEk0TkU5QkVoSkVaV0ZzUTI5dWMzUnlZV2x1ZEhNd0xUQWFDZ2pTR3hBQ0dnTlZVMFE0T0hEU0d3PT0&curr=USD&hl=en-US&gl=US&gsas=1",
      "serpapi_flight_link": "https://serpapi.com/search.json?arrival_id=%2Fm%2F0ccn5&currency=USD&deep_search=true&departure_id=MAD&engine=google_flights&gl=us&hl=en&outbound_date=2026-06-14&type=2",
      "thumbnail": "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcThxdmup56LyPpv-p7fU9leo8yIkOkWoXHtfOo3a8x7jhy-NBm2FrxaMQBNC4iQPP3oFD2fFQ",
      "start_date": "2026-06-14",
      "departure_airport_code": "MAD",
      "arrival_airport_code": "AHO",
      "flight_duration": 120,
      "stops": 0,
      "airline": "Ryanair",
      "airline_code": "FR",
      "description": "Sardinian city known for the Catalan Gothic Cattedrale di Santa Maria, a walled old town & beaches.",
      "highlights": "Catalan Gothic architecture & beaches"
    },
    {
      "destination_id": "/m/081m_",
      "name": "Warsaw",
      "country": "Poland",
      "price": 32,
      "average_price": 92,
      "discount_percentage": 65,
      "flight_link": "https://www.google.com/travel/flights?tfs=CCoQAhojEgoyMDI2LTA2LTAzagcIARIDTUFEcgwIAhIIL20vMDgxbV9AAUgBUgNVU0R6fENqUklSMlJGY1dsVFRYQlRjelJCUWpZeFNGRkNSeTB0TFMwdExTMHRMWFozYlhreU1FRkJRVUZCUjI1bVQyUk5TbEk0TkU5QkVoSkVaV0ZzUTI5dWMzUnlZV2x1ZEhNd0xURWFDZ2pyR0JBQ0dnTlZVMFE0T0hEckdBPT0&curr=USD&hl=en-US&gl=US&gsas=1",
      "serpapi_flight_link": "https://serpapi.com/search.json?arrival_id=%2Fm%2F081m_&currency=USD&deep_search=true&departure_id=MAD&engine=google_flights&gl=us&hl=en&outbound_date=2026-06-03&type=2",
      "thumbnail": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSxBk40_LFLF9rF0OD-AHerjv0OFS8RF7l1ciBWPxQNMNDpSLEAQVuUIO5tF3w6jlv2ina3_A",
      "start_date": "2026-06-03",
      "departure_airport_code": "MAD",
      "arrival_airport_code": "WMI",
      "flight_duration": 205,
      "stops": 0,
      "airline": "Ryanair",
      "airline_code": "FR",
      "description": "Poland’s capital with a rebuilt Old Town, noted museums & royal sites including Wilanów Palace.",
      "highlights": "Wilanów Palace, Old Town & museums"
    },
    {
      "destination_id": "/m/0k33p",
      "name": "Birmingham",
      "country": "United Kingdom",
      "price": 26,
      "average_price": 73,
      "discount_percentage": 64,
      "flight_link": "https://www.google.com/travel/flights?tfs=CCoQAhojEgoyMDI2LTA1LTA3agcIARIDTUFEcgwIAhIIL20vMGszM3BAAUgBUgNVU0R6fENqUklSMlJGY1dsVFRYQlRjelJCUWpZeFNGRkNSeTB0TFMwdExTMHRMWFozYlhreU1FRkJRVUZCUjI1bVQyUk5TbEk0TkU5QkVoSkVaV0ZzUTI5dWMzUnlZV2x1ZEhNd0xUSWFDZ2lpRkJBQ0dnTlZVMFE0T0hDaUZBPT0&curr=USD&hl=en-US&gl=US&gsas=1",
      "serpapi_flight_link": "https://serpapi.com/search.json?arrival_id=%2Fm%2F0k33p&currency=USD&deep_search=true&departure_id=MAD&engine=google_flights&gl=us&hl=en&outbound_date=2026-05-07&type=2",
      "thumbnail": "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcSU90PkSkdYXVbZaXQ5dMCT5e0QeKW19vRLHikcUYTzkkQV9ZUa1MQ1nH30ZB3Mj4TLZA5rFA",
      "start_date": "2026-05-07",
      "departure_airport_code": "MAD",
      "arrival_airport_code": "BHX",
      "flight_duration": 155,
      "stops": 0,
      "airline": "Ryanair",
      "airline_code": "FR",
      "description": "English city known for its industrial heritage, Victorian buildings, canals and Jewellery quarter.",
      "highlights": "Industrial sites, canals & jewellery"
    },
    ...
  ],
  ...
}

Example with include_airlines: W4, FR

You can also filter the results by specific airlines using the include_airlines parameter. In this example, we are including Wizz Air (W4) and Ryanair (FR) in the search.

Example with include_airlines: W4, FR

JSON Example

{
  ...
  "departure_informations": {
    "city": "Milan",
    "city_id": "/m/0947l"
  },
  "deals": [
    {
      "destination_id": "/m/04jpl",
      "name": "London",
      "country": "United Kingdom",
      "price": 36,
      "flight_link": "https://www.google.com/travel/flights?tfs=CCoQAho8EgoyMDI2LTA2LTA0MgI1VzICVzQyAlc2MgJXOTICRlJqDAgDEggvbS8wOTQ3bHIMCAISCC9tLzA0anBsGjwSCjIwMjYtMDYtMTAyAjVXMgJXNDICVzYyAlc5MgJGUmoMCAISCC9tLzA0anBscgwIAxIIL20vMDk0N2xAAUgBUgNVU0R6fENqUklVR2hsTmxOWlpUTmpRMWxCUkVKc1EyZENSeTB0TFMwdExTMHRMVzk1WVhVeE4wRkJRVUZCUjI1bVQyZzRRWGRDZVhGQkVoSkVaV0ZzUTI5dWMzUnlZV2x1ZEhNd0xUQWFDZ2pRR3hBQ0dnTlZVMFE0T0hEUUd3PT0&curr=USD&hl=en-US&gl=US&gsas=1",
      "serpapi_flight_link": "https://serpapi.com/search.json?arrival_id=%2Fm%2F04jpl&currency=USD&deep_search=true&departure_id=%2Fm%2F0947l&engine=google_flights&gl=us&hl=en&include_airlines=W4%2C+FR&outbound_date=2026-06-04&return_date=2026-06-10",
      "thumbnail": "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcTstwRWPSircI9vvGWc85ARCv8UV1AiHczn-jqtY6sL3b7ZTs9P-16PoVBADyzdPpIwzGTULQ",
      "start_date": "2026-06-04",
      "end_date": "2026-06-10",
      "departure_airport_code": "BGY",
      "arrival_airport_code": "STN",
      "flight_duration": 125,
      "stops": 0,
      "airline": "Ryanair",
      "airline_code": "FR",
      "description": "England & U.K. capital, home to Buckingham Palace, St. Paul’s Cathedral, British Museum & Hyde Park.",
      "highlights": "Buckingham Palace & British Museum"
    },
    {
      "destination_id": "/m/081m_",
      "name": "Warsaw",
      "country": "Poland",
      "price": 36,
      "flight_link": "https://www.google.com/travel/flights?tfs=CCoQAho8EgoyMDI2LTA2LTExMgI1VzICVzQyAlc2MgJXOTICRlJqDAgDEggvbS8wOTQ3bHIMCAISCC9tLzA4MW1fGjwSCjIwMjYtMDYtMTcyAjVXMgJXNDICVzYyAlc5MgJGUmoMCAISCC9tLzA4MW1fcgwIAxIIL20vMDk0N2xAAUgBUgNVU0R6fENqUklVR2hsTmxOWlpUTmpRMWxCUkVKc1EyZENSeTB0TFMwdExTMHRMVzk1WVhVeE4wRkJRVUZCUjI1bVQyZzRRWGRDZVhGQkVoSkVaV0ZzUTI5dWMzUnlZV2x1ZEhNd0xURWFDZ2pRR3hBQ0dnTlZVMFE0T0hEUUd3PT0&curr=USD&hl=en-US&gl=US&gsas=1",
      "serpapi_flight_link": "https://serpapi.com/search.json?arrival_id=%2Fm%2F081m_&currency=USD&deep_search=true&departure_id=%2Fm%2F0947l&engine=google_flights&gl=us&hl=en&include_airlines=W4%2C+FR&outbound_date=2026-06-11&return_date=2026-06-17",
      "thumbnail": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSxBk40_LFLF9rF0OD-AHerjv0OFS8RF7l1ciBWPxQNMNDpSLEAQVuUIO5tF3w6jlv2ina3_A",
      "start_date": "2026-06-11",
      "end_date": "2026-06-17",
      "departure_airport_code": "MXP",
      "arrival_airport_code": "WMI",
      "flight_duration": 130,
      "stops": 0,
      "airline": "Ryanair",
      "airline_code": "FR",
      "description": "Poland’s capital with a rebuilt Old Town, noted museums & royal sites including Wilanów Palace.",
      "highlights": "Wilanów Palace, Old Town & museums"
    },
    {
      "destination_id": "/m/03f2hc",
      "name": "Pescara",
      "country": "Italy",
      "price": 36,
      "flight_link": "https://www.google.com/travel/flights?tfs=CCoQAho9EgoyMDI2LTA1LTA3MgI1VzICVzQyAlc2MgJXOTICRlJqDAgDEggvbS8wOTQ3bHINCAISCS9tLzAzZjJoYxo9EgoyMDI2LTA1LTE0MgI1VzICVzQyAlc2MgJXOTICRlJqDQgCEgkvbS8wM2YyaGNyDAgDEggvbS8wOTQ3bEABSAFSA1VTRHp8Q2pSSVVHaGxObE5aWlROalExbEJSRUpzUTJkQ1J5MHRMUzB0TFMwdExXOTVZWFV4TjBGQlFVRkJSMjVtVDJnNFFYZENlWEZCRWhKRVpXRnNRMjl1YzNSeVlXbHVkSE13TFRJYUNnalFHeEFDR2dOVlUwUTRPSERRR3c9PQ&curr=USD&hl=en-US&gl=US&gsas=1",
      "serpapi_flight_link": "https://serpapi.com/search.json?arrival_id=%2Fm%2F03f2hc&currency=USD&deep_search=true&departure_id=%2Fm%2F0947l&engine=google_flights&gl=us&hl=en&include_airlines=W4%2C+FR&outbound_date=2026-05-07&return_date=2026-05-14",
      "thumbnail": "https://encrypted-tbn0.gstatic.com/licensed-image?q=tbn:ANd9GcQ3MF5n6mjgSTepoqyoBS1zvOt_g-Xy6Xceq5ZB8EkGMbknhgW6PI6GpNngm0qRI3Koz6aG6WkRouSBBzpXAlIiZIcnhCUvCII",
      "start_date": "2026-05-07",
      "end_date": "2026-05-14",
      "departure_airport_code": "BGY",
      "arrival_airport_code": "PSR",
      "flight_duration": 70,
      "stops": 0,
      "airline": "Ryanair",
      "airline_code": "FR",
      "description": "Italian seaside city with the Casa Natale D’Annunzio & modern art at the Vittoria Colonna Museum.",
      "highlights": "Casa Natale D’Annunzio & modern art"
    },
    ...
  ],
  ...
}

Example with exact dates: outbound_date and return_date

Use outbound_date and return_date to search for flight deals on specific dates. Both parameters use the YYYY-MM-DD format. For one-way flights (type = 2), only outbound_date is needed.

Example with exact dates: outbound_date and return_date

JSON Example

{
  "deals": [
    {
      "destination_id": "/m/04v3q",
      "name": "Malta",
      "country": "Malta",
      "price": 61,
      "average_price": 135,
      "discount_percentage": 55,
      "flight_link": "https://www.google.com/travel/flights?tfs=CCoQAhojEgoyMDI2LTA4LTEwagcIARIDRkNPcgwIAhIIL20vMDR2M3EaIxIKMjAyNi0wOC0xN2oMCAISCC9tLzA0djNxcgcIARIDRkNPQAFIAVIDVVNEenxDalJJVG5kcU1XaDZkVnBpU0dkQlRYUmlXVUZDUnkwdExTMHRMUzB0ZG5SaVluRXlNRUZCUVVGQlIyNTJRekJ2UkVOQ1RFOUJFaEpFWldGc1EyOXVjM1J5WVdsdWRITXdMVEFhQ2dqTUx4QUNHZ05WVTBRNE9IRE1Mdz09&curr=USD&hl=en-US&gl=US&gsas=1",
      "serpapi_flight_link": "https://serpapi.com/search.json?arrival_id=%2Fm%2F04v3q&currency=USD&deep_search=true&departure_id=FCO&engine=google_flights&gl=us&hl=en&outbound_date=2026-08-10&return_date=2026-08-17",
      "thumbnail": "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcSXn_buPK3quz2xlzl44M-NSJCNq78yVelJJDKb5AR3qDT6uCGxhIYbNsoP_RY_Y8xyOqWqOQ",
      "start_date": "2026-08-10",
      "end_date": "2026-08-17",
      "departure_airport_code": "FCO",
      "arrival_airport_code": "MLA",
      "flight_duration": 90,
      "stops": 0,
      "airline": "Ryanair",
      "airline_code": "FR",
      "description": "Mediterranean island nation, site of Valletta, megalithic temples, Blue Lagoon & beaches.",
      "highlights": "Valletta, ancient temples & beaches"
    },
    {
      "destination_id": "/m/0fbwq",
      "name": "Dubrovnik",
      "country": "Croatia",
      "price": 97,
      "average_price": 195,
      "discount_percentage": 51,
      "flight_link": "https://www.google.com/travel/flights?tfs=CCoQAhojEgoyMDI2LTA4LTEwagcIARIDRkNPcgwIAhIIL20vMGZid3EaIxIKMjAyNi0wOC0xN2oMCAISCC9tLzBmYndxcgcIARIDRkNPQAFIAVIDVVNEenxDalJJVG5kcU1XaDZkVnBpU0dkQlRYUmlXVUZDUnkwdExTMHRMUzB0ZG5SaVluRXlNRUZCUVVGQlIyNTJRekJ2UkVOQ1RFOUJFaEpFWldGc1EyOXVjM1J5WVdsdWRITXdMVEVhQ2dpSVN4QUNHZ05WVTBRNE9IQ0lTdz09&curr=USD&hl=en-US&gl=US&gsas=1",
      "serpapi_flight_link": "https://serpapi.com/search.json?arrival_id=%2Fm%2F0fbwq&currency=USD&deep_search=true&departure_id=FCO&engine=google_flights&gl=us&hl=en&outbound_date=2026-08-10&return_date=2026-08-17",
      "thumbnail": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRZh6ZGlrjpV_6dTFVT2alRYkshFGruG6x40WAvGcZBnsHr90Dc41YOXTr4561ZxTh-rv2fiw",
      "start_date": "2026-08-10",
      "end_date": "2026-08-17",
      "departure_airport_code": "FCO",
      "arrival_airport_code": "DBV",
      "flight_duration": 80,
      "stops": 0,
      "airline": "Ryanair",
      "airline_code": "FR",
      "description": "Croatian coast city with a walled Old Town, Banje beach, art galleries & a baroque cathedral.",
      "highlights": "Walled Old Town, art & Banje beach"
    },
    {
      "destination_id": "/m/0177z",
      "name": "Brussels",
      "country": "Belgium",
      "price": 80,
      "average_price": 145,
      "discount_percentage": 45,
      "flight_link": "https://www.google.com/travel/flights?tfs=CCoQAhojEgoyMDI2LTA4LTEwagcIARIDRkNPcgwIAhIIL20vMDE3N3oaIxIKMjAyNi0wOC0xN2oMCAISCC9tLzAxNzd6cgcIARIDRkNPQAFIAVIDVVNEenxDalJJVG5kcU1XaDZkVnBpU0dkQlRYUmlXVUZDUnkwdExTMHRMUzB0ZG5SaVluRXlNRUZCUVVGQlIyNTJRekJ2UkVOQ1RFOUJFaEpFWldGc1EyOXVjM1J5WVdsdWRITXdMVElhQ2dqbFBSQUNHZ05WVTBRNE9IRGxQUT09&curr=USD&hl=en-US&gl=US&gsas=1",
      "serpapi_flight_link": "https://serpapi.com/search.json?arrival_id=%2Fm%2F0177z&currency=USD&deep_search=true&departure_id=FCO&engine=google_flights&gl=us&hl=en&outbound_date=2026-08-10&return_date=2026-08-17",
      "thumbnail": "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcSvFZV-bqNUy6LBAJCo45Lkd6JJ9KYjfXwk6_dRa9MXTomTD0bfsL6Jxs8ifE4BO_isokYJQw",
      "start_date": "2026-08-10",
      "end_date": "2026-08-17",
      "departure_airport_code": "FCO",
      "arrival_airport_code": "BRU",
      "flight_duration": 130,
      "stops": 0,
      "airline": "easyJet",
      "airline_code": "U2",
      "description": "Belgian capital & European Union headquarters, known for its Grand-Place & comic-strip murals.",
      "highlights": "Belgian capital & headquarters of the EU"
    },
    ...
  ],
  ...
}

Example with flexible date ranges: outbound_date (range) and travel_duration

Use a comma-separated outbound_date to search for deals within a window of dates. Combine with travel_duration to set the trip length. Alternatively, you can use trip_length for a custom trip length (e.g., 5,10 for 5-10 days), or return_date as a comma-separated range for a specific return window.

Example with flexible date ranges: outbound_date (range) and travel_duration

JSON Example

{
  ...
  "deals": [
    {
      "destination_id": "/m/06wr9",
      "name": "Santiago de Compostela",
      "country": "Spain",
      "price": 84,
      "average_price": 163,
      "discount_percentage": 49,
      "flight_link": "https://www.google.com/travel/flights?tfs=CCoQAhojEgoyMDI2LTA5LTI4agcIARIDQkNOcgwIAhIIL20vMDZ3cjkaIxIKMjAyNi0xMC0xNGoMCAISCC9tLzA2d3I5cgcIARIDQkNOQAFIAVIDVVNEenxDalJJZEcxNVluTnZkMDFVTkUxQlZFcHlTRUZDUnkwdExTMHRMUzB0TFc5clltWndNVUZCUVVGQlIyNTJRemROUjNFMGVsRkJFaEpFWldGc1EyOXVjM1J5WVdsdWRITXdMVEFhQ2dqL1FCQUNHZ05WVTBRNE9IRC9RQT09&curr=USD&hl=en-US&gl=US&gsas=1",
      "serpapi_flight_link": "https://serpapi.com/search.json?arrival_id=%2Fm%2F06wr9&currency=USD&deep_search=true&departure_id=BCN&engine=google_flights&gl=us&hl=en&outbound_date=2026-09-28&return_date=2026-10-14",
      "thumbnail": "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRFUeL9UTvUHJjCS4c4ukq8WCMPh0QlcujJvFUpp6AZPD7DgNxT9vSZuKppKIAYbOLOiTbnXg",
      "start_date": "2026-09-28",
      "end_date": "2026-10-14",
      "departure_airport_code": "BCN",
      "arrival_airport_code": "SCQ",
      "flight_duration": 110,
      "stops": 0,
      "airline": "Vueling",
      "airline_code": "VY",
      "description": "Galician capital & endpoint of the Camino de Santiago pilgrimage route, with 13th-century cathedral.",
      "highlights": "Camino de Santiago pilgrimage endpoint"
    },
    {
      "destination_id": "/m/0j3wt",
      "name": "Banjul",
      "country": "Gambia",
      "price": 332,
      "average_price": 629,
      "discount_percentage": 47,
      "flight_link": "https://www.google.com/travel/flights?tfs=CCoQAhojEgoyMDI2LTA5LTEwagcIARIDQkNOcgwIAhIIL20vMGozd3QaIxIKMjAyNi0wOS0yNGoMCAISCC9tLzBqM3d0cgcIARIDQkNOQAFIAVIDVVNEenxDalJJZEcxNVluTnZkMDFVTkUxQlZFcHlTRUZDUnkwdExTMHRMUzB0TFc5clltWndNVUZCUVVGQlIyNTJRemROUjNFMGVsRkJFaEpFWldGc1EyOXVjM1J5WVdsdWRITXdMVEVhQ3dpTWd3SVFBaG9EVlZORU9EaHdqSU1D&curr=USD&hl=en-US&gl=US&gsas=1",
      "serpapi_flight_link": "https://serpapi.com/search.json?arrival_id=%2Fm%2F0j3wt&currency=USD&deep_search=true&departure_id=BCN&engine=google_flights&gl=us&hl=en&outbound_date=2026-09-10&return_date=2026-09-24",
      "thumbnail": "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcSsglv7o7nXJ4jrjRnhLI3B1jKGOoXOw8RWlotlyIfOx7yNr3rAANfliSWt0KZvDk8C5gdq2w",
      "start_date": "2026-09-10",
      "end_date": "2026-09-24",
      "departure_airport_code": "BCN",
      "arrival_airport_code": "BJL",
      "flight_duration": 320,
      "stops": 0,
      "airline": "Vueling",
      "airline_code": "VY",
      "description": "Gambian capital city on the Gambia River, with the lively Albert Market & nearby Tanji Bird Reserve.",
      "highlights": "Gambia River & lively Albert Market"
    },
    {
      "destination_id": "/m/01k4f",
      "name": "Basel",
      "country": "Switzerland",
      "price": 64,
      "average_price": 111,
      "discount_percentage": 43,
      "flight_link": "https://www.google.com/travel/flights?tfs=CCoQAhojEgoyMDI2LTA5LTI4agcIARIDQkNOcgwIAhIIL20vMDFrNGYaIxIKMjAyNi0xMC0xMmoMCAISCC9tLzAxazRmcgcIARIDQkNOQAFIAVIDVVNEenxDalJJZEcxNVluTnZkMDFVTkUxQlZFcHlTRUZDUnkwdExTMHRMUzB0TFc5clltWndNVUZCUVVGQlIyNTJRemROUjNFMGVsRkJFaEpFWldGc1EyOXVjM1J5WVdsdWRITXdMVElhQ2dpNU1SQUNHZ05WVTBRNE9IQzVNUT09&curr=USD&hl=en-US&gl=US&gsas=1",
      "serpapi_flight_link": "https://serpapi.com/search.json?arrival_id=%2Fm%2F01k4f&currency=USD&deep_search=true&departure_id=BCN&engine=google_flights&gl=us&hl=en&outbound_date=2026-09-28&return_date=2026-10-12",
      "thumbnail": "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcQa4BCtZVNz5JSw5e2-IGIhpMNu2sk_gJ88BtIogcsmMFu71_a__xNMJVnA1dqUrCITVwgNHA",
      "start_date": "2026-09-28",
      "end_date": "2026-10-12",
      "departure_airport_code": "BCN",
      "arrival_airport_code": "BSL",
      "flight_duration": 110,
      "stops": 0,
      "description": "Swiss city with many museums, including Renzo Piano–designed Fondation Beyeler & Museum Tinguely.",
      "highlights": "Museum Tinguely, Fondation Beyeler & Zoo"
    },
    ...
  ],
  ...
}

JSON structure overview

{
  ...
  "departure_informations": {
    "airport_name": "String - Name of the departure airport. Not present when departure_id is a city ID",
    "airport_code": "String - IATA code of the departure airport. Not present when departure_id is a city ID",
    "city": "String - Name of the departure city",
    "city_id": "String - Google knowledge graph ID of the departure city (e.g. /m/05qtj)",
    "country": "String - Name of the departure country. Not present when departure_id is a city ID",
    "gps_coordinates": {
      "latitude": "Float - Latitude of the departure airport",
      "longitude": "Float - Longitude of the departure airport"
    }
  },
  "deals": [
    {
      "destination_id": "String - Google knowledge graph ID of the destination (e.g. /m/0k02q)",
      "name": "String - Name of the destination city",
      "country": "String - Name of the destination country",
      "price": "Number - Price of the flight deal in the selected currency",
      "average_price": "Number - Average price for this route. Not always present",
      "discount_percentage": "Number - Discount percentage compared to the average price. Not always present",
      "flight_link": "String - Direct link to the flight on Google Flights",
      "serpapi_flight_link": "String - SerpApi link to retrieve detailed flight information",
      "thumbnail": "String - URL of the destination thumbnail image",
      "start_date": "String - Outbound flight date (YYYY-MM-DD)",
      "end_date": "String - Return flight date (YYYY-MM-DD). Not present for one-way flights",
      "departure_airport_code": "String - IATA code of the departure airport",
      "arrival_airport_code": "String - IATA code of the arrival airport",
      "flight_duration": "Integer - Total flight duration in minutes",
      "stops": "Integer - Number of stops (0 for non-stop flights)",
      "airline": "String - Name of the airline. Not always present",
      "airline_code": "String - IATA code of the airline. Not always present",
      "description": "String - Short description of the destination. Not always present",
      "highlights": "String - Key highlights of the destination"
    }
  ]
}