Google Flights Deals API Documentation
The Google Flights Deals API scrapes the
Google Flights Deals
page and returns a ranked list of cheap round-trip flight deals from a given origin. Each deal is ranked by how much cheaper it is than usual for that route, time of year, and trip length.
The feed is origin-only by design: there is no arrival_id, and travel dates cannot be requested — the destinations
and each deal's own cheapest dates are what the API returns. For a specific route or dates, use the
Google Flights API.
Each deal exposes the destination's kgmid, which you can pass as arrival_id to the
Google Travel Explore Destination API
for detailed flight options. For accommodations, pass the destination's name as q to the
Google Hotels API, which takes free text rather than a kgmid.
The booking_link opens the full itinerary in Google Flights.
API Parameters
Search Query
-
- Name
-
departure_id - Required
- Required
- Description
-
This parameter specifies the origin to find deals from. Available options can be:
- Airport Code: A 3-letter code representing the departure airport (e.g., JFK for John F. Kennedy International Airport). You can find these codes using resources like Google Flights or IATA.
-
Location Identifier (kgmid): A string that begins with /m/ or /g/, used to represent a specific location (a city covers all of its airports). You can find this identifier on Wikidata by looking for the "Freebase ID". For example,
/m/02_286is the identifier for New York, United States.
-
- Name
-
q - Required
- Optional
- Description
-
Free-text prompt describing the kind of destinations you want (e.g.
beaches and islands,places with great food,ski trips). Google's AI interprets the prompt and curates the deals to matching destinations, replacing the default "cheapest anywhere" spread. Google honors a prompt or the filters, never both, so combining it withmax_price,included_airlines, astopsother thanany, atravel_classother thaneconomy, or a passenger count above its default is rejected with a 400 rather than answered with unfiltered results.
Passengers
-
- Name
-
adults - Required
- Optional
- Description
-
Number of adult passengers. Deal prices reflect this count only when the request also carries a filter; on its own it leaves the default feed unchanged. A count above the default cannot be combined with
q.
-
- Name
-
children - Required
- Optional
- Description
-
Number of child passengers. Deal prices reflect this count only when the request also carries a filter; on its own it leaves the default feed unchanged. A count above the default cannot be combined with
q.
-
- Name
-
infants_in_seat - Required
- Optional
- Description
-
Number of infants with their own seat. Deal prices reflect this count only when the request also carries a filter; on its own it leaves the default feed unchanged. A count above the default cannot be combined with
q.
-
- Name
-
infants_on_lap - Required
- Optional
- Description
-
Number of infants on lap. Deal prices reflect this count only when the request also carries a filter; on its own it leaves the default feed unchanged. A count above the default cannot be combined with
q.
Filters
-
- Name
-
travel_class - Required
- Optional
- Description
-
Cabin class for the deals. Available options are
economy,premium_economy,business, andfirst_class. A non-economy class returns deals priced for that cabin, and cannot be combined withq.
-
- Name
-
stops - Required
- Optional
- Description
-
Maximum number of stops per flight. Available options:
-
any- Any number of stops. Default nonstop- Nonstop only.one_stop_or_fewer- 1 stop or fewer.two_stops_or_fewer- 2 stops or fewer.
anycannot be combined withq. -
-
- Name
-
max_price - Required
- Optional
- Description
-
Maximum round-trip deal price, in the requested currency. Only deals at or below this price are returned. Default is unlimited. Cannot be combined with
q.
-
- Name
-
included_airlines - Required
- Optional
- Description
-
Restricts deals to specific airlines or alliances. An airline or alliance ID is an uppercase code (e.g.,
ACfor Air Canada orONEWORLDfor the oneworld alliance). Airline codes can be found on IATA. Combine multiple by joining them with a comma, for example:AC,ONEWORLD. Cannot be combined withq.
Localization
-
- Name
-
currency - Required
- Optional
- Description
-
Currency for prices, as a 3-letter ISO 4217 code (e.g.
USD,EUR,GBP).
-
- Name
-
hl - Required
- Optional
- Description
-
Language code for the results (e.g.
en-US,es,fr). Translates destination names and descriptions; it does not change which deals are returned.
-
- Name
-
gl - Required
- Optional
- Description
-
Country code, as a 2-letter ISO 3166 code (e.g.
US,GB,DE). Currently has no observable effect on the returned deals, prices, or localization. It is only echoed into each deal'sbooking_link.
Engine
-
- Name
-
engine - Required
- Required
- Description
-
Parameter defines an engine that will be used to retrieve real-time data. It must be set to
google_flights_deals.
API key
-
- Name
-
api_key - Required
- Required
- Description
-
The
api_keyauthenticates your requests. Use it as a query parameter (https://www.searchapi.io/api/v1/search?api_key=YOUR_API_KEY) or in the Authorization header (Bearer YOUR_API_KEY).
Zero Data Retention
-
- Name
-
zero_retention - Enterprise Only
- Enterprise Only
- Required
- Optional
- Description
-
Set this parameter to
trueto disable all logging and persistent storage. No request parameters, HTML, or JSON responses are stored or logged. Suitable for high-compliance use cases. Debugging and support may be limited while enabled.
API Examples
Flight deals from New York
https://www.searchapi.io/api/v1/search?departure_id=%2Fm%2F02_286&engine=google_flights_deals
- Python
- Node
- Ruby
- Java
- Go
- PHP
- Bash
- R
- Kotlin
- Swift
- C#
- C
- C++
- requests
import requests
url = "https://www.searchapi.io/api/v1/search"
params = {
"engine": "google_flights_deals",
"departure_id": "/m/02_286"
}
response = requests.get(url, params=params)
print(response.text)
{
"search_metadata": {
"id": "search_tPiAcmx1NWtFKq0MbfUaVRj6",
"status": "Success",
"created_at": "2026-08-24T09:07:51Z",
"request_time_taken": 1.35,
"parsing_time_taken": 0.01,
"total_time_taken": 1.36,
"request_url": "https://www.google.com/travel/flights/deals?tfs=CBwQBhobEgoyMDI2LTA5LTIzag0IAxIJL20vMDJfMjg2GhsSCjIwMjYtMDktMz...",
"html_url": "https://www.searchapi.io/api/v1/searches/search_tPiAcmx1NWtFKq0MbfUaVRj6.html",
"json_url": "https://www.searchapi.io/api/v1/searches/search_tPiAcmx1NWtFKq0MbfUaVRj6"
},
"search_parameters": {
"engine": "google_flights_deals",
"departure_id": "/m/02_286",
"adults": "1",
"children": "0",
"infants_in_seat": "0",
"infants_on_lap": "0",
"travel_class": "economy",
"stops": "any",
"currency": "USD",
"hl": "en-US",
"gl": "US"
},
"deals": [
{
"position": 1,
"destination": {
"name": "Knoxville",
"country": "United States",
"airport_code": "TYS",
"kgmid": "/m/0_vn7",
"image": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTX-LaKG3AY1IPOipeGKMfqvoXH7tz1ITPw6WnAk_E4-c9ccYcsMmsqFwi7cOqtb33QeKR2fQ",
"tagline": "Market Square & James White’s Fort",
"description": "Tennessee city with Market Square, James White’s Fort & Museum of East Tennessee History."
},
"origin": {
"airport_code": "EWR"
},
"outbound_date": "2027-01-25",
"return_date": "2027-02-01",
"trip_length_days": 7,
"price": 110,
"typical_price": 270,
"savings_percentage": 59,
"savings_amount": 160,
"stops": 0,
"flight_duration": "2hr 12min",
"duration": 132,
"airline": "Allegiant",
"airline_code": "G4",
"booking_link": "https://www.google.com/travel/flights?tfs=CCoQAhopEgoyMDI3LTAxLTI1ag0IAxIJL20vMDJfMjg2cgwIAhIIL20vMF92bjcaKRIKMjAyNy0wMi0wMWoMCAISCC9tLzBfdm43cg0IAxIJL20vMDJfMjg2UgNVU0R6fENqUkljR1pWVDBkU1prSjNiazFCVFhGNGRtZENSeTB0TFMwdExYWjNabk14T0MxdU1rRkJRVUZCUjNGTlEyVm5SMWRHUlhsQkVoSkVaV0ZzUTI5dWMzUnlZV2x1ZEhNd0xUQWFDZ2o0VlJBQ0dnTlZVMFE0T0hENFZRPT0&curr=USD&hl=en-US&gl=US&gsas=1",
"is_round_trip": true,
"is_multiple_airlines": false
},
{
"position": 2,
"destination": {
"name": "Asheville",
"country": "United States",
"airport_code": "AVL",
"kgmid": "/m/0ydpd",
"image": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS9AM2IYvz1y51bmG75pf4HZHyAByoZO_jFWyVcqRzoAP4OY9yA_48oRQD-Z_f49nNaO3OHoQ",
"tagline": "Biltmore estate & Downtown Art District",
"description": "North Carolina city known for its music, theater & art scenes, & nearby Appalachian Mountains."
},
"origin": {
"airport_code": "EWR"
},
"outbound_date": "2027-01-14",
"return_date": "2027-01-21",
"trip_length_days": 7,
"price": 96,
"typical_price": 199,
"savings_percentage": 52,
"savings_amount": 103,
"stops": 0,
"flight_duration": "2hr 5min",
"duration": 125,
"airline": "Allegiant",
"airline_code": "G4",
"booking_link": "https://www.google.com/travel/flights?tfs=CCoQAhopEgoyMDI3LTAxLTE0ag0IAxIJL20vMDJfMjg2cgwIAhIIL20vMHlkcGQaKRIKMjAyNy0wMS0yMWoMCAISCC9tLzB5ZHBkcg0IAxIJL20vMDJfMjg2UgNVU0R6fENqUkljR1pWVDBkU1prSjNiazFCVFhGNGRtZENSeTB0TFMwdExYWjNabk14T0MxdU1rRkJRVUZCUjNGTlEyVm5SMWRHUlhsQkVoSkVaV0ZzUTI5dWMzUnlZV2x1ZEhNd0xURWFDZ2lBU3hBQ0dnTlZVMFE0T0hDQVN3PT0&curr=USD&hl=en-US&gl=US&gsas=1",
"is_round_trip": true,
"is_multiple_airlines": false
}
]
}
Filter by stops and price
https://www.searchapi.io/api/v1/search?currency=USD&departure_id=%2Fm%2F02_286&engine=google_flights_deals&max_price=500&stops=nonstop
- Python
- Node
- Ruby
- Java
- Go
- PHP
- Bash
- R
- Kotlin
- Swift
- C#
- C
- C++
- requests
import requests
url = "https://www.searchapi.io/api/v1/search"
params = {
"engine": "google_flights_deals",
"departure_id": "/m/02_286",
"stops": "nonstop",
"max_price": "500",
"currency": "USD"
}
response = requests.get(url, params=params)
print(response.text)
{
"search_metadata": {
"id": "search_x7T7NRVY8AiG2CzrY78cc88C",
"status": "Success",
"created_at": "2026-08-24T09:11:39Z",
"request_time_taken": 5.07,
"parsing_time_taken": 0.0,
"total_time_taken": 5.07,
"request_url": "https://www.google.com/travel/flights/deals?tfs=CBwQBhobEgoyMDI2LTA5LTIzag0IAxIJL20vMDJfMjg2GhsSCjIwMjYtMDktMz...",
"html_url": "https://www.searchapi.io/api/v1/searches/search_x7T7NRVY8AiG2CzrY78cc88C.html",
"json_url": "https://www.searchapi.io/api/v1/searches/search_x7T7NRVY8AiG2CzrY78cc88C"
},
"search_parameters": {
"engine": "google_flights_deals",
"departure_id": "/m/02_286",
"adults": "1",
"children": "0",
"infants_in_seat": "0",
"infants_on_lap": "0",
"travel_class": "economy",
"stops": "nonstop",
"max_price": "500",
"currency": "USD",
"hl": "en-US",
"gl": "US"
},
"deals": [
{
"position": 1,
"destination": {
"name": "Knoxville",
"country": "United States",
"airport_code": "TYS",
"kgmid": "/m/0_vn7",
"image": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTX-LaKG3AY1IPOipeGKMfqvoXH7tz1ITPw6WnAk_E4-c9ccYcsMmsqFwi7cOqtb33QeKR2fQ",
"tagline": "Market Square & James White’s Fort",
"description": "Tennessee city with Market Square, James White’s Fort & Museum of East Tennessee History."
},
"origin": {
"airport_code": "EWR"
},
"outbound_date": "2027-01-25",
"return_date": "2027-02-01",
"trip_length_days": 7,
"price": 110,
"typical_price": 399,
"savings_percentage": 72,
"savings_amount": 289,
"stops": 0,
"flight_duration": "2hr 12min",
"duration": 132,
"airline": "Allegiant",
"airline_code": "G4",
"booking_link": "https://www.google.com/travel/flights?tfs=CCoQAhorEgoyMDI3LTAxLTI1KABqDQgDEgkvbS8wMl8yODZyDAgCEggvbS8wX3ZuNxorEgoyMDI3LTAyLTAxKABqDAgCEggvbS8wX3ZuN3INCAMSCS9tLzAyXzI4NkABSAFSA1VTRGD0A3p8Q2pSSVQybDBTMVV0UVVzNE5XOUJURTVWZVhkQ1J5MHRMUzB0ZG5kaWJYY3lNQzF1TWtGQlFVRkJSM0ZOUTNNd1FtSmthelpCRWhKRVpXRnNRMjl1YzNSeVlXbHVkSE13TFRBYUNnajRWUkFDR2dOVlUwUTRPSEQ0VlE9PQ&curr=USD&hl=en-US&gl=US&gsas=1",
"is_round_trip": true,
"is_multiple_airlines": false
},
{
"position": 2,
"destination": {
"name": "Des Moines",
"country": "United States",
"airport_code": "DSM",
"kgmid": "/m/02j3w",
"image": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRljF47xFdj14V7thf-STwNyzzesvuWrwCkuKRuzyEP1Wcqy2jl521jj3Sxx_DnFCz31_Ck_g",
"tagline": "Capitol building & Des Moines Art Center",
"description": "Iowa’s capital city, with domed State Capitol building, Des Moines Art Center & a botanical garden."
},
"origin": {
"airport_code": "EWR"
},
"outbound_date": "2026-12-25",
"return_date": "2027-01-01",
"trip_length_days": 7,
"price": 168,
"typical_price": 519,
"savings_percentage": 68,
"savings_amount": 351,
"stops": 0,
"flight_duration": "3hr 5min",
"duration": 185,
"airline": "Allegiant",
"airline_code": "G4",
"booking_link": "https://www.google.com/travel/flights?tfs=CCoQAhorEgoyMDI2LTEyLTI1KABqDQgDEgkvbS8wMl8yODZyDAgCEggvbS8wMmozdxorEgoyMDI3LTAxLTAxKABqDAgCEggvbS8wMmozd3INCAMSCS9tLzAyXzI4NkABSAFSA1VTRGD0A3p8Q2pSSVQybDBTMVV0UVVzNE5XOUJURTVWZVhkQ1J5MHRMUzB0ZG5kaWJYY3lNQzF1TWtGQlFVRkJSM0ZOUTNNd1FtSmthelpCRWhKRVpXRnNRMjl1YzNSeVlXbHVkSE13TFRFYUN3aWdnd0VRQWhvRFZWTkVPRGh3b0lNQg&curr=USD&hl=en-US&gl=US&gsas=1",
"is_round_trip": true,
"is_multiple_airlines": false
}
]
}
Curate destinations with an AI prompt
https://www.searchapi.io/api/v1/search?currency=USD&departure_id=%2Fm%2F02_286&engine=google_flights_deals&q=beaches+and+islands
- Python
- Node
- Ruby
- Java
- Go
- PHP
- Bash
- R
- Kotlin
- Swift
- C#
- C
- C++
- requests
import requests
url = "https://www.searchapi.io/api/v1/search"
params = {
"engine": "google_flights_deals",
"departure_id": "/m/02_286",
"q": "beaches and islands",
"currency": "USD"
}
response = requests.get(url, params=params)
print(response.text)
{
"search_metadata": {
"id": "search_As4Ni1Bw8eM5ajRO2Tk7FKDk",
"status": "Success",
"created_at": "2026-08-24T09:11:44Z",
"request_time_taken": 27.49,
"parsing_time_taken": 0.01,
"total_time_taken": 27.5,
"request_url": "https://www.google.com/travel/flights/deals?tfs=CBwQBhobEgoyMDI2LTA5LTIzag0IAxIJL20vMDJfMjg2GhsSCjIwMjYtMDktMz...",
"html_url": "https://www.searchapi.io/api/v1/searches/search_As4Ni1Bw8eM5ajRO2Tk7FKDk.html",
"json_url": "https://www.searchapi.io/api/v1/searches/search_As4Ni1Bw8eM5ajRO2Tk7FKDk"
},
"search_parameters": {
"engine": "google_flights_deals",
"q": "beaches and islands",
"departure_id": "/m/02_286",
"adults": "1",
"children": "0",
"infants_in_seat": "0",
"infants_on_lap": "0",
"travel_class": "economy",
"stops": "any",
"currency": "USD",
"hl": "en-US",
"gl": "US"
},
"deals": [
{
"position": 1,
"destination": {
"name": "Huahine-Iti",
"country": "French Polynesia",
"airport_code": "HUH",
"kgmid": "/m/039c2m",
"image": "https://encrypted-tbn0.gstatic.com/licensed-image?q=tbn:ANd9GcSw_1J4EyvULDLh0WW30T3Jv_XS6GZeWaRpm-70vJFelQlRKyYl2ks7xccoEOntev6ruJIxSjE7FXONXgTmxlexDUmXepukvyM",
"tagline": "Lush tropical Polynesian island"
},
"origin": {
"airport_code": "JFK"
},
"outbound_date": "2026-08-31",
"return_date": "2026-09-09",
"trip_length_days": 9,
"price": 1351,
"typical_price": 2158,
"savings_percentage": 37,
"savings_amount": 807,
"stops": 2,
"flight_duration": "20hr 39min",
"duration": 1239,
"booking_link": "https://www.google.com/travel/flights?tfs=CCoQAhoqEgoyMDI2LTA4LTMxag0IAxIJL20vMDJfMjg2cg0IAhIJL20vMDM5YzJtGioSCjIwMjYtMDktMDlqDQgCEgkvbS8wMzljMm1yDQgDEgkvbS8wMl8yODZSA1VTRHp8Q2pSSVpFUkJjRlF3UjNSb1FVMUJXR2xZVEhkQ1J5MHRMUzB0TFMwdExXOTVZbVY1TlVGQlFVRkJSM0ZOUTNWclN6WTFjazlCRWhKRVpXRnNRMjl1YzNSeVlXbHVkSE13TFRBYUN3aXJud2dRQWhvRFZWTkVPRGh3cTU4SQ&curr=USD&hl=en-US&gl=US&gsas=1",
"is_round_trip": true,
"is_multiple_airlines": true
},
{
"position": 2,
"destination": {
"name": "Bora Bora",
"country": "French Polynesia",
"airport_code": "BOB",
"kgmid": "/m/02j_kj",
"image": "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSgDaqf1mDNWaeJjHn4-8M7LMwiAJQmTEf44GrllhKP4KO7d5-DUd0GWugiqCdit9_il2qykw",
"tagline": "Mt. Otemanu, snorkeling & beaches",
"description": "French Polynesian island with beaches, snorkeling in a blue lagoon & Mt. Otemanu, an extinct volcano"
},
"origin": {
"airport_code": "JFK"
},
"outbound_date": "2026-08-31",
"return_date": "2026-09-09",
"trip_length_days": 9,
"price": 1481,
"typical_price": 2221,
"savings_percentage": 33,
"savings_amount": 740,
"stops": 3,
"flight_duration": "20hr 54min",
"duration": 1254,
"booking_link": "https://www.google.com/travel/flights?tfs=CCoQAhoqEgoyMDI2LTA4LTMxag0IAxIJL20vMDJfMjg2cg0IAhIJL20vMDJqX2tqGioSCjIwMjYtMDktMDlqDQgCEgkvbS8wMmpfa2pyDQgDEgkvbS8wMl8yODZSA1VTRHp8Q2pSSVpFUkJjRlF3UjNSb1FVMUJXR2xZVEhkQ1J5MHRMUzB0TFMwdExXOTVZbVY1TlVGQlFVRkJSM0ZOUTNWclN6WTFjazlCRWhKRVpXRnNRMjl1YzNSeVlXbHVkSE13TFRFYUN3akJoQWtRQWhvRFZWTkVPRGh3d1lRSg&curr=USD&hl=en-US&gl=US&gsas=1",
"is_round_trip": true,
"is_multiple_airlines": true
}
]
}