Flight Scraper avatar

Flight Scraper

Pricing

$2.25 / 1,000 flight itineraries

Go to Apify Store
Flight Scraper

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é

Maxime Dupré

Maintained by Community

Actor 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 sorting
  • prices - lowest observed price by source for the itinerary
  • bestPrice, cheapestSource, and sourcesFound - merged price summary
  • currency - requested output currency
  • airline - airline or airline group shown for the itinerary
  • from and to - airport code and available airport details
  • departDate, departTime, arriveDate, and arriveTime
  • duration, durationMinutes, and stops
  • segments - flight legs with airline, flight number, airports, times, duration, and cabin
  • layovers - layover airport and duration details when available
  • baggage - personal item, carry-on, and checked-bag allowance fields when public fare data is available
  • highlights - cheapest, fastest, best, or multi-source recommendation flags
  • travelHack and isSelfTransfer - self-transfer and virtual-interlining indicators when sources show them
  • links - booking and source search links
  • scrapedAt - UTC timestamp when the row was saved

🚀 How to run it

  1. Open the Input tab.
  2. Choose One-way or Round-trip.
  3. Enter an origin such as LAX, Los Angeles, or Los Angeles International.
  4. Enter a destination such as JFK, New York, or John F. Kennedy International.
  5. Pick a departure date and optional return date.
  6. Keep the default passenger count and currency, or adjust them for your search.
  7. Add optional filters for stops, price, airlines, or time windows.
  8. 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

Made with ❤️ by Maxime Dupré