Kiwi.com flight search (one-way and return)

GET https://api.api.sh/kiwi/v1/flights
1 credit / call travel & events try it in the playground →

Flight itineraries on Kiwi.com between two places for a date or date range, one-way or return (give return_date, or nights_min/nights_max for a stay length), with passengers, cabin, stops, airlines, price and duration limits, bags and sort. Each itinerary: price (in currency and EUR), duration, seats left, included bags and bag prices, self-transfer, hidden-city and throwaway flags, outbound (and inbound) with departure, arrival, stops and every leg (airports, local and UTC times, carrier, operating carrier, flight number, cabin, duration, layover and baggage recheck) and booking options with links. carriers lists the airlines found. Places take an airport or city code, a name or a place id from /kiwi/v1/places. Pass next_page back as page (up to 200 itineraries); null on the last page.

Every response includes credits_used: the credits this call cost.

Parameters

nametypedescription
fromrequired string Origin: airport or city code, place name or place id; comma-separated for several, e.g. LON or City:london_gb. Example: LON
torequired string Destination, same forms as from, e.g. NYC. Example: NYC
daterequired string Departure date (YYYY-MM-DD). Example: 2027-10-15
date_end string Last departure date for a flexible range (YYYY-MM-DD).
return_date string Return date (YYYY-MM-DD); makes the search a return trip.
return_date_end string Last return date for a flexible range (YYYY-MM-DD).
nights_min integer Return trip: minimum nights at the destination.
nights_max integer Return trip: maximum nights at the destination.
adults integer Adults, 1-9 (default 1).
children integer Children (default 0).
infants integer Infants (default 0; at most one per adult).
cabin economy | premium_economy | business | first Cabin class (default economy).
mixed_cabins true | false true allows itineraries mixing cabin classes.
max_stops integer Maximum stops per direction, 0-3.
carriers string Only these airlines (2-letter codes, comma-separated), e.g. LH,BA.
exclude_carriers string Leave out these airlines (2-letter codes, comma-separated).
price_min integer Minimum price in currency.
price_max integer Maximum price in currency.
max_duration integer Maximum travel time per direction in hours.
hold_bags integer Checked bags per passenger, 0-2 (prices include them).
hand_bags integer Cabin bags per passenger, 0-1.
sort best | price | duration | date | popularity best (default), price, duration, date or popularity.
currency string Price currency (3-letter code, default usd).
market string Market country (2-letter code, default us).
page integer Page, from 1.
size integer Itineraries per page, 1-50 (default 20).

Every endpoint also takes fresh, raw, fields (see lean responses and caching).

Example

curl "https://api.api.sh/kiwi/v1/flights?from=LON&to=NYC&date=2027-10-15" \
  -H "x-api-key: $APISH_KEY"

Response

A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).

The fastest way to see the full response is the playground: it runs this endpoint with your account and shows the exact JSON.