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
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.
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.
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.
Set it up once
Add your ASINs, keywords, places or apps to a scraper in the web app. New accounts get 5 free requests.
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.
Saved in your database
Each run adds dated rows, so this week sits next to last week. Rows are kept for 90 days.
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.
- 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
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.
sw status_sw_statusResult of this row: OK, no results, or an error | sw source url_sw_source_urlThe input you gave: a link, keyword or ID | sw position_sw_positionRank of the item as the site shows it | sw title_sw_titleMain name of the item | sw external id_sw_external_idThe site's own ID for this item | sw id kind_sw_id_kindWhat kind of ID the external ID is | sw image_sw_imageMain image link | sw price_sw_pricePrice as a number | sw currency_sw_currencyCurrency of the price | sw price unit_sw_price_unitWhat the price covers: item, night, trip, offer | sw seller_sw_sellerWho sells or publishes it | sw location_sw_locationPlace the result is priced or ranked for | sw fetched at_sw_fetched_atWhen we collected this row (UTC) | flights[0]_departure_airport_nameflights[0]_departure_airport_nameFlights #1 departure airport name | flights[0]_departure_airport_idflights[0]_departure_airport_idFlights #1 departure airport id |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| OK | https://www.google.com/travel/flights?q=JFK+to+LAX+2026-10-14+return+2026-10-21 | 1 | JetBlue B6 923 | CjRIUE1sMWlrZm9sZWdBQ01YS0FCRy0tLS0tLWNlY2UxNi1uMUFBQUFBR3FxWFI4T3Q5VnVBEgVCNjkyMxoLCLaAAhACGgNVU0Q4HHC2gAI= | booking_token | https://www.gstatic.com/flights/airline_logos/70px/B6.png | 329 | USD | trip | JetBlue | JFK→LAX | 2026-09-16T10:48:53Z | John F. Kennedy International Airport | JFK |
| OK | https://www.google.com/travel/flights?q=JFK+to+LAX+2026-10-14+return+2026-10-21 | 2 | American AA 171 | CjRIUE1sMWlrZm9sZWdBQ01YS0FCRy0tLS0tLWNlY2UxNi1uMUFBQUFBR3FxWFI4T3Q5VnVBEgVBQTE3MRoLCISuAhACGgNVU0Q4HHCErgI= | booking_token | https://www.gstatic.com/flights/airline_logos/70px/AA.png | 387 | USD | trip | American | JFK→LAX | 2026-09-16T10:49:30Z | John F. Kennedy International Airport | JFK |
| OK | https://www.google.com/travel/flights?q=JFK+to+LAX+2026-10-14+return+2026-10-21 | 3 | JetBlue B6 323 | CjRIUE1sMWlrZm9sZWdBQ01YS0FCRy0tLS0tLWNlY2UxNi1uMUFBQUFBR3FxWFI4T3Q5VnVBEgVCNjMyMxoLCOe9AhACGgNVU0Q4HHDnvQI= | booking_token | https://www.gstatic.com/flights/airline_logos/70px/B6.png | 407 | USD | trip | JetBlue | JFK→LAX | 2026-09-16T10:50:07Z | John F. Kennedy International Airport | JFK |
| OK | https://www.google.com/travel/flights?q=JFK+to+LAX+2026-10-14+return+2026-10-21 | 4 | JetBlue B6 223 | CjRIUE1sMWlrZm9sZWdBQ01YS0FCRy0tLS0tLWNlY2UxNi1uMUFBQUFBR3FxWFI4T3Q5VnVBEgVCNjIyMxoLCOe9AhACGgNVU0Q4HHDnvQI= | booking_token | https://www.gstatic.com/flights/airline_logos/70px/B6.png | 407 | USD | trip | JetBlue | JFK→LAX | 2026-09-16T10:50:44Z | John F. Kennedy International Airport | JFK |
| OK | https://www.google.com/travel/flights?q=JFK+to+LAX+2026-10-14+return+2026-10-21 | 5 | American AA 2907 | CjRIUE1sMWlrZm9sZWdBQ01YS0FCRy0tLS0tLWNlY2UxNi1uMUFBQUFBR3FxWFI4T3Q5VnVBEg1BQTI5MDd8QUExMzQ5GgsI8K0CEAIaA1VTRDgccPCtAg== | booking_token | https://www.gstatic.com/flights/airline_logos/70px/AA.png | 387 | USD | trip | American | JFK→LAX | 2026-09-16T10:51:21Z | John F. Kennedy International Airport | JFK |
| OK | https://www.google.com/travel/flights?q=JFK+to+LAX+2026-10-14+return+2026-10-21 | 9 | JetBlue B6 1023 | CjRIUE1sMWlrZm9sZWdBQ01YS0FCRy0tLS0tLWNlY2UxNi1uMUFBQUFBR3FxWFI4T3Q5VnVBEgZCNjEwMjMaCwjnvQIQAhoDVVNEOBxw570C | booking_token | https://www.gstatic.com/flights/airline_logos/70px/B6.png | 407 | USD | trip | JetBlue | JFK→LAX | 2026-09-16T10:51:58Z | John F. Kennedy International Airport | JFK |
| OK | https://www.google.com/travel/flights?q=JFK+to+LAX+2026-10-14+return+2026-10-21 | 13 | JetBlue B6 1223 | CjRIUE1sMWlrZm9sZWdBQ01YS0FCRy0tLS0tLWNlY2UxNi1uMUFBQUFBR3FxWFI4T3Q5VnVBEgZCNjEyMjMaCwiQhAMQAhoDVVNEOBxwkIQD | booking_token | https://www.gstatic.com/flights/airline_logos/70px/B6.png | 497 | USD | trip | JetBlue | JFK→LAX | 2026-09-16T10:52:35Z | John F. Kennedy International Airport | JFK |
| OK | https://www.google.com/travel/flights?q=JFK+to+LAX+2026-10-14+return+2026-10-21 | 21 | American AA 300 | CjRIUE1sMWlrZm9sZWdBQ01YS0FCRy0tLS0tLWNlY2UxNi1uMUFBQUFBR3FxWFI4T3Q5VnVBEgVBQTMwMBoLCKmfAxACGgNVU0Q4HHCpnwM= | booking_token | https://www.gstatic.com/flights/airline_logos/70px/AA.png | 532 | USD | trip | American | JFK→LAX | 2026-09-16T10:53:12Z | John F. Kennedy International Airport | JFK |
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
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.
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.
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.
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.
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
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.