Google Flights API

Google Flights API: fares for any route and date

Send two airport codes and a date. You get about 30 flight options back, each with airline, times, stops, legroom and price, plus Google's own verdict on whether today's fare is low, typical or high.

per 1,000 calls
€1.50
per call
€0.0015
0.15 cents
rows per call
up to 33
per 1,000 rows
≈ €0.0455

What one Google Flights call returns

The Google Flights API returns the flight list Google shows for one route and date. That's about 30 options per search, one row each. A search costs €0.0015, so 1,000 searches cost €1.50. You pay from a prepaid wallet with no plan and no monthly fee, and every other source we cover is priced on the all data APIs and prices page. Save a route once, and every run's fares are stored in your Scrapewise account for the table, Excel, your AI assistant or the API.

Each row has the airline and flight number, departure and arrival airports with local times, duration in minutes, aircraft, cabin class, legroom and the extras Google lists, like Wi-Fi or seat power. If the option has a stop, both legs sit on the same row, with the layover airport and how long you wait there.

The part deal hunters care about is on every row: Google's price insight for the route. You get the lowest fare found, a price level of low, typical or high, and the typical price range. We searched New York JFK to Los Angeles for 14 to 21 October 2026. The cheapest round trip was $329 on JetBlue. Google called the level high, with a typical range of $170 to $380.

Google closed QPX Express, its public flight search API, in April 2018. There's been no official way to pull this data since. This page is for people who need it anyway.

Who uses flight data like this

  • Small travel agencies

    A client wants options to Lisbon for the first week of March. One call per date pair gives you the whole list, and you send the five that fit their budget. 300 quotes a month cost €0.45.

  • Cheap-fare and deal-sharing groups

    Admins watch dozens of routes from their home airport and only want to post real drops. Run each route daily and post when the price level comes back low. 50 routes a day for 30 days is 1,500 searches, or €2.25 for the month.

  • Hotel revenue managers

    Some revenue managers watch fares into their city before a big event weekend, next to their own booking pace. Ten inbound routes checked daily cost €0.45 a month.

  • Developers of fare bots and trip planners

    A fare alert bot needs rows it can compare. Every field is its own column, and each option carries Google's booking token.

How it works

  1. Set the route once

    Enter the airport codes and outbound date. For round-trip fares, pick round trip and add a return date. Cabin class, stops and currency are optional.

  2. Let it run every day

    Save the search on a daily schedule. Each run saves every flight option with its date. New accounts get 5 free requests to check the output first.

  3. Use the rows

    Open the table or download Excel, pull rows into your app by API, or ask your AI assistant: 'what was the cheapest nonstop fare for this route each day this week?' Rows are kept for 90 days.

Set it up once. The data keeps coming.

Save your search once and it runs by itself. Every run lands in your own Scrapewise database, and you pick how to read it.

  1. Set it up once

    Add your ASINs, keywords, places or apps to a scraper in the web app. New accounts get 5 free requests.

  2. Runs on your schedule

    Pick daily, weekly on the days you choose, every few days, or the first or last day of the month. Scheduled runs start at night, European time. Need it more often? Start runs from your own code.

  3. Saved in your database

    Each run adds dated rows, so this week sits next to last week. Rows are kept for 90 days.

  4. Use it your way

    Open the table in the web app and download the latest run as an Excel file. Ask your own AI assistant about it. Or pull the rows into your code with an API key.

Ask your AI assistant about your own data

Connect Claude Desktop, Claude Code or another MCP app with a read-only key. The assistant reads the rows you've already collected, at no extra cost on Scrapewise. With a full-access key it can start a run for you too.

  • Which of my ASINs lost the Buy Box this week?
  • Which competitor cut prices the most since Monday?
  • Show the keywords where I dropped out of the top 10.

What you send and what you get back

You send a route and a date, and a return date if you pick round trip. You get about 30 flight options, one row each, with the route's price insight repeated on every row.

You give
  • From (airport code)required
    JFK
  • To (airport code)required
    LAX
  • Departure daterequired
    2026-10-14
  • Return dateoptional
    2026-10-21
  • Cabin classoptional
    1
  • Stopsoptional
    0
  • Currencyoptional
    USD
You get

Up to 33 rows per call, 71 columns each

  • sw status
  • sw source url
  • sw position
  • sw title
  • sw external id
  • sw id kind
  • sw image
  • sw price
  • sw currency
  • sw price unit
  • sw seller
  • sw location
  • +59 more, see all columns

Sample rows: JFK to LAX, 14 to 21 October 2026

Real results from one search run on 16 September 2026, prices in US dollars. Scroll sideways to see every column. Durations are in minutes and carbon emissions in grams.

8 sample rows, showing 15 of 71 columns. One call returns up to 33 rows.

8 sample rows, showing 15 of 71 columns. One call returns up to 33 rows.
sw status_sw_statusResult of this row: OK, no results, or an errorsw source url_sw_source_urlThe input you gave: a link, keyword or IDsw position_sw_positionRank of the item as the site shows itsw title_sw_titleMain name of the itemsw external id_sw_external_idThe site's own ID for this itemsw id kind_sw_id_kindWhat kind of ID the external ID issw image_sw_imageMain image linksw price_sw_pricePrice as a numbersw currency_sw_currencyCurrency of the pricesw price unit_sw_price_unitWhat the price covers: item, night, trip, offersw seller_sw_sellerWho sells or publishes itsw location_sw_locationPlace the result is priced or ranked forsw fetched at_sw_fetched_atWhen we collected this row (UTC)flights[0]_departure_airport_nameflights[0]_departure_airport_nameFlights #1 departure airport nameflights[0]_departure_airport_idflights[0]_departure_airport_idFlights #1 departure airport id
OKhttps://www.google.com/travel/flights?q=JFK+to+LAX+2026-10-14+return+2026-10-211JetBlue B6 923CjRIUE1sMWlrZm9sZWdBQ01YS0FCRy0tLS0tLWNlY2UxNi1uMUFBQUFBR3FxWFI4T3Q5VnVBEgVCNjkyMxoLCLaAAhACGgNVU0Q4HHC2gAI=booking_tokenhttps://www.gstatic.com/flights/airline_logos/70px/B6.png329USDtripJetBlueJFK→LAX2026-09-16T10:48:53ZJohn F. Kennedy International AirportJFK
OKhttps://www.google.com/travel/flights?q=JFK+to+LAX+2026-10-14+return+2026-10-212American AA 171CjRIUE1sMWlrZm9sZWdBQ01YS0FCRy0tLS0tLWNlY2UxNi1uMUFBQUFBR3FxWFI4T3Q5VnVBEgVBQTE3MRoLCISuAhACGgNVU0Q4HHCErgI=booking_tokenhttps://www.gstatic.com/flights/airline_logos/70px/AA.png387USDtripAmericanJFK→LAX2026-09-16T10:49:30ZJohn F. Kennedy International AirportJFK
OKhttps://www.google.com/travel/flights?q=JFK+to+LAX+2026-10-14+return+2026-10-213JetBlue B6 323CjRIUE1sMWlrZm9sZWdBQ01YS0FCRy0tLS0tLWNlY2UxNi1uMUFBQUFBR3FxWFI4T3Q5VnVBEgVCNjMyMxoLCOe9AhACGgNVU0Q4HHDnvQI=booking_tokenhttps://www.gstatic.com/flights/airline_logos/70px/B6.png407USDtripJetBlueJFK→LAX2026-09-16T10:50:07ZJohn F. Kennedy International AirportJFK
OKhttps://www.google.com/travel/flights?q=JFK+to+LAX+2026-10-14+return+2026-10-214JetBlue B6 223CjRIUE1sMWlrZm9sZWdBQ01YS0FCRy0tLS0tLWNlY2UxNi1uMUFBQUFBR3FxWFI4T3Q5VnVBEgVCNjIyMxoLCOe9AhACGgNVU0Q4HHDnvQI=booking_tokenhttps://www.gstatic.com/flights/airline_logos/70px/B6.png407USDtripJetBlueJFK→LAX2026-09-16T10:50:44ZJohn F. Kennedy International AirportJFK
OKhttps://www.google.com/travel/flights?q=JFK+to+LAX+2026-10-14+return+2026-10-215American AA 2907CjRIUE1sMWlrZm9sZWdBQ01YS0FCRy0tLS0tLWNlY2UxNi1uMUFBQUFBR3FxWFI4T3Q5VnVBEg1BQTI5MDd8QUExMzQ5GgsI8K0CEAIaA1VTRDgccPCtAg==booking_tokenhttps://www.gstatic.com/flights/airline_logos/70px/AA.png387USDtripAmericanJFK→LAX2026-09-16T10:51:21ZJohn F. Kennedy International AirportJFK
OKhttps://www.google.com/travel/flights?q=JFK+to+LAX+2026-10-14+return+2026-10-219JetBlue B6 1023CjRIUE1sMWlrZm9sZWdBQ01YS0FCRy0tLS0tLWNlY2UxNi1uMUFBQUFBR3FxWFI4T3Q5VnVBEgZCNjEwMjMaCwjnvQIQAhoDVVNEOBxw570Cbooking_tokenhttps://www.gstatic.com/flights/airline_logos/70px/B6.png407USDtripJetBlueJFK→LAX2026-09-16T10:51:58ZJohn F. Kennedy International AirportJFK
OKhttps://www.google.com/travel/flights?q=JFK+to+LAX+2026-10-14+return+2026-10-2113JetBlue B6 1223CjRIUE1sMWlrZm9sZWdBQ01YS0FCRy0tLS0tLWNlY2UxNi1uMUFBQUFBR3FxWFI4T3Q5VnVBEgZCNjEyMjMaCwiQhAMQAhoDVVNEOBxwkIQDbooking_tokenhttps://www.gstatic.com/flights/airline_logos/70px/B6.png497USDtripJetBlueJFK→LAX2026-09-16T10:52:35ZJohn F. Kennedy International AirportJFK
OKhttps://www.google.com/travel/flights?q=JFK+to+LAX+2026-10-14+return+2026-10-2121American AA 300CjRIUE1sMWlrZm9sZWdBQ01YS0FCRy0tLS0tLWNlY2UxNi1uMUFBQUFBR3FxWFI4T3Q5VnVBEgVBQTMwMBoLCKmfAxACGgNVU0Q4HHCpnwM=booking_tokenhttps://www.gstatic.com/flights/airline_logos/70px/AA.png532USDtripAmericanJFK→LAX2026-09-16T10:53:12ZJohn F. Kennedy International AirportJFK

Columns explained

The table shows every column a flight search returns. Columns that start with sw are the same across all our data APIs, so a flights export lines up with a hotels export. Columns that start with ctx describe the search itself and repeat on every row.

Summary for each option

The quick view: rank on the page, airline and flight number as the title, price, currency, what the price covers (a trip), airline as the seller, the route and when we fetched the row. The sw status column says OK, or tells you why a search came back empty.

  • sw status
  • sw source url
  • sw position
  • sw title
  • sw external id
  • sw id kind
  • sw image
  • sw price
  • sw currency
  • sw price unit
  • sw seller
  • sw location
  • sw fetched at

First leg

Departure and arrival airport names, codes and local times, leg duration in minutes, aircraft, airline and its logo, cabin class, flight number, legroom and up to five extras such as Wi-Fi, power outlets or live TV.

  • flights[0]_departure_airport_name
  • flights[0]_departure_airport_id
  • flights[0]_departure_airport_time
  • flights[0]_arrival_airport_name
  • flights[0]_arrival_airport_id
  • flights[0]_arrival_airport_time
  • flights[0]_duration
  • flights[0]_airplane
  • flights[0]_airline
  • flights[0]_airline_logo
  • flights[0]_travel_class
  • flights[0]_flight_number
  • flights[0]_legroom
  • flights[0]_extensions[0]
  • flights[0]_extensions[1]
  • flights[0]_extensions[2]
  • flights[0]_extensions[3]
  • flights[0]_extensions[4]

Second leg and layover

Filled only when the option has a stop. The same fields as the first leg, plus the layover airport, its code and the wait in minutes. On a nonstop flight these columns stay empty.

  • flights[1]_departure_airport_name
  • flights[1]_departure_airport_id
  • flights[1]_departure_airport_time
  • flights[1]_arrival_airport_name
  • flights[1]_arrival_airport_id
  • flights[1]_arrival_airport_time
  • flights[1]_duration
  • flights[1]_airplane
  • flights[1]_airline
  • flights[1]_airline_logo
  • flights[1]_travel_class
  • flights[1]_flight_number
  • flights[1]_legroom
  • flights[1]_extensions[0]
  • flights[1]_extensions[1]
  • flights[1]_extensions[2]
  • flights[1]_extensions[3]
  • flights[1]_extensions[4]
  • layovers[0]_duration
  • layovers[0]_name
  • layovers[0]_id

Price, trip length and emissions

Total trip time in minutes, the fare, whether it's a round trip or one way, emissions for this flight and for a typical flight on the route, and the difference in percent. The departure and booking tokens are Google's references to this exact option.

  • total_duration
  • price
  • type
  • airline_logo
  • carbon_emissions_this_flight
  • carbon_emissions_typical_for_this_route
  • carbon_emissions_difference_percent
  • departure_token
  • booking_token

Search and price insight

What you asked for (airports, dates, number of adults, currency) and Google's view of the route: the lowest price found, the price level, and the low and high ends of the typical range.

  • ctx_search_parameters_departure_id
  • ctx_search_parameters_arrival_id
  • ctx_search_parameters_outbound_date
  • ctx_search_parameters_return_date
  • ctx_search_parameters_adults
  • ctx_search_parameters_currency
  • ctx_price_insights_lowest_price
  • ctx_price_insights_price_level
  • ctx_price_insights_typical_price_range[0]
  • ctx_price_insights_typical_price_range[1]

What you can do with flight data

01

Post fare alerts only when they're real

Keep rows where the price level is low and the fare sits under the bottom of the typical range. Those are the fares worth sharing.

02

Build a price history for one route

Save the cheapest fare for a route every morning for 30 days. That's 30 searches, or €0.045, and you'll see which days the fare moved and by how much.

03

Compare airlines on the same route

Group rows by airline and look at the cheapest option for each. In our JFK to LAX sample, JetBlue started at $329 and American at $387 for the same dates.

04

Filter by layover

Options with a stop include the layover airport and the wait in minutes. In our sample, one American itinerary went through Chicago O'Hare and took 732 minutes in total, against 369 for JetBlue's nonstop. Drop long waits before you quote.

05

Put emissions next to price

Each option has its estimated emissions, the typical figure for the route and the difference in percent. Our $329 JetBlue flight came out 17% above typical, a number some business clients ask for.

What real setups cost

  • Fare alert group, 50 routes

    A Facebook group for travelers from one city watches its 50 most asked-about routes and checks each once a day for a low price level. That's €2.25 a month.

    calls per month
    1,500
    cost per month
    €2.25
  • Two-person agency

    About 20 client requests each working day, one search per request. 400 searches a month cost €0.60.

    calls per month
    400
    cost per month
    €0.60
  • Deal blog tracking travel windows

    10 routes, each checked daily for three windows: next month, the school holidays and Christmas. 900 searches a month cost €1.35.

    calls per month
    900
    cost per month
    €1.35

Why get flight data here

  • You pay per search

    SerpApi's Starter plan listed $25 a month for 1,000 searches when we checked on 16 September 2026. Here 1,000 searches cost €1.50, and your balance only goes down when a search runs.

  • Google's price verdict from day one

    You don't need months of your own history to know if a fare is good. The price level and typical range come with the very first search.

  • Rows that match our hotel data

    The sw columns are the same on our Google Hotels calls, so flights and rooms can sit in one sheet when you put a package quote together.

What your flight searches will cost

Every search is one call at €0.0015, whatever the route and however many options come back. Enter how many routes you check and how often. Compare all data APIs

Rows (up to)
33,000
You pay
€1.50
FAQ

Frequently asked questions

Yes. Pick round trip and add a return date, and the type column says Round trip, with the price covering the whole trip. The default is one way.

Ready to pull Google data into your stack?

Try 5 requests free, top up from €5 and pay €0.0015 per search. No plan and no monthly fee. See pay-as-you-go pricing for how the wallet works.