Google Flights API
Flights API for live Google Flights fares
FlightPowers is a flights API for developers and AI agents: live Google Flights fares with Google's low/typical/high price band and a round trip priced as one request, over REST, MCP and n8n on one RapidAPI key. Free tier of 10 searches, PRO $10 for 2,500. Best for price tracking, date scans and AI agents; no booking.
Also called a flight price API, airfare API or flight search API. PRO is about a sixth of SerpApi's price per search (their cheapest plan is $25 for 1,000).
POST /onewayandPOST /roundtrip: round-trips come back as paired itineraries, not stapled legsprice_insights_low / high+ Google's verdict on every result, on every planX-Search-Statusseparates "no flights" from "the search failed"
Free tier on RapidAPI. No card to try.
{
"from_airport": "JFK",
"to_airport": "CUN",
"departure_date": "2027-01-01",
"limit": 5,
"currency": "usd"
}Short answer
What the FlightPowers Google Flights API returns
POST /v1/flights/oneway and POST /v1/flights/roundtrip, on api.flightpowers.com, or the same two as /api/google_flights/oneway/v1 and /api/google_flights/roundtrip/v1 on google-flights-live-api.p.rapidapi.com with a RapidAPI key. Both take IATA codes and YYYY-MM-DD dates and return flat JSON: live Google Flights fares with a booking link, Google's own price band, and a low | typical | high verdict on every result.[
{
"from_airport": "New York (JFK)",
"to_airport": "Cancun (CUN)",
"departure_date": "2027-01-01",
"airline": "American",
"price": "$177",
"price_as_number": 177,
"duration": "4 hr 25 min",
"stops": 0,
"price_insights_low": 140,
"price_insights_high": 180,
"price_range_in_relation_to_other_periods": "typical"
},
{
"from_airport": "New York (JFK)",
"to_airport": "Cancun (CUN)",
"departure_date": "2027-01-01",
"airline": "American",
"price": "$177",
"price_as_number": 177,
"duration": "4 hr 30 min",
"stops": 0,
"price_insights_low": 140,
"price_insights_high": 180,
"price_range_in_relation_to_other_periods": "typical"
}
]| Field | Type | Meaning | First row |
|---|---|---|---|
price / price_as_number | string · number | The fare as a display string and as a sortable number. On a round trip the same pair is total_price / total_price_as_number, for the whole paired itinerary. | $177 · 177 |
price_insights_low / price_insights_high | number | null | Google's own usual price range for this route and these dates. Null when Google publishes no band. | 140 – 180 |
price_range_in_relation_to_other_periods | "low" | "typical" | "high" | null | Google's verdict on this fare against that band. It rides on the round-trip pair too, so one request judges a whole trip. | typical |
airline · duration · stops | string · string · int | Carrier, flying time (also as duration_seconds) and stop count, with stops_info per layover. | American · 4 hr 25 min · 0 |
buy_link | string | Reopens that exact itinerary on Google Flights, in the currency you requested. | google.com/travel/flights?tfs=… |
X-Search-Status | "ok" | "empty" | "partial" | "degraded" | A response header, not a body field: it separates a real empty result from a search that did not complete. | ok |
Airports come back as "City (IATA)" display strings. A round trip is one request, not two: the return-leg fan-out happens inside the API and bills as a single call.
Rate limits are 150 / 250 / 500 requests/minute on the paid plans, which is what makes a month-long parallel date scan finish in one burst.
Is there a free API for flights?
Yes, with limits: the BASIC plan on RapidAPI is 10 searches a month at $0 with no card, and the free, ad-supported MCP server gives 50 searches a day (250 a month) with a Google sign-in; PRO is $10 for 2,500.
Is Google Flights API free?
Google has no public flights API (QPX Express closed in 2018); this is an independent API that reads Google Flights live at request time, and its free tier is 10 searches a month.
The endpoints
Two endpoints, five things worth a page each
Every plan gets all of it. You only ever choose volume and rate limit.
POST /oneway
One-way search
The base endpoint: route and date in, every live fare out. Full filter set, flat JSON.
POST /roundtrip
Round-trip search
One object per itinerary, both legs pre-paired, with combined price, duration, and stops.
response fields
Price insights
Google’s historical price band and its low | typical | high verdict, on every result.
response headers
Search status
ok | empty | partial | degraded. An empty array is an answer, never a shrug.
rate limits
Parallel date scans
150 / 250 / 500 req/min by plan: a whole month of dates in one burst.
After hotel data instead? The Booking.com Hotels API docs are documented to the same depth: destination search, name lookup, room-level pricing and geo-pricing.
POST /api/google_flights/oneway/v1
One-way: the full request surface
Three required fields; everything else narrows the search. The dedicated one-way page covers each response field too.
Required
departure_datestringThe travel date as YYYY-MM-DD.
from_airportstringOrigin IATA code. New York is JFK.
to_airportstringDestination IATA code.
Optional · filtering
max_stopsintMaximum stops per itinerary. 0 for nonstop only.
airline_codes / exclude_airline_codesstring[]Restrict results to these carriers, or keep everything except them.
departure_time_min / _max, arrival_time_min / _maxint 0–23Hour-of-day windows for departure and arrival.
max_priceintUpper bound on the fare, in the requested currency.
seat_typeintCabin: 1 Economy, 2 Premium economy, 3 Business, 4 First.
Optional · shape & behavior
sort_type"Overall" | "Price" | "Duration"Default Overall. Note that "Price" reflects Google's own ordering, not a strict sort. Sort locally on price_as_number for exact price order.
passengersint[]Passenger mix: 1 adult, 2 child, 3 infant on lap, 4 infant in seat.
currencystringDefaults to USD.
limitintMaximum results returned. Defaults to 10.
strictboolOpt-in, default false: a search that did not complete returns HTTP 503 instead of an empty array. Details on the search-status page.
use_ext_proxyboolDefault true: routes through a residential proxy to reduce blocks. Set false for lower latency on easy routes.
POST /api/google_flights/roundtrip/v1
Round-trip: same controls, split per leg
Four required fields, and every one-way filter exists twice: once for the outbound, once for the return.
Required
departure_date / return_datestringBoth travel dates, YYYY-MM-DD.
from_airport / to_airportstringIATA codes, as on one-way.
Optional · per leg
max_departure_stops / max_return_stopsintStop limits set independently. Nonstop out, one stop back is a valid ask.
departure_airline_codes / return_airline_codesstring[]Per-leg carrier restrictions, with matching _exclude_ variants for both legs.
departure_* / return_* time windowsint 0–23departure_departure_time_min/_max, departure_arrival_time_min/_max, and the return_-prefixed equivalents.
There is no max_stops field here: on the RapidAPI endpoints use max_departure_stops / max_return_stops. It is accepted as a convenience alias only when calling through api.flightpowers.com.
Optional · shared
sort_type · currency · max_price · seat_type · passengers · limit · strict · use_ext_proxyExactly as on one-way, applied to the paired search as a whole.
returns_per_outboundint 1–5How many return flights to pair with each outbound flight, 1 to 5. Defaults to 2. The paired itineraries are ranked together and limit still caps how many come back. limit also sets how many outbound flights are searched (one return lookup each), so a higher limit is slower. With the default limit, 5 means the 10 results are the best of up to 50 pairings instead of 20. Not applied to results that come from the fallback source (X-Search-Fallback: used without X-Search-Notes: upstream_no_render). Must be a whole number from 1 to 5 (null is rejected).
Why this one
Common gaps in other Google Flights APIs
Each row is a failure mode this API was designed against, and every right-hand answer is provable on the pages above, not adjectives.
| The problem | How this API handles it |
|---|---|
| Round-trips return broken or unpaired legs | A real /roundtrip endpoint with paired itineraries and combined totals. |
| No sense of whether a price is good | Google’s own price band and a low | typical | high verdict on every result. |
| You have to bring your own SerpApi key and pay twice | One subscription. No third-party key, no second bill. |
| An empty response could mean “no flights” or a failed scrape, and you cannot tell which | Failed reads are retried, and an empty array counts as an answer only when the page said so. X-Search-Status tells a real empty apart from a degraded search, and opt-in strict turns a degraded one into a 503. |
| Blocked by Google under load | Residential proxy routing on by default, switchable per request. |
| Filters are a thin subset of the Google Flights UI | Stops, airlines, exclusions, time-of-day windows per leg, cabin, passenger mix, max price, currency. |
| Serial only, so flexible dates take minutes | Rate limits sized for parallel date scans: 150 / 250 / 500 requests per minute by plan. |
Pricing
Every plan gets both endpoints
| Plan | Price / mo | Requests | $ / 1k req | Overage | Rate limit | |
|---|---|---|---|---|---|---|
| BASIC | Free | 10 / mo | — | hard cap | — | Get this plan → |
| PRO | $10 | 2,500 / mo | $4.00 | $0.003 / req | 150 / min | Get this plan → |
| ULTRArecommended | $25 | 10,000 / mo | $2.50 | $0.002 / req | 250 / min | Get this plan → |
| MEGA | $50 | 25,000 / mo | $2.00 | $0.0015 / req | 500 / min | Get this plan → |
Swipe the table sideways for overage and rate limits.
Every plan on this API includes all of its endpoints; flights and hotels are separate subscriptions. Read from the live listing on 2026-09-28; the listing is authoritative.
Questions, answered plainly
- Is there a free Google Flights API?
- Yes, with limits. The FlightPowers Google Flights API on RapidAPI has a BASIC plan with 10 requests per month at $0, no card required. That is enough to verify your key and see the response shape, not to evaluate or use day-to-day. Google's own QPX Express API was retired in 2018 and is no longer available. The RapidAPI free tier is not affiliated with or endorsed by Google; it is an independent API that reads the public Google Flights site live at request time. Retrieved 2026-09-01: 368 subscribers, 4.2/5 rating on the RapidAPI listing.
- Is this an official Google API?
- No. FlightPowers is an independent API that reads the public Google Flights site live at request time; it is not affiliated with or endorsed by Google. The fields it returns, including the price band and the low | typical | high verdict, are the values Google shows travellers, passed through as-is.
- What data does each flight result include?
- Flat JSON per itinerary: price as a display string and a number (price / price_as_number), airline, duration in text and seconds, stop count with per-layover details, local departure and arrival times, a buy_link that reopens the exact itinerary on Google Flights, and Google’s price_insights_low / price_insights_high band with a low | typical | high verdict.
- Is the round-trip endpoint really one search?
- Yes. POST /roundtrip returns one object per itinerary with total_price, total_duration_seconds, total_stops, and the outbound and return legs already paired, not two one-way responses you have to combine yourself. Each leg takes its own filters.
- What happens when a route has no flights?
- The response says so explicitly. X-Search-Status: empty means the search completed and Google genuinely has no itineraries. The empty array is the answer. X-Search-Status: degraded means the search did not complete and the empty array says nothing about availability. Opt-in strict: true turns a degraded search into an HTTP 503 instead.
- How do I search flexible dates?
- One request per date, fired in parallel. “3 to 5 nights, JFK to Paris or Prague, anywhere in May” is 31 dates × 3 durations × 2 destinations = 186 requests. The per-minute rate limits (150 on Pro, 250 on Ultra, 500 on Mega) are sized so that finishes in a burst or two, not a serial loop.
- Do I need a SerpApi key or another scraping subscription?
- No. One RapidAPI subscription covers everything on this page. There is no third-party key to bring and no second bill.
- How much does the Google Flights API cost?
- Plans on RapidAPI: a $0 BASIC tier (10 requests/month, hard cap: it verifies your key, it doesn’t evaluate), then $10, $25, $50 per month for 2,500, 10,000, 25,000 requests. Every plan includes both endpoints and every response field.
- How fast is a search?
- Results are scanned live against Google Flights at request time, not served from a cache, so response time tracks route complexity. Dense routes with many connections take longer than trunk routes, and a search that has to retry an unreadable page takes longer still. Set a generous client timeout.
Every fare, judged, from one subscription
Live Google Flights data with the price band, verdict, and booking link attached to every result.
Free tier: 10 requests/month. No card to try.
Docs: the Flights API and the MCP servers.