{"openapi":"3.2.0","info":{"title":"Google Flights Live Prices API","description":"Live Google Flights fares for one-way and round-trip searches: price, airlines, stops, duration, a booking link and Google's own low, typical or high price verdict.","version":"1.0.0"},"servers":[{"url":"https://zzkgl.jojapi.net"}],"security":[{"ApiKeyAuth":[]}],"tags":[{"name":"Flights"}],"x-agent-commerce":{"catalog_url":"https://zzkgl.jojapi.net/_jojapi/agent/plans","discovery_url":"https://zzkgl.jojapi.net/.well-known/x402","directory_url":"https://agents.jojapi.net/apis/google-flights-live-prices","docs":"https://docs.jojapi.com/consumers/agents"},"paths":{"/v1/flights/oneway":{"post":{"operationId":"post_v1_flights_oneway","summary":"Flights one-way search","description":"Live one-way fares from Google Flights for one route and one date.","tags":["Flights"],"responses":{"200":{"description":"Results. An empty array means the search finished and there are no options (X-Search-Status: empty).","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"price_range_in_relation_to_other_periods":{"type":"string"},"price_insights_low":{"type":"number"},"price_insights_high":{"type":"number"},"from_airport":{"type":"string"},"to_airport":{"type":"string"},"departure_date":{"type":"string"},"price":{"type":"string"},"price_as_number":{"type":"number"},"duration":{"type":"string"},"duration_seconds":{"type":"integer"},"airline":{"type":"string"},"stops":{"type":"integer"},"departure_description":{"type":"string"},"arrival_description":{"type":"string"},"buy_link":{"type":"string"}}}}}}},"422":{"description":"Invalid request: a missing or malformed field, a past date, or an unknown field (named in the body)"},"503":{"description":"Search incomplete (safe to retry). Body: {\"error\":\"search_incomplete\",\"search_status\",\"search_reason\",\"message\",\"retry\"}"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["from_airport","to_airport","departure_date"],"properties":{"from_airport":{"type":"string","description":"IATA airport code, e.g. JFK, LHR, BCN","minLength":3,"maxLength":3},"to_airport":{"type":"string","description":"IATA airport code, e.g. JFK, LHR, BCN","minLength":3,"maxLength":3},"departure_date":{"type":"string","format":"date","description":"Departure date (YYYY-MM-DD, must be in the future)","example":"2027-06-15"},"max_stops":{"type":"integer","minimum":0,"description":"Maximum stops (0 = nonstop)"},"airline_codes":{"type":"array","items":{"type":"string"},"description":"Only these airlines (IATA codes)"},"exclude_airline_codes":{"type":"array","items":{"type":"string"},"description":"Exclude these airlines (IATA codes)"},"departure_time_min":{"type":"integer","minimum":0,"maximum":23,"description":"Earliest departure (hour of day, 0 to 23)"},"departure_time_max":{"type":"integer","minimum":0,"maximum":23,"description":"Latest departure (hour of day, 0 to 23)"},"arrival_time_min":{"type":"integer","minimum":0,"maximum":23,"description":"Earliest arrival (hour of day, 0 to 23)"},"arrival_time_max":{"type":"integer","minimum":0,"maximum":23,"description":"Latest arrival (hour of day, 0 to 23)"},"sort_type":{"type":"string","enum":["Overall","Price","Duration"],"default":"Overall","description":"Google Flights sort. Price insights (low/typical/high) are not returned with Price."},"currency":{"type":"string","default":"USD","description":"Currency code, e.g. USD, EUR"},"max_price":{"type":"number","description":"Upper price limit. Note: with max_price the price insights come back null."},"seat_type":{"type":"integer","enum":[1,2,3,4],"description":"1 economy, 2 premium economy, 3 business, 4 first"},"passengers":{"type":"array","items":{"type":"integer","enum":[1,2,3,4]},"description":"One entry per traveller: 1 adult, 2 child, 3 infant on lap, 4 infant in seat. Default one adult."},"limit":{"type":"integer","default":10,"description":"Maximum number of results"},"use_ext_proxy":{"type":"boolean","default":true,"description":"Residential routing (default true); false can be faster on easy routes"}}},"example":{"from_airport":"LHR","to_airport":"BCN","departure_date":"2027-06-15","limit":5}}}}}},"/v1/flights/roundtrip":{"post":{"operationId":"post_v1_flights_roundtrip","summary":"Flights round-trip search","description":"Live round-trip fares: both legs priced together in one request, one total and one booking link per itinerary.","tags":["Flights"],"responses":{"200":{"description":"Results. An empty array means the search finished and there are no options (X-Search-Status: empty).","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"price_range_in_relation_to_other_periods":{"type":"string"},"price_insights_low":{"type":"number"},"price_insights_high":{"type":"number"},"from_airport":{"type":"string"},"to_airport":{"type":"string"},"departure_date":{"type":"string"},"return_date":{"type":"string"},"total_price":{"type":"string"},"total_price_as_number":{"type":"number"},"total_duration_seconds":{"type":"integer"},"total_stops":{"type":"integer"},"buy_link":{"type":"string"},"departure_flight_airline":{"type":"string"},"departure_flight_stops":{"type":"integer"},"departure_flight_duration":{"type":"string"},"departure_flight_departure_description":{"type":"string"},"departure_flight_arrival_description":{"type":"string"},"return_flight_airline":{"type":"string"},"return_flight_stops":{"type":"integer"},"return_flight_duration":{"type":"string"},"return_flight_departure_description":{"type":"string"},"return_flight_arrival_description":{"type":"string"}}}}}}},"422":{"description":"Invalid request: a missing or malformed field, a past date, or an unknown field (named in the body)"},"503":{"description":"Search incomplete (safe to retry). Body: {\"error\":\"search_incomplete\",\"search_status\",\"search_reason\",\"message\",\"retry\"}"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["from_airport","to_airport","departure_date","return_date"],"properties":{"from_airport":{"type":"string","description":"IATA airport code, e.g. JFK, LHR, BCN","minLength":3,"maxLength":3},"to_airport":{"type":"string","description":"IATA airport code, e.g. JFK, LHR, BCN","minLength":3,"maxLength":3},"departure_date":{"type":"string","format":"date","description":"Outbound date (YYYY-MM-DD, must be in the future)","example":"2027-06-15"},"return_date":{"type":"string","format":"date","description":"Return date (YYYY-MM-DD, must be in the future)","example":"2027-06-18"},"max_stops":{"type":"integer","minimum":0,"description":"Shortcut for both legs; a per-leg field wins"},"max_departure_stops":{"type":"integer","minimum":0},"max_return_stops":{"type":"integer","minimum":0},"departure_airline_codes":{"type":"array","items":{"type":"string"},"description":"Outbound: only these airlines"},"return_airline_codes":{"type":"array","items":{"type":"string"},"description":"Return: only these airlines"},"departure_exclude_airline_codes":{"type":"array","items":{"type":"string"},"description":"Outbound: exclude these airlines"},"return_exclude_airline_codes":{"type":"array","items":{"type":"string"},"description":"Return: exclude these airlines"},"departure_departure_time_min":{"type":"integer","minimum":0,"maximum":23,"description":"Departure leg, departure time min (hour of day, 0 to 23)"},"departure_departure_time_max":{"type":"integer","minimum":0,"maximum":23,"description":"Departure leg, departure time max (hour of day, 0 to 23)"},"departure_arrival_time_min":{"type":"integer","minimum":0,"maximum":23,"description":"Departure leg, arrival time min (hour of day, 0 to 23)"},"departure_arrival_time_max":{"type":"integer","minimum":0,"maximum":23,"description":"Departure leg, arrival time max (hour of day, 0 to 23)"},"return_departure_time_min":{"type":"integer","minimum":0,"maximum":23,"description":"Return leg, departure time min (hour of day, 0 to 23)"},"return_departure_time_max":{"type":"integer","minimum":0,"maximum":23,"description":"Return leg, departure time max (hour of day, 0 to 23)"},"return_arrival_time_min":{"type":"integer","minimum":0,"maximum":23,"description":"Return leg, arrival time min (hour of day, 0 to 23)"},"return_arrival_time_max":{"type":"integer","minimum":0,"maximum":23,"description":"Return leg, arrival time max (hour of day, 0 to 23)"},"sort_type":{"type":"string","enum":["Overall","Price","Duration"],"default":"Overall","description":"Google Flights sort. Price insights (low/typical/high) are not returned with Price."},"currency":{"type":"string","default":"USD","description":"Currency code, e.g. USD, EUR"},"max_price":{"type":"number","description":"Upper price limit. Note: with max_price the price insights come back null."},"seat_type":{"type":"integer","enum":[1,2,3,4],"description":"1 economy, 2 premium economy, 3 business, 4 first"},"passengers":{"type":"array","items":{"type":"integer","enum":[1,2,3,4]},"description":"One entry per traveller: 1 adult, 2 child, 3 infant on lap, 4 infant in seat. Default one adult."},"limit":{"type":"integer","default":10,"description":"Maximum number of results"},"use_ext_proxy":{"type":"boolean","default":true,"description":"Residential routing (default true); false can be faster on easy routes"}}},"example":{"from_airport":"JFK","to_airport":"CUN","departure_date":"2027-06-15","return_date":"2027-06-18","limit":5,"currency":"USD"}}}}}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-JoJAPI-Key","description":"Your JoJ API key."}}}}