Flight search
Search public flight options.
Search one-way and round-trip public flight options with a cache-first GET endpoint. Results are normalized as readable Markdown or schema-v1 JSON, including local itinerary times, stops, carriers, aircraft when available, and prices in currency minor units.
curl --get 'https://api.webstractor.com/v1/flights' \
--data-urlencode 'origin=BER' \
--data-urlencode 'destination=JFK' \
--data-urlencode 'departure=2026-10-15' \
--data-urlencode 'return=2026-10-22' \
--data-urlencode 'adults=1' \
--data-urlencode 'currency=USD' \
--data-urlencode 'limit=10' \
--data-urlencode 'format=json'Find an airport or city first
Use flight autocomplete for partial airport, city, or IATA-code input. Pass a returned flightLocationId, airport code, or location name to origin and destination.
curl --get 'https://api.webstractor.com/v1/flights/autocomplete' \
--data-urlencode 'q=Berlin' \
--data-urlencode 'format=json'Flight search parameters
| Parameter | Required | Description |
|---|---|---|
origin | Yes | Airport code, city, or a flight-location ID. |
destination | Yes | Airport code, city, or a flight-location ID. |
departure | Yes | Departure date as YYYY-MM-DD. |
return | No | Return date as YYYY-MM-DD. When supplied, each result contains both outbound and return slices. |
adults | No | 1–9 adult travellers. Default: 1. |
currency | No | Three-letter ISO currency used for prices. Default: USD. |
limit | No | 1–30 ordered options. Default: 20. |
language | No | Canonical BCP 47 language tag. Default: en-US. |
country | No | Two-letter country code. Default: US. |
format | No | json or markdown. Default: json. |
Autocomplete parameters
| Parameter | Required | Description |
|---|---|---|
q | Yes | 2–120 character partial location query. |
language | No | Canonical BCP 47 language tag. Default: en-US. |
country | No | Two-letter country code. Default: US. |
format | No | json or markdown. Default: json. |
JSON response
Flight search returns a flight-search feed. Check flightResultType on the feed and each item. itinerary items include ordered flightSlices; date-price items are an available one-way price for the requested date only, without an airline, schedule, or booking link. A flightPrice is an integer in the returned currency’s minor unit; use flightPriceDisplay for display.
{
"schemaVersion": 1,
"type": "feed",
"source": "flight-search",
"attributes": {
"feedType": "flight-search",
"flightTrip": "round-trip",
"flightOrigin": "BER",
"flightDestination": "JFK",
"flightDepartureDate": "2026-10-15",
"flightReturnDate": "2026-10-22",
"flightAdults": 1,
"flightCurrency": "USD",
"flightResultType": "itinerary"
},
"items": [{
"type": "document",
"attributes": {
"flightPrice": 47100,
"flightCurrency": "USD",
"flightPriceDisplay": "USD 471",
"flightResultType": "itinerary",
"flightStopCount": 2,
"flightSlices": [{ "originCode": "BER", "destinationCode": "JFK", "segments": [] }, { "originCode": "JFK", "destinationCode": "BER", "segments": [] }]
}
}]
}Behavior and limits
- Search results are public availability and price information, not bookings. Prices and availability can change before purchase.
- Successful flight and location responses are cached for up to one hour. Identical cache hits are free.
- One uncached request uses the standard request allowance or one account credit.
- The endpoint does not accept account credentials, cookies, traveller details, or payment data.