Flight Scraper
Pricing
$2.25 / 1,000 flight itineraries
Flight Scraper
Flight scraper for public route searches. Compare itinerary prices, airlines, times, stops, duration, baggage hints, and booking links from multiple flight sources.
Pricing
$2.25 / 1,000 flight itineraries
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
✈️ Flight scraper for public prices and schedules
Flight Scraper searches public flight sources by route and date, then saves clean itinerary rows you can export or use through the Apify API. Enter an origin, destination, departure date, passenger count, cabin, currency, and filters, and the Actor returns flight prices, airlines, departure and arrival times, stops, duration, baggage hints, source prices, booking links, and scrape timestamps.
Use this flight scraper when you need a repeatable way to compare fares without opening Google Flights, Skyscanner, Kayak, Kiwi, Ryanair, or easyJet by hand. It is useful for airfare monitoring, travel dashboards, price comparison tools, OTA research, route checks, and internal travel workflows.
For a first run, keep the prefilled LAX to JFK route, keep the prefilled departure date, and leave Flight result limit at 100. Once the output shape matches your workflow, lower the limit for quicker checks, add filters, schedule repeat runs, or call the Actor through the Apify API.
🔎 What this Actor does
- Searches public flight itinerary data for one-way and round-trip inputs.
- Accepts city names, airport names, and IATA airport codes.
- Compares merged prices from supported public sources when the same itinerary appears more than once.
- Saves one dataset item per accepted flight itinerary.
- Returns airlines, route, departure and arrival times, duration, stops, layovers, segments, baggage fields, source prices, and booking or source links.
- Supports filters for stops, maximum price, preferred airlines, excluded airlines, departure time, and arrival time.
- Supports sorting by balanced value, cheapest, fastest, or non-stop first.
- Works with Apify dataset exports, API clients, schedules, webhooks, and integrations.
The Actor focuses on public itinerary results for the submitted route and date. It does not book flights, hold fares, log in to airline accounts, redeem miles, or emit stale cached price-only rows when a source does not provide date-correct itinerary details.
📦 Data you can extract
Each dataset item is one public flight itinerary. Fields can be empty when a source does not show that detail for a flight.
rank- 1-based result order after filters and sortingprices- lowest observed price by source for the itinerarybestPrice,cheapestSource, andsourcesFound- merged price summarycurrency- requested output currencyairline- airline or airline group shown for the itineraryfromandto- airport code and available airport detailsdepartDate,departTime,arriveDate, andarriveTimeduration,durationMinutes, andstopssegments- flight legs with airline, flight number, airports, times, duration, and cabinlayovers- layover airport and duration details when availablebaggage- personal item, carry-on, and checked-bag allowance fields when public fare data is availablehighlights- cheapest, fastest, best, or multi-source recommendation flagstravelHackandisSelfTransfer- self-transfer and virtual-interlining indicators when sources show themlinks- booking and source search linksscrapedAt- UTC timestamp when the row was saved
🚀 How to run it
- Open the Input tab.
- Choose
One-wayorRound-trip. - Enter an origin such as
LAX,Los Angeles, orLos Angeles International. - Enter a destination such as
JFK,New York, orJohn F. Kennedy International. - Pick a departure date and optional return date.
- Keep the default passenger count and currency, or adjust them for your search.
- Add optional filters for stops, price, airlines, or time windows.
- Run the Actor and open the dataset.
You can export the dataset as JSON, CSV, Excel, XML, RSS, or HTML. You can also consume the same rows through the Apify API, schedule recurring fare checks, or connect runs to webhooks and integrations.
⚙️ Input options
Trip type chooses one-way or round-trip search.
Origin and Destination accept city names, airport names, or IATA airport codes.
Departure date is the outbound flight date. Return date is optional and applies to round-trip searches.
Passengers sets the number of adult passengers to price. The public form accepts 1 to 9 passengers.
Currency is the ISO currency code used for prices, such as USD, EUR, GBP, CAD, or AUD.
Cabin class supports economy, premium economy, business, and first class.
Stops, Maximum price, Preferred airlines, Excluded airlines, Earliest departure time, Latest departure time, and Arrive before help narrow the saved itineraries.
Sort flights by controls result order before the limit is applied.
Add baggage allowance keeps baggage fields in the output when public fare data includes them.
Flight result limit caps how many itinerary rows are saved. Use a small limit for a quick first run.
🧾 Example input
{"tripType": "oneWay","origin": "LAX","destination": "JFK","departureDate": "2026-07-15","maxResults": 100,"passengers": 1,"currency": "USD","sortBy": "balanced","cabinClass": "economy","maxStops": "any","includeBaggageEstimate": true}
📄 Example output
{"type": "flight_itinerary","rank": 1,"prices": {"skyscanner": 205.4,"kayak": 205.4,"priceline": 205.4,"expedia": 205.4},"bestPrice": 205.4,"cheapestSource": "skyscanner","sourcesFound": ["skyscanner", "kayak", "priceline", "expedia"],"currency": "USD","airline": "jetBlue","from": {"code": "LAX","name": "Los Angeles International","city": "Los Angeles","country": "United States","countryCode": "US"},"to": {"code": "JFK","name": "New York John F. Kennedy","city": "New York","country": "United States","countryCode": "US"},"departDate": "2026-07-15","departTime": "14:30","arriveDate": "2026-07-15","arriveTime": "23:10","duration": "5 hr 40 min","durationMinutes": 340,"stops": 0,"segments": [{"airline": "jetBlue","airlineCode": "B6","flightNumber": "B6624","from": {"code": "LAX","name": "Los Angeles International","city": "Los Angeles","country": "United States","countryCode": "US"},"to": {"code": "JFK","name": "New York John F. Kennedy","city": "New York","country": "United States","countryCode": "US"},"departureTime": "14:30","arrivalTime": "23:10","durationMinutes": 340,"cabinClass": "economy"}],"layovers": [],"baggage": {"personalItemIncluded": null,"carryOnBagsIncluded": null,"checkedBagsIncluded": null},"highlights": {"isBest": true,"isCheapest": true,"isFastest": false,"recommendationReason": "Cheapest matching itinerary"},"isSelfTransfer": false,"travelHack": {"isVirtualInterlining": false,"isHiddenCity": false,"isThrowawayTicket": false},"links": {"book": "https://www.skyscanner.com/","skyscanner": "https://www.skyscanner.com/"},"scrapedAt": "2026-06-05T21:00:00.000Z"}
💳 Pricing
This Actor uses pay-per-event pricing. You are charged for each saved flight itinerary. If no matching public itinerary is saved, no itinerary event is charged.
The configured pricing event is Flight itinerary at $0.00225 per saved itinerary.
⚠️ Limits and caveats
Public flight sources can show different prices, currencies, baggage details, and booking links. The Actor returns the public data available during the run, but fares can change after scraping.
Some routes or dates may return fewer rows than your requested limit. If a source is unavailable or does not return date-correct itinerary details, the Actor skips that source instead of saving placeholder rows.
Round-trip support depends on the source data available for the submitted route. For the broadest first-run coverage, start with one-way airport-code searches.
❓ FAQ
🔌 Can I use this as a flight prices API?
Yes. You can run the Actor from Apify Console or through the Apify API and read the dataset rows from your app, workflow, or dashboard.
🔑 Does it need a flight API key?
No public input asks for a Google Flights, Skyscanner, Kayak, Kiwi, Ryanair, or easyJet API key. The Actor handles public source access internally.
🧭 Does it scrape every airline website directly?
No. It searches public flight sources and airline surfaces that return itinerary-grade data. If a direct airline surface only exposes calendar-level prices without full itinerary details, the Actor does not save those as fake flight rows.
💸 Why do sources sometimes disagree on price?
Flight metasearch and airline sources can update at different times or include different booking options. Use prices, bestPrice, cheapestSource, and sourcesFound to compare what each source returned for the same itinerary.
📝 Changelog
- 0.1: Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Other actors
- Award Flights Scraper ↗ - check award flight availability, miles, taxes, cabins, and booking links.
- Google Maps Shared List Scraper ↗ - export saved places from public Google Maps shared lists for travel planning and local research.
- Website URL Crawler ↗ - crawl rendered websites and export discovered links with source-page context.
- Web Images Scraper ↗ - extract image URLs, metadata, source pages, and optional saved image files from public webpages.
- Google Shopping Ads Scraper ↗ - collect paid Shopping ad products, prices, merchants, and landing pages from Google Search.
Made with ❤️ by Maxime Dupré