Expedia Flight
Search Expedia flights by airport route and dates, or by a flight search URL. Each offer includes the airline, times, stops, and displayed price.
Credit cost: 2 credits per call
ApiKeyAuthx-api-key<token>Your API key. Include it in the x-api-key header for every request.
query*stringA route or a full Expedia Flights-Search URL. Empty, a route without two airport codes, or a non-Expedia URL returns 400. A full URL is opened as given. price stays the label on the offer. pagination.next is null.
Route
JFK-LAXRoute with to
JFK to LAXdeparture_date?stringDeparture as YYYY-MM-DD for a route. Omit it and the route uses 2026-11-15. A value that is not YYYY-MM-DD returns 400. Ignored when query is a full URL.
2026-11-15return_date?stringReturn date as YYYY-MM-DD. Omit it for a one-way trip. A value that is not YYYY-MM-DD returns 400. Ignored when query is a full URL.
2026-11-22adults?numberAdult passengers for a route. Omit it and the request uses 1. Ignored when query is a full URL.
1cabin_class?stringLabel copied onto every result as cabin_class. Omit it and each result uses economy. It does not add a cabin filter to the Expedia URL.
economyregion?stringHost for a route. Omit it for www.expedia.com. Allowed: us, ca, uk, au, fr, de, es, it, nl, mx. Any other value returns 400. Ignored when query is a full URL.
usSuccessful response
application/json- response
results?array<>pagination?curl -X GET 'https://api.piloterr.com/v2/expedia/flight?query=string'{ "results": [ { "price": "$269", "stops": "Nonstop", "origin": "JFK", "airline": "Delta", "duration": "6h 13m", "cabin_class": "economy", "destination": "LAX", "arrival_time": "6:33pm", "departure_time": "3:20pm" } ], "pagination": { "next": null, "page": 1, "per_page": 1, "total_pages": null, "total_results": null }}