Kayak Flights Scraper
Pricing
Pay per usage
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
Pay per usage
Rating
0.0
(0)
Developer
Shahid Irfan
Actor stats
1
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Extract clean flight listings from Kayak for any route and date combination. Collect readable fare data, trip timing, stops, and provider details in a format that is easy to analyze. Ideal for travel research, pricing comparisons, and fare tracking workflows.
Features
- Clean Flat Output — Returns easy-to-read records without deeply nested clutter.
- Route and Date Extraction — Works with direct search URLs or route/date inputs.
- Round Trip and One-Way Support — Handles both trip types in one actor.
- Pagination Control — Collect more results by increasing page limits.
- Null-Free Dataset — Removes empty fields for cleaner exports and automations.
Use Cases
Fare Monitoring
Track route prices over time and detect meaningful fare changes for specific travel windows.
Travel Planning
Compare stop counts, durations, and departure/arrival times to shortlist better itinerary options.
Market Benchmarking
Analyze route competitiveness by comparing providers and pricing across many searches.
Data Pipelines
Feed normalized airfare records into dashboards, BI tools, and automated workflows.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | https://www.kayak.com/flights/WAS-LON/2026-05-16/2026-05-31 | Full flights search URL. |
origin | String | No | — | Origin code when startUrl is not used. |
destination | String | No | — | Destination code when startUrl is not used. |
departDate | String | No | — | Departure date in YYYY-MM-DD format. |
returnDate | String | No | — | Return date in YYYY-MM-DD format (optional). |
adults | Integer | No | 1 | Number of adult passengers. |
results_wanted | Integer | No | 20 | Maximum number of rows to collect. |
max_pages | Integer | No | 3 | Maximum number of result pages to process. |
proxyConfiguration | Object | No | { "useApifyProxy": false } | Proxy settings for better reliability. |
Output Data
Each dataset item contains:
| 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
{"startUrl": "https://www.kayak.com/flights/WAS-LON/2026-05-16/2026-05-31","results_wanted": 20,"max_pages": 2}
Route + Dates Input
{"origin": "WAS","destination": "LON","departDate": "2026-05-16","returnDate": "2026-05-31","adults": 1,"results_wanted": 30,"max_pages": 3}
One-Way Search
{"origin": "WAS","destination": "LON","departDate": "2026-05-16","adults": 1,"results_wanted": 20}
Proxy Configuration
For reliable results on repeated runs:
{"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Sample Output
{"rank": 1,"search_id": "rGFiSVg6Qs","search_url": "https://www.kayak.com/flights/WAS-LON/2026-05-16/2026-05-31","route": "WAS-LON","origin": "WAS","destination": "LON","depart_date": "2026-05-16","return_date": "2026-05-31","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-05-16T20:30:00","outbound_arrival": "2026-05-17T11:45:00","outbound_duration_minutes": 615,"outbound_stops": 1,"outbound_airlines": "Icelandair","inbound_departure": "2026-05-31T15:40:00","inbound_arrival": "2026-06-01T19:25:00","inbound_duration_minutes": 1965,"inbound_stops": 1,"inbound_airlines": "Icelandair","shareable_url": "https://www.kayak.com/flights/WAS-LON/2026-05-16/2026-05-31"}
Tips for Best Results
Start With Known Working Routes
- Use valid origin and destination airport or metro codes.
- Confirm dates are in the future and correctly formatted.
Scale Gradually
- Begin with
results_wanted: 20to validate your setup quickly. - Increase
max_pagesfor broader coverage when needed.
Improve Stability
- Enable proxy settings for frequent or larger runs.
- Retry with nearby dates if specific searches return limited data.
Integrations
Connect extracted data to:
- Google Sheets — route and fare tracking
- Airtable — searchable travel datasets
- Looker Studio — trend dashboards
- Webhooks — push results to custom systems
- Make — no-code automations
- Zapier — app-to-app workflows
Export Formats
- JSON
- CSV
- Excel
- XML
Frequently Asked Questions
Why did I get fewer results than requested?
Availability depends on route demand, date selection, and live inventory. Increase max_pages or test nearby travel dates.
Can I run one-way searches?
Yes. Provide origin, destination, and departDate only.
Is the dataset easy to use in spreadsheets?
Yes. The output is flattened and null-free for easier filtering, sorting, and reporting.
Support
For issues, questions, or feature requests, use the actor's support channel in the Apify Console.
Resources
Legal Notice
This actor is intended for lawful data collection and analysis. Users are responsible for ensuring their use complies with applicable laws, website terms of service, and rate limits. Use responsibly.