Kayak Flight, Hotel & Cheap Destination Finder avatar

Kayak Flight, Hotel & Cheap Destination Finder

Pricing

from $0.49 / 1,000 results

Go to Apify Store
Kayak Flight, Hotel & Cheap Destination Finder

Kayak Flight, Hotel & Cheap Destination Finder

Searches Kayak for flight prices between two cities, cheap destinations from an origin airport, or hotel rates for a stay, with airline, price, duration and booking link per result.

Pricing

from $0.49 / 1,000 results

Rating

0.0

(0)

Developer

vexaloom-labs

vexaloom-labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Features

Limited permissions

Share

Kayak compares fares and rates from airlines, hotels and hundreds of travel sellers. This actor turns Kayak search pages into clean JSON: live flight itineraries, live hotel rates, cheap destinations from an origin airport, or any Kayak search URL you paste in.

What this actor does

  • Search flights between two airports or cities, on chosen dates and cabin, with nonstop/airline/price/duration/alliance filters, sorting and pagination.
  • Search hotels for a city and stay dates, with star, guest-rating, price, free-cancellation, breakfast, internet, parking, amenity and property-type filters.
  • Explore cheap destinations from an origin airport, optionally capped by budget, stops and trip length.
  • Scrape specific URLs: paste Kayak flight, hotel, explore or flight-route URLs and the actor detects what each one is.
  • Rich records: every itinerary includes all segments, airlines, flight numbers, aircraft, layovers, booking providers, baggage and a booking link; every hotel includes stars, guest rating, review count, coordinates, images, amenities, description and the cheapest provider.
  • Honest source labels: each record has accessMethod (live, flight-routes or wayback) and, for archives, archivedAt. Route-page and archived prices are snapshots and are marked with priceNote.
  • Omits fields that a particular result does not have, so records never contain blank placeholders.

Modes

ModeWhat it returns
searchFlightsLive itineraries for one route and date (or date range for a round trip).
searchHotelsLive hotel rates for a city and check-in/check-out dates.
exploreDealsCheap round-trip destinations from one origin airport.
byUrlsRecords scraped from the Kayak URLs you provide.

Output per record

Every record starts with recordType, one of kayakFlight, kayakHotel or kayakExplore.

Flight records (searchFlights, byUrls flight URLs, flight-routes fallback)

FieldDescription
flightIdKayak result identifier (or a stable route/time key for route-page records).
origin / destinationActual airport codes of the itinerary.
originCity / destinationCityCity names for the airports.
originAirportName / destinationAirportNameFull airport names.
departDate / returnDateDeparture and return dates.
priceCheapest fare Kayak displays for the itinerary, in currency.
currencyPrice currency for the selected Kayak site.
airline / airlinesFirst operating airline and all airlines in the itinerary.
stops / returnStopsConnections on the outbound and return legs (0 = nonstop).
duration / durationMinutesOutbound duration as text and minutes.
totalDurationMinutesOutbound + return duration.
departTime / arrivalTimeOutbound departure and arrival times.
returnDepartTime / returnArrivalTimeReturn-leg times when present.
outbound / returnFull leg objects with every segment, layover, flight number and aircraft.
flightNumbers, aircraftConvenience lists across the itinerary.
cabinClass, tripTypeSearch cabin and one-way/round-trip.
providerName / providerCodeCheapest booking provider.
providersUp to 20 booking options with price, total price, provider and booking link.
baggageCarry-on/checked-bag restrictions and fees where Kayak reports them.
deepLink / bookingUrlBest booking link. shareableUrl links back to the itinerary on Kayak.
accessMethodlive, flight-routes or wayback.
sourceUrlURL the record was read from.
priceNotePresent on fallback records; explains that the price is a route-level snapshot.
archivedAtArchive timestamp for wayback records.
scrapedAtUTC timestamp when the record was produced.

Hotel records (searchHotels, byUrls hotel URLs)

FieldDescription
hotelId / flightIdKayak hotel identifier.
hotelName / airlineHotel name (airline is kept for backward compatibility).
stars, rating, reviewCount, ratingCategoryStar rating and guest reviews.
price / totalPriceNightly rate and total stay price.
currencyRate currency.
departDate / returnDateCheck-in and check-out.
checkIn / checkOut / nightsStay dates and number of nights.
adults / roomsOccupancy used for the search.
latitude / longitude, distanceFromCenterLocation and distance from the city centre.
city, propertyType, brandNameLocation and property classification.
imageUrl / imagesPrimary image and up to 10 image URLs.
description / descriptionAttributionHotel description and its source.
amenities / amenityCodesAmenity names and Kayak codes.
freeCancellation / freebiesCancellation and freebie information for the cheapest rate.
providerName / providerCode, providersCheapest provider plus up to 10 provider offers.
bookingUrl / deepLinkBooking link. detailsUrl opens the hotel on Kayak.
accessMethod, sourceUrl, scrapedAtSource and timing metadata.

Cheap-destination records (exploreDeals)

FieldDescription
flightIdOrigin-destination key.
origin / destinationOrigin city/airport code and destination airport code.
originCity / destinationCity / destinationCountryCity and country names.
destinationCountryCode, departureAirportCode, airportNameExtra location detail.
price / currencyLowest round-trip price shown.
airline / airlineCodeAirline on the cheapest itinerary.
stops / duration / durationMinutesConnections and maximum itinerary duration.
departDate / returnDate / tripDaysSuggested travel dates and length of stay.
imageUrl / deepLinkDestination image and Kayak flight link.
latitude / longitudeDestination airport coordinates.
accessMethod, sourceUrl, scrapedAtSource and timing metadata.

Input

FieldTypeDefaultDescription
modeString (select)searchFlightssearchFlights, searchHotels, exploreDeals or byUrls.
siteString (select)kayak.comCountry site, which also sets the currency.
originStringNYCOrigin airport or city for flights and explore.
destinationStringLONDestination airport or city; in hotels mode, the city to stay in.
departDateString—Departure date or hotel check-in (YYYY-MM-DD). Defaults to about 30 days from today.
returnDateString—Return date or hotel check-out (YYYY-MM-DD). Defaults to seven days after departure.
tripTypeString (select)round-tripone-way or round-trip.
cabinClassString (select)economyeconomy, premium-economy, business or first.
adultsInteger1Adult travellers (1-9).
childrenInteger0Children aged 2-17 (0-4).
maxStopsString (select)anyany, 0, 1, 2 or 3.
airlinesArray–Two-letter IATA airline codes.
minPrice / maxPriceInteger–Price range in the site currency.
maxDurationMinutesInteger–Maximum outbound flight duration.
redeyeOnlyBooleanfalseOvernight flights only.
allianceString (select)anyany, STAR_ALLIANCE, ONEWORLD or SKYTEAM.
wifiOnlyBooleanfalseFlights advertising Wi-Fi only.
sortByString (select)priceprice, duration, departure, arrival or best.
hotelStarsArray–Star ratings to include (1-5).
roomsInteger1Hotel rooms (1-8).
minRatingString (select)anyany, 6, 7, 8 or 9.
freeCancellation, freeBreakfast, freeInternet, freeParking, payLaterBooleanfalseRate/property filters.
amenitiesArray–Kayak amenity IDs (for example wifi, pool).
propertyTypeString (select)anyany, hotel or rental:apartment.
dealsOnlyBooleanfalseMember/private deals only.
hotelSortByString (select)recommendedrecommended, price_low, rating, distance or stars.
maxBudgetInteger–Maximum explore-deal price.
minTripDays / maxTripDaysInteger1 / 30Explore trip-length range.
destinationCountryString–Keep explore deals in one country (name or ISO code).
urlsArray–Kayak URLs for byUrls mode.
maxItemsInteger50Maximum records for the whole run (1-1000).
{
"mode": "searchFlights",
"origin": "NYC",
"destination": "LON",
"departDate": "2026-12-10",
"returnDate": "2026-12-17",
"tripType": "round-trip",
"cabinClass": "economy",
"adults": 1,
"maxStops": "0",
"airlines": ["BA", "VS"],
"sortBy": "price",
"maxItems": 50
}

Example: hotels with filters

{
"mode": "searchHotels",
"destination": "London",
"departDate": "2026-12-10",
"returnDate": "2026-12-17",
"adults": 2,
"rooms": 1,
"hotelStars": ["4", "5"],
"minRating": "8",
"freeCancellation": true,
"hotelSortBy": "price_low",
"maxItems": 40
}

Example: cheap destinations under a budget

{
"mode": "exploreDeals",
"origin": "NYC",
"maxBudget": 500,
"maxStops": "0",
"minTripDays": 4,
"maxTripDays": 10,
"destinationCountry": "Spain",
"maxItems": 30
}

Example: saved URLs

{
"mode": "byUrls",
"urls": [
"https://www.kayak.com/flights/NYC-LON/2026-12-10/2026-12-17",
"https://www.kayak.com/hotels/London/2026-12-10/2026-12-17/2adults"
],
"maxItems": 60
}

How live access works

Kayak renders search results with JavaScript and streams them from its own internal search API. The actor opens the search in a real browser, captures the page's own session, and then reads the result pages directly. No account, cookie or proxy setup is required. If the direct search is blocked, the actor automatically retries through the platform's datacenter proxy.

When origin or destination is a city name such as New York, the actor resolves it to Kayak's metro or airport code (NYC) before searching. Three-letter IATA codes are used as-is.

If a flight search cannot be read live, the actor falls back to Kayak's public flight-route page for the same route. If that page is unavailable, it tries the Wayback Machine copy of the route page. Fallback records are real Kayak data but are route-level snapshots, not date-specific live fares; they carry accessMethod = flight-routes or wayback and a priceNote saying so. Hotel and explore searches have no such fallback and report the block in the run status message.

Limitations

  • Hotel and explore searches have no fallback when Kayak blocks live access; the run status message says when that happens.
  • Route-page and Wayback fallback records are route-level snapshots. Price and airline filters apply to them; stop, duration and cabin filters and sorting do not.
  • Kayak's hotel URL accepts adults and rooms, not child ages, so hotel searches use adults and rooms only.
  • Time-of-day flight filters are not exposed because Kayak rejects them in the filter syntax; use sortBy departure or arrival instead.

Use cases

  • Fare comparison: compare airlines and providers for a route and dates.
  • Travel inspiration: find cheap destinations from your home airport under a budget.
  • Hotel rate checks: pull nightly and total rates with ratings and amenities.
  • Price tracking: schedule the same search and store each run's dataset.
  • URL re-scraping: turn saved Kayak search links into structured data.

FAQ

Do I need a Kayak account or API key? No. The actor reads publicly available search results and needs no credentials.

Which currency will prices be in? The currency of the selected Kayak country site. Set site to kayak.co.uk for GBP, kayak.de for EUR, and so on.

Why do some records say accessMethod: flight-routes? Kayak blocked the live search for that route. The record comes from Kayak's flight-route page and is a snapshot, so treat its price as indicative and re-run later for a live fare.

What does price mean for hotels? price is the nightly rate from the cheapest provider; totalPrice is the total for the stay.

Does stops: 0 mean nonstop? Yes. Flights also have returnStops for the return leg.

Can I search one-way flights? Yes. Set tripType to one-way; returnDate is ignored.

How current are prices? live records are read from Kayak during the run. Route-page and wayback records are snapshots and can be stale; see priceNote and archivedAt.

Is this affiliated with Kayak? No. This is an independent data extraction tool and is not affiliated with, endorsed by, or sponsored by Kayak Software Corporation.