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.
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 date2026-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 - Weekend3 - 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 days5,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).
Advanced Filters
stops
Optional
Parameter defines the number of stops during the flight.
Available options:0 - Any number of stops (default)1 - Nonstop only2 - 1 stop or fewer3 - 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 AllianceSKYTEAM - SkyTeamONEWORLD - 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 AllianceSKYTEAM - SkyTeamONEWORLD - Oneworld
exclude_airlines and include_airlines parameters can't be used together.
Serpapi Parameters
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 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
{
"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¤cy=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¤cy=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¤cy=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)
{
...
"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¤cy=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¤cy=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¤cy=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)
{
...
"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¤cy=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_¤cy=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¤cy=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.
{
...
"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¤cy=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_¤cy=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¤cy=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.
{
"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¤cy=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¤cy=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¤cy=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.
{
...
"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¤cy=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¤cy=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¤cy=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"
}
]
}