Kiwi.com Scraper avatar

Kiwi.com Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Kiwi.com Scraper

Kiwi.com Scraper

Scrape Kiwi.com - flight metasearch with virtual interlining. Search flights between any origin and destination, fetch popular routes from a city with live prices, and look up airports, cities and stations. Uses the public Kiwi.com GraphQL API. No auth, no proxy.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Scrape Kiwi.com — the flight metasearch engine famous for virtual interlining (self-transfer connections between non-cooperating airlines). Search flights between any origin and destination, pull the most popular routes from a city with live prices, and look up airports, cities and stations. HTTP-only via the public Kiwi.com GraphQL API. No login, no cookies, no proxy required.

What this actor does

  • Three modes: search (flights by route + date), popularRoutes (top destinations from a city), stationLookup (airport / city / station autocomplete)
  • Live prices in 32 currencies (ISO 4217)
  • Full itinerary details — airlines, flight numbers, departure/arrival times, durations, stops, layovers, bag allowances, virtual-interlining flags
  • Four cabin classes — Economy, Premium, Business and First
  • anywhere destination — search flights from your origin to every destination Kiwi can price
  • Optional return date — or let Kiwi return flights with any return date
  • Filters: max stops, max price, keyword match, sort order
  • Empty fields are omitted — you only ever see fields the API actually returned

Output per flight (mode = search)

  • originCity, originAirport (IATA code), originAirportName
  • destinationCity, destinationAirport, destinationAirportName
  • departureTime, arrivalTime (local times) plus departureTimeUtc, arrivalTimeUtc
  • durationMinutes, outboundDurationMinutes, stops
  • layoverMinutes[] — one entry per connection on the outbound journey
  • price, priceBeforeDiscount, currency
  • airlines[], airlineNames[], flightNumbers[]
  • includedHandBags, includedCheckedBags, hasNoCheckedBaggage, hasNoBaggageSupported
  • isVirtualInterlining, isTrueHiddenCity, isThrowawayTicket
  • Return legs (when present): isReturn, returnDepartureTime, returnArrivalTime, returnAirlines[], inboundDurationMinutes, nightsInDestination
  • provider (e.g. Kiwi.com), seatsLeft
  • sourceUrl — the exact Kiwi.com results page for this search
  • recordType: "flight", scrapedAt
  • originCity, originAirport, destinationCity, destinationAirport, destinationCountry
  • price, priceBeforeDiscount, currency
  • sourceUrl — Kiwi.com results page for the route
  • recordType: "popularRoute", scrapedAt

Output per station (mode = stationLookup)

  • name, kind (City / Airport & station / Country / …), code (IATA for airports, metro code for cities)
  • cityName, countryCode, countryName, airportsCount
  • latitude, longitude
  • id — the Kiwi place id (City:london_gb, Station:airport:LGW) you can paste straight back into origin / destination
  • sourceUrl, recordType: "station", scrapedAt

Input

FieldTypeDefaultDescription
modestring (select)searchsearch, popularRoutes or stationLookup
originstringlondonAirport code, city name or Kiwi place id (mode=search, popularRoutes)
destinationstringparisAirport code, city name or Kiwi place id; use anywhere for all destinations (mode=search)
stationQuerystringFree-text term (mode=stationLookup)
travelDatestringtoday + 30 daysDeparture date YYYY-MM-DD (mode=search)
returnDatestringOptional return date YYYY-MM-DD (mode=search)
currencystring (select)usd32 currencies (ISO 4217)
stopsstring (select)anyany / nonstop / 1plus / 2plus
passengersint11–9 adults
cabinClassstring (select)economyeconomy / premium / business / first
sortBystring (select)QUALITYQuality / price / duration / take-off / landing
maxPricenumberDrop itineraries above this price
containsKeywordstringKeep only flights matching this text (airline, flight number, city)
maxItemsint20Hard cap (1–500)
proxyConfigurationobjectOptional; only used lazily if the API rate-limits or blocks

Example: cheap direct flights from London to Paris

{
"mode": "search",
"origin": "london",
"destination": "paris",
"travelDate": "2026-09-15",
"stops": "nonstop",
"sortBy": "PRICE",
"maxItems": 25
}
{
"mode": "popularRoutes",
"origin": "dubai",
"currency": "aed",
"maxItems": 10
}

Example: find the airport code for Osaka

{
"mode": "stationLookup",
"stationQuery": "osaka",
"maxItems": 5
}

Example: long-haul with a stop, any airline

{
"mode": "search",
"origin": "LHR",
"destination": "City:tokyo_jp",
"travelDate": "2026-10-02",
"stops": "any",
"maxPrice": 900,
"currency": "usd",
"maxItems": 15
}

Example: business class to anywhere

{
"mode": "search",
"origin": "london",
"destination": "anywhere",
"cabinClass": "business",
"maxItems": 10
}

Use cases

  • Travel price intelligence — track how fares on a route evolve and detect virtual-interlining deals
  • Competitive fare monitoring — compare Kiwi.com pricing against direct-airline prices
  • Route planning tools — power "popular destinations from my city" widgets
  • Airport/city data enrichment — resolve IATA codes, coordinates and country info for place names
  • Travel search engines — feed real itineraries into metasearch prototypes

Data source and limitations

  • Data source: Kiwi.com's public GraphQL API (api.skypicker.com/umbrella/v2/graphql) — the same endpoint www.kiwi.com uses in your browser. No authentication is required.
  • Live prices: flight fares are live quotes from Kiwi.com's fare engine. They change constantly and can be heavy to compute — searches can take 20–60 seconds for busy routes.
  • Anti-bot caveat: Kiwi.com may rate-limit or block aggressive scraping (HTTP 429/403). The actor retries with backoff and can use Apify proxy if you enable it, but the actor is designed to work without a proxy.
  • One-way and multi-city: this actor mirrors Kiwi's default search behaviour — a date-only search returns flights with any return date, exactly like www.kiwi.com. Multi-city and true one-way search shapes are not exposed.
  • Pagination: the API returns one page of results per search (25–100 itineraries depending on filters). Kiwi's "show more" flow is interactive, so results are capped per search. Raise maxItems up to 100 for one page of results.
  • Sort caveat: TAKEOFF_ASC and LANDING_ASC are valid Kiwi sort values but the return-search API returns no itineraries for them — use QUALITY, PRICE or DURATION for mode=search.
  • Date availability: fares are only returned for dates Kiwi.com can price (typically up to ~11 months ahead). Dates in the past return zero results.
  • Not affiliated: this actor is a third-party tool and is not affiliated with or endorsed by Kiwi.com.

FAQ

Do I need an API key or cookies? No. The actor uses Kiwi.com's public GraphQL API, which requires no authentication.

Why are prices higher than on kiwi.com? Kiwi.com's pricing includes their service fees and can change between requests. The price shown is the live quote at scrape time.

What does isVirtualInterlining mean? Kiwi.com's signature feature — two flights on separate tickets (e.g. different airlines that don't cooperate) connected with a self-transfer. If it's true, the passenger must collect bags and check in again themselves; a checked bag is usually not included.

Why are some fields missing on my records? All fields are omitted when the API doesn't return them (no sentinel values). For example returnDepartureTime only appears when the search includes a return leg, and layoverMinutes only for connecting flights.

Can I scrape prices for a whole month? Not in one call — each search covers a single departure date. Run the actor per date and merge the datasets.

Is this affiliated with Kiwi.com? No — this is a third-party actor using Kiwi.com's public API.