Google Flights API
Any route and date as structured itineraries — price, airline, duration, stops, per-leg airports and Google's own price-level insight. One POST, no GDS contract, no airline agreement.
50 free credits on signup. No card required.
{ "search_parameters": { "engine": "google_flights", "type": 2, "departure_id": "JFK", "arrival_id": "LAX", "outbound_date": "2026-08-01", "adults": 1, "currency": "USD", "gl": "us", "hl": "en" }, "best_flights": [ { "flights": [ { "departure_airport": { "name": "John F. Kennedy International Airport", "id": "JFK", "time": "2026-08-01 09:30" }, "arrival_airport": { "name": "Phoenix Sky Harbor International Airport", "id": "PHX", "time": "2026-08-01 11:50" }, "duration": 320, "airplane": "Boeing 737MAX 8 Passenger", "airline": "American" } ] } ], "credits_used": 1, "credits_remaining": 4744}Live call against the real endpoint — 3 free runs, then it's your own key.
What is the Scavio Google Flights API?
The Scavio Google Flights API is a REST API that returns Google Flights results as structured JSON. You send a departure, arrival and date to a single POST endpoint with your API key, and get back itineraries with price, airline, duration, stops and per-leg airports and times, plus whether the fare is low, typical or high.
- 1
- endpoint, live in production
- 1
- credit per call
- 0
- GDS or airline contracts
One endpoint, the whole route
Itineraries, legs and whether today's fare is actually good.
Flight search
POST /api/v2/google/flightsA route and date as structured itineraries — each leg with airports and times, plus the price-level insight that says whether this fare is actually good.
The Google Flights endpoint
A POST that returns JSON and takes the same API key as every other platform. 1 credit per successful call.
| Endpoint | Returns | Credits |
|---|---|---|
Flight search/api/v2/google/flights | Price, airline, duration, stops, per-leg airports and price insights | 1 |
50 free credits on signup covers 50 route searches. See plans
A route priced in one call
Send origin, destination and date; read fares and legs. The response on the right is a real capture — note the flat shape, with no data wrapper.
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
res = client.google.flights(
departure_id="JFK",
arrival_id="LAX",
outbound_date="2026-08-01",
)
print(res["lowest_price"], res["price_level"])
for f in res["best_flights"]:
leg = f["flights"][0]
print(leg["airline"], leg["duration"], leg["departure_airport"]["time"]){
"search_parameters": {
"engine": "google_flights",
"type": 2,
"departure_id": "JFK",
"arrival_id": "LAX",
"outbound_date": "2026-08-01",
"adults": 1,
"currency": "USD",
"gl": "us",
"hl": "en"
},
"best_flights": [
{
"flights": [
{
"departure_airport": {
"name": "John F. Kennedy International Airport",
"id": "JFK",
"time": "2026-08-01 09:30"
},
"arrival_airport": {
"name": "Phoenix Sky Harbor International Airport",
"id": "PHX",
"time": "2026-08-01 11:50"
},
"duration": 320,
"airplane": "Boeing 737MAX 8 Passenger",
"airline": "American"
}
]
}
],
"credits_used": 1,
"credits_remaining": 4744
}Why not an airline or GDS API?
If you are selling tickets, you need one. If you are reading prices, they are the wrong tool.
GDS / airline APIs
- Require a commercial agreement, and usually a booking relationship
- Onboarding is measured in weeks or months, with contracts and certification
- Each carrier or GDS is a separate integration and a separate schema
- Priced for transaction volume, not for reading fares
Scavio Google Flights API
- One API key, issued at signup — no contract, no certification
- Every carrier Google shows for a route, in one response shape
- Google's own price-level assessment included
- Same key and JSON envelope as 30 other Scavio platforms
Read-only search. Scavio does not book flights or process payments.
What developers build with it
Fare monitoring and alerts
Poll a route and date on a schedule and alert when the price drops or the price_level flips to low. One credit a check makes daily monitoring across dozens of routes affordable.
flightsTravel-cost budgeting
Price a set of candidate destinations from one origin to build a real budget, rather than a guess. The typical_price_range tells you whether today's number is representative.
flightsRoute and competitive analysis
Track which carriers serve a route, at what price and duration, and how that mix shifts by season — useful for travel media, aggregators and analysts.
flightsTravel agent tools
Point an agent at the MCP server and Flights becomes a callable tool — find the cheapest itinerary, is this a good fare — with the same key as every other Scavio platform.
MCP + RESTHow to get Google Flights data as JSON
- 1
Get an API key
Sign up for a Scavio account and copy your key from the dashboard. You get 50 credits free on signup, with no card required and no airline or GDS agreement.
- 2
POST a route and date
Send {"departure_id": "JFK", "arrival_id": "LAX", "outbound_date": "2026-08-01"} to https://api.scavio.dev/api/v2/google/flights with an Authorization: Bearer header.
- 3
Read the JSON
Google v2 responses are flat — best_flights, lowest_price and price_level sit at the top level, not under data. Each itinerary holds a flights array with one entry per leg.
Google Flights API FAQ
What is the Scavio Google Flights API?
+
It is a REST API that returns Google Flights results as structured JSON. One POST endpoint takes a route and date and returns itineraries with price, airline, duration, stops, per-leg airports and times, plus price insights. You authenticate with a Scavio API key.
Who is this endpoint for?
+
Developers building travel or booking features; AI agent builders wiring flight search in as an MCP or SDK tool; automation engineers running fare alerts inside n8n, Zapier or Make; travel media and aggregators tracking routes; and finance teams budgeting travel. Same API for all of them.
Does Google offer a Flights API?
+
Not for general use. Google's travel partner programmes are for airlines and OTAs with commercial agreements, not for developers who want to read fares. There is no open first-party endpoint for Google Flights results.
Can I book a flight through it?
+
No. This is a read-only search endpoint that returns what Google Flights displays — prices, carriers, durations and legs. Booking requires an airline or OTA relationship, which is a different kind of integration.
What are price_level and typical_price_range?
+
Google's own assessment of whether the current fare is low, typical or high for that route and date, plus the band it considers normal. It is the difference between knowing a price and knowing whether to buy.
How much does a flight search cost?
+
1 credit per call. New accounts get 50 free credits on signup, one time, with no card required. Paid plans start at $30 per month for 7,000 credits.
What does the response look like?
+
Google v2 responses are flat rather than wrapped: search_parameters, best_flights, lowest_price and price_level sit at the top level, alongside credits_used and credits_remaining. Each itinerary holds a flights array with departure_airport, arrival_airport, duration, airplane and airline per leg.
Can I search round trips and multiple passengers?
+
Yes. The endpoint accepts a trip type, a return date and an adults count, along with currency, gl and hl. The values you sent come back in search_parameters, so a stored response records exactly what was priced.
Which languages and tools are supported?
+
Official Python (pip install scavio) and JavaScript/TypeScript (npm i scavio) SDKs, a remote MCP server at mcp.scavio.dev for AI agents, and an n8n community node. Any language can call the REST endpoint directly with an HTTP client.
Explore more of Scavio
Google Hotels API
Properties, rates and vendor pricing.
Google Search API
The full SERP — organic, ads, AI Overview.
Booking.com API
Property search and availability.
Airbnb API
Listings, pricing and availability.
MCP server
Every platform as a callable tool for agents.
Pricing
Credit packs and plans, no per-platform surcharge.
Start pulling flight prices today
50 free credits on signup, no card. Your first request is a POST with a route in it.