Skip to content

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 /oneway and POST /roundtrip: round-trips come back as paired itineraries, not stapled legs
  • price_insights_low / high + Google's verdict on every result, on every plan
  • X-Search-Status separates "no flights" from "the search failed"

Free tier on RapidAPI. No card to try.

POST /api/google_flights/oneway/v1
captured run · 2026-08-26
{
  "from_airport": "JFK",
  "to_airport": "CUN",
  "departure_date": "2027-01-01",
  "limit": 5,
  "currency": "usd"
}
Replays the captured request: free, no account, nobody's quota.

Short answer

What the FlightPowers Google Flights API returns

Two endpoints, 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.
JFK → CUN one-way · first 2 of 5 results, trimmed · captured 2026-08-26
[
  {
    "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"
  }
]
FieldTypeMeaningFirst row
price / price_as_numberstring · numberThe 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_highnumber | nullGoogle'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" | nullGoogle'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 · stopsstring · string · intCarrier, flying time (also as duration_seconds) and stop count, with stops_info per layover.American · 4 hr 25 min · 0
buy_linkstringReopens 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.

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_datestring

The travel date as YYYY-MM-DD.

from_airportstring

Origin IATA code. New York is JFK.

to_airportstring

Destination IATA code.

Optional · filtering

max_stopsint

Maximum 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–23

Hour-of-day windows for departure and arrival.

max_priceint

Upper bound on the fare, in the requested currency.

seat_typeint

Cabin: 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.

currencystring

Defaults to USD.

limitint

Maximum results returned. Defaults to 10.

strictbool

Opt-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_proxybool

Default 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_datestring

Both travel dates, YYYY-MM-DD.

from_airport / to_airportstring

IATA codes, as on one-way.

Optional · per leg

max_departure_stops / max_return_stopsint

Stop 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–23

departure_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_proxy

Exactly as on one-way, applied to the paired search as a whole.

returns_per_outboundint 1–5

How 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 problemHow this API handles it
Round-trips return broken or unpaired legsA real /roundtrip endpoint with paired itineraries and combined totals.
No sense of whether a price is goodGoogle’s own price band and a low | typical | high verdict on every result.
You have to bring your own SerpApi key and pay twiceOne subscription. No third-party key, no second bill.
An empty response could mean “no flights” or a failed scrape, and you cannot tell whichFailed 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 loadResidential proxy routing on by default, switchable per request.
Filters are a thin subset of the Google Flights UIStops, airlines, exclusions, time-of-day windows per leg, cabin, passenger mix, max price, currency.
Serial only, so flexible dates take minutesRate limits sized for parallel date scans: 150 / 250 / 500 requests per minute by plan.

Pricing

Every plan gets both endpoints

PlanPrice / moRequests$ / 1k reqOverageRate limit
BASICFree10 / mo—hard cap—Get this plan →
PRO$102,500 / mo$4.00$0.003 / req150 / minGet this plan →
ULTRArecommended$2510,000 / mo$2.50$0.002 / req250 / minGet this plan →
MEGA$5025,000 / mo$2.00$0.0015 / req500 / minGet 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.