Kayak Flights Scraper
Pricing
from $0.80 / 1,000 results
Kayak Flights Scraper
Extract real-time flight prices, routes & availability from Kayak with precision. Monitor airfare trends, competitive pricing & travel insights effortlessly. Perfect for travel agencies, price comparison platforms & market research. Reliable flight data scraping at scale.
Pricing
from $0.80 / 1,000 results
Rating
5.0
(5)
Developer
Shahid Irfan
Maintained by CommunityActor stats
5
Bookmarked
74
Total users
22
Monthly active users
3 days ago
Last modified
Categories
Share
What does Kayak Flights Scraper do?
Kayak Flights Scraper collects structured flight offers from Kayak for any route and travel date. Paste a Kayak flight search URL, or enter the origin, destination, dates, passengers, sort order, and filters in the input form. The dataset includes prices, currencies, booking providers, airline details, timings, durations, stops, and booking links.
Use the results for airfare research, price monitoring, route analysis, travel planning, fare comparison, and applications that need consistent flight offer data.
Why use Kayak Flights Scraper?
- URL or form-based searches - Use a complete Kayak URL or search by airport and city codes without constructing a URL yourself.
- Useful fare details - Collect fare amounts, currencies, localized price text, providers, booking links, and Kayak share links.
- Itinerary-level data - Analyze outbound and inbound departure times, arrival times, durations, stop counts, airline names, and airline codes.
- Practical search controls - Sort by best result, price, duration, departure, or arrival. Filter by stops, cabin class, and airline codes.
- Passenger-aware searches - Include adults, children, and infants so the returned fares match the selected traveler mix.
- Automation-ready output - Export datasets to JSON, CSV, Excel, or XML, or connect them to spreadsheets, webhooks, and other workflows.
What data can you extract from Kayak?
| Field | Description |
|---|---|
price_amount | Primary fare amount for the itinerary |
currency | Fare currency code such as USD or EUR |
price_text | Localized fare text |
provider | Primary booking provider |
booking_url | Direct booking link for the fare |
airlines | Airline names operating the itinerary |
airline_codes | Airline codes in the itinerary |
total_stops | Total stop count across all legs |
total_duration_minutes | Total itinerary duration in minutes |
outbound_departure | Outbound leg departure datetime |
outbound_arrival | Outbound leg arrival datetime |
inbound_departure | Inbound leg departure datetime for round trips |
inbound_arrival | Inbound leg arrival datetime for round trips |
shareable_url | Kayak share link for the searched trip |
How to use Kayak Flights Scraper
- Open the Actor on Apify Store.
- Choose one search method:
- Paste a complete Kayak flight URL in
startUrl. - Leave
startUrlempty and enterorigin,destination, anddepartDate.
- Paste a complete Kayak flight URL in
- Add
returnDatefor a round-trip search, or selectonewayintripType. - Optionally choose passengers, sorting, stops, cabin class, and airlines.
- Set
results_wantedandmax_pages. - Run the Actor and open the dataset when it finishes.
If both a valid startUrl and all three route fields are supplied, the origin, destination, and departDate values are used for the route. URL sort and filter parameters are read when the corresponding form option is not provided.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | Kayak example URL | Complete Kayak flight search URL. Route details and supported sort or fs options can be read from the URL. |
origin | String | No | - | Three-letter origin airport or city code, such as WAS or JFK. Required with destination and departDate when no URL is used. |
destination | String | No | - | Three-letter destination airport or city code, such as LON or LAX. |
departDate | String | No | - | Outbound date in YYYY-MM-DD format. |
returnDate | String | No | - | Return date in YYYY-MM-DD format. Leave empty for a one-way search. |
tripType | Select | No | roundtrip | Select roundtrip or oneway. A URL without a return date is treated as one-way. |
adults | Integer | No | 1 | Number of adult passengers, from 1 to 9. |
children | Integer | No | 0 | Number of child passengers, from 0 to 8. |
infants | Integer | No | 0 | Number of infant passengers, from 0 to 8. |
sort | Select | No | bestflight_a | bestflight_a, price_a, duration_a, departure_a, or arrival_a. |
stops | Integer | No | - | Use 0 for nonstop, 1 for up to one stop, or 2 for two or more stops. |
cabinClass | Select | No | - | economy, premium_economy, business, or first. |
airlines | String | No | - | Comma-separated airline IATA codes, such as UA,BA or AA. |
results_wanted | Integer | No | 20 | Maximum number of flight results to save, up to 500. |
max_pages | Integer | No | 3 | Maximum number of result pages to poll, up to 20. |
URL filter parameters
Kayak URLs can also carry search settings. For example, ?sort=price_a&fs=stops=0 requests price sorting and nonstop results. The Actor reads the route and supported URL settings, then applies them to the search. Form values take precedence over matching URL settings when they are supplied.
Output Data
Each dataset item represents one flight itinerary. Empty values are omitted when Kayak does not provide them.
| Field | Type | Description |
|---|---|---|
rank | Integer | Position in the collected results |
search_id | String | Kayak search session identifier |
search_url | String | Kayak search URL used for the result set |
route | String | Route in ORIGIN-DESTINATION format |
origin | String | Origin airport or city code |
destination | String | Destination airport or city code |
depart_date | String | Outbound travel date |
return_date | String | Return travel date for round trips |
trip_type | String | roundtrip or oneway |
result_id | String | Kayak result identifier |
result_type | String | Result category |
is_best | Boolean | Whether Kayak marks the result as best |
is_cheapest | Boolean | Whether Kayak marks the result as cheapest |
provider | String | Primary booking provider |
booking_url | String | Primary booking link |
price_amount | Number | Primary fare amount |
currency | String | Fare currency code |
price_text | String | Localized fare value |
total_duration_minutes | Integer | Combined itinerary duration |
total_stops | Integer | Combined stop count |
airlines | String | Airline names across the itinerary |
airline_codes | String | Airline codes across the itinerary |
outbound_departure | String | Outbound departure datetime |
outbound_arrival | String | Outbound arrival datetime |
outbound_duration_minutes | Integer | Outbound duration in minutes |
outbound_stops | Integer | Outbound stop count |
outbound_airlines | String | Outbound airline names |
inbound_departure | String | Inbound departure datetime |
inbound_arrival | String | Inbound arrival datetime |
inbound_duration_minutes | Integer | Inbound duration in minutes |
inbound_stops | Integer | Inbound stop count |
inbound_airlines | String | Inbound airline names |
shareable_url | String | Kayak share link |
Usage Examples
Basic URL input
Use a complete Kayak URL when you already have a search configured.
{"startUrl": "https://www.kayak.com/flights/WAS-LON/2026-09-10/2026-09-17","results_wanted": 20,"max_pages": 2}
Search by route and dates
Leave out startUrl and provide the route fields directly.
{"origin": "JFK","destination": "LAX","departDate": "2026-10-10","returnDate": "2026-10-17","tripType": "roundtrip","adults": 1,"results_wanted": 20}
Filtered fare search
Use sorting, stops, cabin class, and airline codes to narrow the returned itineraries.
{"origin": "WAS","destination": "LON","departDate": "2026-09-15","returnDate": "2026-09-22","sort": "price_a","stops": 0,"cabinClass": "economy","airlines": "BA,UA","results_wanted": 20}
One-way search with additional passengers
Select oneway and include child or infant passengers when needed.
{"origin": "LAX","destination": "NRT","departDate": "2026-11-05","tripType": "oneway","adults": 2,"children": 1,"infants": 1,"sort": "duration_a","results_wanted": 20}
Sample Output
{"rank": 1,"search_id": "rGFiSVg6Qs","search_url": "https://www.kayak.com/flights/WAS-LON/2026-09-10/2026-09-17?sort=price_a&fs=stops%3D0","route": "WAS-LON","origin": "WAS","destination": "LON","depart_date": "2026-09-10","return_date": "2026-09-17","trip_type": "roundtrip","result_id": "e636f94b94bef808289ae35ac0031788","result_type": "core","is_best": false,"is_cheapest": true,"provider": "Gotogate","booking_url": "https://www.kayak.com/book/flight?...","price_amount": 774,"currency": "USD","price_text": "$774","total_duration_minutes": 2580,"total_stops": 2,"airlines": "Icelandair","airline_codes": "FI","outbound_departure": "2026-09-10T20:30:00","outbound_arrival": "2026-09-11T11:45:00","outbound_duration_minutes": 615,"outbound_stops": 1,"outbound_airlines": "Icelandair","inbound_departure": "2026-09-17T15:40:00","inbound_arrival": "2026-09-18T19:25:00","inbound_duration_minutes": 1965,"inbound_stops": 1,"inbound_airlines": "Icelandair","shareable_url": "https://www.kayak.com/flights/WAS-LON/2026-09-10/2026-09-17"}
Tips for Best Results
-
Use valid airport or metro codes in IATA format. Kayak recognizes city codes such as
WASas well as airport codes such asDCA. -
Use future dates. Dates in the past or outside Kayak's search window are adjusted to a safe range, and the adjustment is reported in the run log.
-
Start with
results_wanted: 20andmax_pages: 2to confirm the route before a larger run. -
Use
price_afor low-fare research,duration_afor shorter itineraries, orbestflight_afor Kayak's default ranking. -
Use
stops: 0for nonstop searches. Availability may be lower than the requested result limit. -
Use airline IATA codes in
airlines, separated by commas. If a route does not offer the selected carriers, Kayak may return fewer results. -
Some fare, provider, or inbound-leg fields may be absent because availability varies by route, date, passenger mix, and booking provider.
Integrations and Export Formats
- Google Sheets - Send flight data to spreadsheets for fare tracking.
- Webhooks - Trigger downstream workflows after a run completes.
- Make or Zapier - Connect flight datasets to no-code automations.
- Apify API - Start runs and read datasets programmatically.
- JSON - Use results in applications and data pipelines.
- CSV or Excel - Analyze routes and fares in spreadsheet tools.
- XML - Send results to systems that require XML feeds.
Frequently Asked Questions
Can I use a Kayak URL instead of filling in route fields?
Yes. Provide a full flight URL in startUrl. The Actor reads the route and dates from the URL, and also recognizes supported sort and fs query parameters.
Can I search without a URL?
Yes. Leave startUrl empty and provide origin, destination, and departDate. Add returnDate for a round trip, or select oneway for a one-way search.
Which sorting options are supported?
The supported values are bestflight_a, price_a, duration_a, departure_a, and arrival_a. They represent best result, lowest price, shortest duration, earliest departure, and earliest arrival.
Can I filter for nonstop flights?
Yes. Set stops to 0. Set it to 1 for up to one stop or 2 for two or more stops. A restrictive filter can produce fewer records than results_wanted.
Why did I receive fewer results than requested?
Flight availability depends on the route, dates, passenger mix, selected filters, and live provider inventory. Increase max_pages, remove restrictive filters, or try nearby dates.
Can I run this Actor on a schedule?
Yes. Schedule hourly, daily, weekly, or custom runs in Apify Console for fare monitoring and route tracking.
Are empty fields included in the dataset?
No. Empty values are removed from each record. Inbound fields are normally absent for one-way searches, and a provider may not publish every fare detail.
Is it legal to collect Kayak flight data?
Public data collection may be subject to applicable laws and Kayak's terms of service. You are responsible for using the data lawfully, respecting website rules, and applying reasonable request volumes.
Related Actors
- Kayak Car Rental Scraper - Collect rental prices, vehicle details, suppliers, and booking links from Kayak.
- Kayak Hotel Reviews Scraper - Collect hotel ratings, review text, providers, and guest feedback from Kayak.
- Booking.com Scraper - Collect hotel prices, ratings, reviews, and accommodation details for travel research.
Support
For issues, feature requests, or custom data collection needs, use the Issues tab on the Actor page. Include the run ID, input mode, route, and a short description of the unexpected result.
Legal Notice
This Actor is designed for legitimate collection of publicly available Kayak flight information. Users are responsible for complying with Kayak's terms of service, applicable laws, privacy rules, and any restrictions that apply to their intended use.