Google Flights Deals API Documentation

GET   /api/v1/search?engine=google_flights_deals

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_286 is 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 with max_price, included_airlines, a stops other than any, a travel_class other than economy, 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, and first_class. A non-economy class returns deals priced for that cabin, and cannot be combined with q.

  • 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.
    Any value other than any cannot be combined with q.

  • 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., AC for Air Canada or ONEWORLD for 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 with q.

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's booking_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_key authenticates 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 true to 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

Flight deals from New York
GET
https://www.searchapi.io/api/v1/search?departure_id=%2Fm%2F02_286&engine=google_flights_deals
Request
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)
Response
{
  "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

Filter by stops and price
GET
https://www.searchapi.io/api/v1/search?currency=USD&departure_id=%2Fm%2F02_286&engine=google_flights_deals&max_price=500&stops=nonstop
Request
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)
Response
{
  "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

Curate destinations with an AI prompt
GET
https://www.searchapi.io/api/v1/search?currency=USD&departure_id=%2Fm%2F02_286&engine=google_flights_deals&q=beaches+and+islands
Request
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)
Response
{
  "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
    }
  ]
}