Kayak Flights Scraper
Pricing
from $1.00 / 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 $1.00 / 1,000 results
Rating
5.0
(5)
Developer
Shahid Irfan
Maintained by CommunityActor stats
5
Bookmarked
43
Total users
5
Monthly active users
7 days ago
Last modified
Categories
Share
What does Kayak Flights Scraper do?
Kayak Flights Scraper collects structured flight data from Kayak for any route and date combination. Provide a Kayak search URL or enter origin, destination, and dates, and the actor returns fare prices, trip timing, stop counts, airlines, booking links, and provider details in a flat, ready-to-use format.
Why use Kayak Flights Scraper?
- Structured airfare data without copy-paste - Collect flight prices, durations, stop counts, and airline details into clean records instead of manually searching and transcribing Kayak results.
- Route and fare research at scale - Run searches across multiple routes and dates in separate runs to build datasets for price monitoring, route analysis, or travel planning.
- Automation-ready output - Results export to JSON, CSV, Excel, or XML and integrate with dashboards, BI tools, Google Sheets, and no-code platforms.
- Round trip and one-way support - Works with both trip types in the same input format. Omit the return date for one-way searches.
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 |
airlines | Airline names operating the itinerary |
total_stops | Total stop count across all legs |
total_duration_minutes | Total itinerary duration in minutes |
provider | Primary booking provider name |
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 |
booking_url | Direct booking link for the fare |
shareable_url | Kayak share link for the searched trip |
How to use Kayak Flights Scraper
- Open the actor on Apify Store.
- Provide a Kayak flights URL, or enter origin, destination, and departure date.
- Set the maximum number of results and pages.
- Optionally enable proxy for repeated or large runs.
- Run the actor.
- Download the dataset or connect it to your workflow.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | Kayak WAS->LON URL | Full Kayak flights search URL such as https://www.kayak.com/flights/WAS-LON/2026-08-15/2026-08-29 |
results_wanted | Integer | No | 20 | Maximum number of flight results to save |
max_pages | Integer | No | 3 | Maximum number of Kayak result pages to poll |
proxyConfiguration | Object | No | {"useApifyProxy": false} | Proxy settings for better reliability on repeated runs |
When using route and date inputs instead of a URL, the actor also accepts these optional parameters at runtime: origin, destination, departDate, returnDate, and adults.
Output Data
| Field | Type | Description |
|---|---|---|
rank | Integer | Position in collected results |
search_id | String | Search session identifier |
search_url | String | Kayak search URL used for the run |
route | String | Route in ORIGIN-DESTINATION format |
origin | String | Origin code |
destination | String | Destination code |
depart_date | String | Outbound date |
return_date | String | Inbound date for round trips |
trip_type | String | roundtrip or oneway |
result_id | String | Result identifier |
result_type | String | Result category |
is_best | Boolean | Best-result flag |
is_cheapest | Boolean | Cheapest-result flag |
provider | String | Primary booking provider |
booking_url | String | Booking link |
price_amount | Number | Primary fare amount |
currency | String | Fare currency code |
price_text | String | Localized fare text |
total_duration_minutes | Integer | Total itinerary duration |
total_stops | Integer | Total number of stops |
airlines | String | Airline names in itinerary |
airline_codes | String | Airline codes in itinerary |
outbound_departure | String | Outbound departure datetime |
outbound_arrival | String | Outbound arrival datetime |
outbound_duration_minutes | Integer | Outbound duration |
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 |
inbound_stops | Integer | Inbound stop count |
inbound_airlines | String | Inbound airline names |
shareable_url | String | Share link for the searched trip |
Usage Examples
Basic URL Input
Run a search using a complete Kayak flights URL:
{"startUrl": "https://www.kayak.com/flights/WAS-LON/2026-08-15/2026-08-29","results_wanted": 20,"max_pages": 2}
Route and Date Input
Run a search by specifying the origin, destination, and dates directly:
{"startUrl": "https://www.kayak.com/flights/JFK-LAX/2026-09-10/2026-09-17","results_wanted": 30,"max_pages": 3}
One-Way Search
Collect results for a one-way trip by providing only the departure date:
{"startUrl": "https://www.kayak.com/flights/WAS-LON/2026-08-15","results_wanted": 20}
Proxy-Enabled Run
Enable proxy for better reliability on repeated or large searches:
{"startUrl": "https://www.kayak.com/flights/WAS-LON/2026-08-15/2026-08-29","results_wanted": 50,"max_pages": 5,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Sample Output
{"rank": 1,"search_id": "rGFiSVg6Qs","search_url": "https://www.kayak.com/flights/WAS-LON/2026-08-15/2026-08-29","route": "WAS-LON","origin": "WAS","destination": "LON","depart_date": "2026-08-15","return_date": "2026-08-29","trip_type": "roundtrip","result_id": "e636f94b94bef808289ae35ac0031788","result_type": "core","is_best": true,"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-08-15T20:30:00","outbound_arrival": "2026-08-16T11:45:00","outbound_duration_minutes": 615,"outbound_stops": 1,"outbound_airlines": "Icelandair","inbound_departure": "2026-08-29T15:40:00","inbound_arrival": "2026-08-30T19:25:00","inbound_duration_minutes": 1965,"inbound_stops": 1,"inbound_airlines": "Icelandair","shareable_url": "https://www.kayak.com/flights/WAS-LON/2026-08-15/2026-08-29"}
Tips for Best Results
- Use valid airport or metro codes (IATA format) for origin and destination. Kayak recognizes both city codes like WAS and airport codes like DCA.
- Confirm dates are in the future. The actor auto-adjusts past dates to the next available day.
- Start with a smaller result limit to validate your route and date combination before running larger searches.
- Enable proxy configuration for frequent or high-volume runs to reduce the chance of rate limiting.
- If a specific route returns few results, try nearby dates. The actor includes automatic date fallback logic when the primary route returns no flights.
Integrations
- Google Sheets - Send flight data to spreadsheets for route and fare tracking.
- Webhooks - Trigger downstream workflows after each run completes.
- Make - Connect results to no-code automations.
- Zapier - Pipe data into app-to-app workflows.
- API - Access datasets programmatically from your own systems.
Export formats include JSON, CSV, Excel, XML, and others available in Apify Console.
Frequently Asked Questions
Can I export the data to CSV or Excel?
Yes. Apify datasets can be downloaded in CSV, Excel, JSON, XML, and other supported formats from the dataset preview page.
Can I run this actor on a schedule?
Yes. You can schedule the actor in Apify Console to refresh fare data hourly, daily, or weekly for price monitoring workflows.
Why did I get fewer results than my requested limit?
Flight availability depends on route demand, travel dates, and live Kayak inventory. Increase max_pages to collect more results or try different dates.
Does this actor work for non-technical users?
Yes. The actor can be run from Apify Console with form-based inputs. Results can be downloaded directly without any coding.
What should I do if some fields are missing from the output?
The actor removes empty fields for cleaner datasets. Some fields like inbound leg details only appear for round trips. Absent fields usually mean the source data did not include that information.
Is it legal to scrape Kayak flight data?
Scraping public web data may be subject to applicable laws and website terms. You are responsible for using the collected data responsibly and complying with Kayak's terms of service.
Related Actors
- Kayak Car Rental Scraper - Collect car rental prices, vehicle details, and supplier offers from Kayak for travel and market analysis.
- Kayak Hotel Reviews Scraper - Extract hotel reviews, ratings, and guest feedback from Kayak for hospitality research.
- Booking.com Scraper - Extract hotel listings, prices, reviews, and ratings from Booking.com for travel market research and accommodation monitoring.
Support
For issues, feature requests, or custom scraping needs, use the Issues tab on the actor page or contact the developer through Apify.
Legal Notice
This actor is designed for legitimate data collection from publicly available sources. Users are responsible for ensuring their use complies with applicable laws, website terms of service, and rate limits. Use responsibly.