Google Flights Calendar
The cheapest price of every departure date (and, for a round trip, every return date) in a range, from Google Flights' date picker, answered as the document with `calendar`.
The cheapest price of every departure date (and, for a round trip, every return date) in a range,
from Google Flights' date picker, answered as the document with calendar. A 20 day range with
trips of 3 to 10 days is 160 rows. multi_city has no calendar. The parameters google_flights
refuses are refused here too, and so are departure_token, booking_token, sort_by and
multi_city_json (400). Google's "internal error" is retried; a captcha (/sorry/) is captcha.
X-API-Key<token>Your API key.
cancel_token?stringA name you make up for this request (a UUID is fine), so you can later GET /v1/cancel
with it. Only you know it, so only you can cancel. Use a new one for every request, retries included: a cancelled token stays cancelled for a few minutes.
1 <= length <= 128departure_id*stringAirport code or place id; up to 10, comma-separated.
arrival_id*stringSame forms; not a place in departure_id.
outbound_date*stringdateflight_type?string"round_trip""round_trip""one_way"return_date?stringRequired for a round trip; defaults to return_date_start. Sets the trip length when no return range is given.
dateoutbound_date_start?stringDefault: outbound_date.
dateoutbound_date_end?stringDefault: 60 days on. At most 200 days from the start.
datereturn_date_start?stringWith return_date_end: keeps the rows whose return date is in the range (trip lengths 1 to 60 days).
datereturn_date_end?stringBoth or neither.
datetravel_class?string"economy""economy""premium_economy""business""first_class"adults?integer1 <= value1children?integer0 <= value0infants_in_seat?integer0 <= value0infants_on_lap?integer0 <= value0stops?string"any""any""nonstop""one_stop_or_fewer""two_stops_or_fewer"max_price?integerincluded_airlines?stringAirline codes or ONEWORLD, SKYTEAM, STAR_ALLIANCE.
outbound_times?string"0,23,0,23"return_times?string"0,23,0,23"included_connecting_airports?stringexcluded_connecting_airports?stringlayover_duration_min?integerMinutes.
layover_duration_max?integerMinutes.
max_flight_duration?integerMinutes.
currency?string"USD"hl?string"en"gl?string"us"The calendar, as the document. When the page could not be parsed, the usual envelope.
application/json- response
The first three keys of every parsed 200 (the answer is the document itself, no success/data
envelope): what the search was (search_metadata), what it asked (search_parameters), the
parser's own search_information ({} when it has none). The engine's blocks follow, at the same
level. An engine whose answer is a list puts it under results.
search_metadata*search_parameters*The request's own fields as sent, engine first, without cancel_token.
search_information*The parser's own, e.g. yelp_search's; otherwise {}.
calendar?array<>[key: string]?anycurl -X GET 'https://api.justserp.com/v1/google/flights/calendar?departure_id=JFK&arrival_id=LHR&outbound_date=2026-12-10&return_date=2026-12-17&outbound_date_start=2026-12-01&outbound_date_end=2026-12-20'{ "search_metadata": { "id": "string", "status": "Success", "created_at": "string", "request_url": "string", "html_url": "string" }, "search_parameters": {}, "search_information": {}, "calendar": [ { "departure": "2019-08-24", "return": "2019-08-24", "price": 0, "has_no_flights": true, "is_lowest_price": true } ]}Google Flights GET
Flight itineraries between airports on dates, answered as the document: `search_metadata`, `search_parameters`, `search_information` (`{}`), `best_flights`, `other_flights`, `price_insights` and `airlines`.
Google Flights Location Search GET
The suggestions of the "Where from?" and "Where to?" boxes of Google Flights for some typed letters, answered as the document with `locations`: cities with their airports and, for the arrival box, regions and countries.