webstractor
Developer docs

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

ParameterRequiredDescription
originYesAirport code, city, or a flight-location ID.
destinationYesAirport code, city, or a flight-location ID.
departureYesDeparture date as YYYY-MM-DD.
returnNoReturn date as YYYY-MM-DD. When supplied, each result contains both outbound and return slices.
adultsNo1–9 adult travellers. Default: 1.
currencyNoThree-letter ISO currency used for prices. Default: USD.
limitNo1–30 ordered options. Default: 20.
languageNoCanonical BCP 47 language tag. Default: en-US.
countryNoTwo-letter country code. Default: US.
formatNojson or markdown. Default: json.

Autocomplete parameters

ParameterRequiredDescription
qYes2–120 character partial location query.
languageNoCanonical BCP 47 language tag. Default: en-US.
countryNoTwo-letter country code. Default: US.
formatNojson 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.