Ryanair Flights Scraper [$0.5/1k 💙 ]
Pricing
from $0.50 / 1,000 results
Ryanair Flights Scraper [$0.5/1k 💙 ]
Scrape Ryanair flight fares, prices, routes, and cheapest destinations. Search one-way or round-trip flights by airport, date range, currency, and market, then export structured fare data with prices, flight numbers, availability, and booking links.*
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
Epic Scrapers
Maintained by CommunityActor stats
1
Bookmarked
3
Total users
1
Monthly active users
17 days ago
Last modified
Categories
Share
Ryanair Flights Scraper: cheap fares, route calendars, round trips and cheapest destinations
Ryanair Flights Scraper turns Ryanair fare searches into a spreadsheet. Give it one or more origin airports and a date range. You get the cheapest fare for each day on a route, round-trip fare pairs, or, with no destination, the cheapest places you can fly to from that airport. It is for fare monitoring, deal hunting, travel apps and route research. Each row has the route, dates, times, flight numbers, price, currency and a Ryanair booking link.
- Three search modes in one Actor. A route calendar (cheapest fare per day for an origin and destination), round-trip fares (outbound plus return), and Explore mode (leave destinations empty to see where you can fly).
- Many routes per run. Every origin is combined with every destination, so 2 origins and 3 destinations check 6 routes in one run.
- Filter and sort before you pay.
maxPrice,sortByandmaxResultsare applied before saving, so you only pay for the fares you keep. - Local currency and market. Pick any currency code and a Ryanair market such as
en-gb,en-ie,es-esorde-de. - Booking links and raw fare objects. Every available fare has a
bookingUrlwith route, date and passenger counts, plus the raw Ryanair fare inoutboundandinbound. - Pay per fare, no subscription. $0.50 per 1,000 fares plus a small start fee. No Ryanair account, API key, login or proxy setup. Export to JSON, CSV, Excel or Google Sheets.
Scope: This Actor returns fares, not seats, baggage or ancillary prices, and it does not book flights. For ground transport between the same cities, use FlixBus Trip Scraper or Itabus Scraper.
What can you do with Ryanair Flights Scraper?
| Goal | How |
|---|---|
| Find the cheapest day to fly | Search one route over a month and sort by price. Each row is one day (outboundDate). |
| Find cheap destinations | Leave destinations empty. Explore mode returns the cheapest fares from each origin, with destinationAirport. |
| Price a return trip | Set tripType to roundTrip with return dates. price is the total for both legs, returnDate the return day. |
| Monitor a route over time | Schedule the same input daily and compare price per origin, destination and outboundDate. |
| Build a deal alert | Set maxPrice so only fares at or below your target are saved, then send the dataset to Slack, email or a webhook. |
| Compare markets and currencies | Run the same route with different market and currency values. |
| Add fares to a travel app | Use the dataset API and the bookingUrl field to send users to the Ryanair booking page. |
| Plan a whole trip | Combine fares with stays from Airbnb Scraper or Agoda Listing Scraper. |
How it compares
| What you need | Ryanair Flights Scraper | Manual search on ryanair.com | Generic flight-price APIs |
|---|---|---|---|
| Many routes and dates | One run, any number of origin and destination pairs | One route and date at a time | Usually yes, billed per request |
| Cheapest day per route | One row per day across the date range | Fare calendar, no export | Varies |
| Cheapest destinations | Explore mode, empty destinations | "Anywhere" search, no export | Varies |
| Ryanair-only fares | Yes, direct from Ryanair's fare data | Yes | Varies by provider |
| Raw data for analysis | JSON, CSV, Excel, API, schedules, webhooks | Copy and paste | Yes |
| Price | Pay per fare | Free, manual | Subscription or per call |
Quick start
- Click Try for free and sign in to Apify.
- Enter one or more airport codes in Origin airports, for example
DUB. - Enter Destination airports, for example
STN, or leave it empty for Explore mode. - Set Outbound from and Outbound to (
YYYY-MM-DD). If you skip them, the Actor searches today and the next 7 days. - Click Start. When the run finishes, open the Output tab and export the data.
{"origins": ["DUB"],"destinations": ["STN"],"outboundDateFrom": "2026-11-10","outboundDateTo": "2026-11-14","maxResults": 10}
Input reference
| Field | Type | Default | Effect |
|---|---|---|---|
origins | Array of strings | Required | Origin airport IATA codes. Upper-cased and de-duplicated. |
destinations | Array of strings | Empty | Destination IATA codes. Empty means Explore mode (one-way only). |
tripType | String | "oneWay" | "oneWay" or "roundTrip". Round trips need at least one destination and both return dates. |
outboundDateFrom/outboundDateTo | String | Today, +7 | Outbound date range, YYYY-MM-DD. |
returnDateFrom/returnDateTo | String | Empty | Return date range for round trips. |
maxResults | Integer | 250 | Maximum fares saved after filtering and sorting. |
currency | String | "EUR" | Currency code, for example GBP or USD. |
market | String | "en-gb" | Ryanair market, for example en-ie, es-es, de-de. |
maxPrice | Number | Empty | Save only fares at or below this price. |
sortBy | String | "priceAsc" | "priceAsc", "departureAsc", "durationAsc" or "sourceOrder". Applied before maxResults. |
includeUnavailable | Boolean | false | One-way route searches only: also save days with no fare, with price: null and available: false. |
adults/teens/children/infants | Integer | 1/0/0/0 | Passenger counts written into bookingUrl. They do not change the fares returned. |
requestTimeoutSecs | Integer | 30 | Timeout per Ryanair request. |
Ready-to-run examples
Cheapest days on a route
{"origins": ["DUB"],"destinations": ["STN"],"outboundDateFrom": "2026-12-01","outboundDateTo": "2026-12-31","sortBy": "priceAsc","maxResults": 31}
Round trip with flexible dates
{"origins": ["DUB"],"destinations": ["BCN"],"tripType": "roundTrip","outboundDateFrom": "2026-11-10","outboundDateTo": "2026-11-14","returnDateFrom": "2026-11-17","returnDateTo": "2026-11-21","maxResults": 50}
Where can I fly from London Stansted under 40 pounds?
{"origins": ["STN"],"outboundDateFrom": "2026-11-10","outboundDateTo": "2026-11-20","currency": "GBP","maxPrice": 40}
Several routes at once
{"origins": ["DUB", "STN"],"destinations": ["BCN", "ALC", "PMI"],"outboundDateFrom": "2026-07-01","outboundDateTo": "2026-07-15","maxResults": 500}
Output
Results go to the run's default dataset. Use the Overview view, or export everything as JSON, CSV, Excel, XML or HTML. A short summary (totalResults, routesChecked, tripType) is also saved under the key OUTPUT in the run's key-value store.
This is a real row from a route calendar run (DUB to STN, November 2026):
{"scrapeMode": "routeCalendar","tripType": "oneWay","origin": "DUB","destination": "STN","outboundDate": "2026-11-12","returnDate": null,"departureDateTime": "2026-11-12T22:00:00","arrivalDateTime": "2026-11-12T23:20:00","flightNumber": null,"price": 14.99,"currency": "EUR","currencySymbol": "€","available": true,"soldOut": false,"unavailable": false,"duration": null,"outbound": {"day": "2026-11-12","arrivalDate": "2026-11-12T23:20:00","departureDate": "2026-11-12T22:00:00","price": { "value": 14.99, "valueMainUnit": "14", "valueFractionalUnit": "99", "currencyCode": "EUR", "currencySymbol": "€" },"soldOut": false,"unavailable": false},"inbound": null,"bookingUrl": "https://www.ryanair.com/gb/en/trip/flights/select?adults=1&teens=0&children=0&infants=0&dateOut=2026-11-12&isConnectedFlight=false&discount=0&promoCode=&originIata=DUB&destinationIata=STN"}
Round-trip and Explore rows also include returnDepartureDateTime, returnArrivalDateTime, returnFlightNumber, originAirport and destinationAirport (each with iataCode, name, cityName, countryName). This is the airport block from a real round-trip row (DUB to BCN):
{"scrapeMode": "routeSearch","tripType": "roundTrip","outboundDate": "2026-11-14","returnDate": "2026-11-20","flightNumber": "FR3977","returnFlightNumber": "FR6920","price": 66.48,"currency": "EUR","destinationAirport": { "iataCode": "BCN", "name": "Barcelona", "cityName": "Barcelona", "countryName": "Spain" }}
Notes on fields
scrapeModeisrouteCalendar(one-way with destinations),routeSearch(round trip) orexplore(no destinations).- Route calendar rows have
flightNumber: null, no airport blocks, andduration: null. Round-trip and Explore rows have flight numbers and airport details. - A round trip's
priceis the total for outbound and return together. The raw per-leg prices are inoutbound.priceandinbound.price. departureDateTimeandarrivalDateTimeare local airport times without a time zone offset, as Ryanair returns them.durationis empty in the cases we tested.sortBy: "durationAsc"is only useful when Ryanair provides it.bookingUrlalways points to theryanair.com/gb/enbooking page. It isnullfor unavailable dates.- Prices are in the requested
currency. Missing values arenull.
Track Ryanair fares over time with scheduled runs
Fares change daily. Apify can run the same search on a schedule and send the results wherever you need them.
1. Save your input as a task
Open the actor, set your input, then click Save as a new task. A task is a saved input you can run again with one click or on a schedule.
2. Schedule the task
In Apify Console, go to Schedules, click Create new, choose how often to run (for example daily at 06:00 in your time zone), and add your task. See Schedules and How to create a schedule.
Watch how to schedule an Actor:
Or schedule a saved task:
Common schedules:
| Use case | Frequency | Cron expression |
|---|---|---|
| Watch a route's cheapest days | Daily | 0 6 * * * |
| Explore deals from your home airport | Twice a day | 0 6,18 * * * |
| Seasonal planning (summer, Christmas) | Weekly (Monday) | 0 6 * * 1 |
3. Send the results to a spreadsheet
Connect Google in the task's Integrations tab to save every run to Google Sheets or Google Drive automatically:
4. Compare runs
Every row has origin, destination, outboundDate and price, so runs are easy to join:
- Price drops:
priceperorigin,destinationandoutboundDatecompared with the last run. - Sold-out dates: rows where
soldOutorunavailableflips totrue. - Round-trip totals:
priceperoutboundDateandreturnDate. - Cheapest destinations: the lowest
priceperdestinationAirport.cityNamein Explore mode.
FAQ
How many fares can I get?
maxResults caps the saved fares (default 250). Round-trip and Explore searches ask Ryanair for at most 250 fares per origin and destination pair, so very large result sets need several runs or narrower dates.
Why are there few or no results?
Ryanair has no fares for some days, and by default the Actor saves only available fares. Check the date range, remove maxPrice, or set includeUnavailable to true for one-way route searches to see which days have no fare. Round trips need at least one destination and both return dates, or the run fails with a clear message.
What is Explore mode?
Leave destinations empty. Ryanair returns its cheapest fares from each origin for your dates, and each row shows the destination airport. Explore mode is one-way only.
How fast is it?
Each route is one request to Ryanair, and routes run one after another. Most runs finish within seconds to a few minutes.
Do I need proxies, a Ryanair account or an API key?
No. The Actor reads Ryanair's public fare data without login.
Are these the final prices I will pay?
They are Ryanair's published fares for the dates. Ryanair adds charges for bags, seats and extras at booking, which this Actor does not return. Fares change quickly, so re-run before you book.
Does it work for other airlines?
No, only Ryanair.
How is this different from the official Ryanair API?
This Actor does not use an official developer API. It reads the fare data behind Ryanair's own fare finder and returns it as a dataset.
Is it legal to scrape Ryanair?
The Actor collects publicly visible fare data and no personal data. You are responsible for how you use it, including Ryanair's terms and applicable laws.
Can I compare flights with trains, buses or hotels?
Yes. See the related Actors below.
Cost
This Actor uses pay-per-event pricing, with no subscription:
| Event | Price | Charged when |
|---|---|---|
| Actor start | $0.005 | The run starts (one event per GB of memory, minimum one). |
| Result | $0.0005 | A fare is saved to the dataset ($0.50 per 1,000 fares). |
Example runs:
| Run | Cost |
|---|---|
| 31 days on one route | $0.02 |
| 250 fares from Explore mode | $0.13 |
| 1,000 fares | $0.51 |
Use maxResults and maxPrice to limit what you pay for, and set a maximum cost per run if you like. The Pricing tab always shows the current prices.
Related Actors
- FlixBus Trip Scraper: bus fares and schedules across Europe.
- Itabus Scraper: Italian bus stations, price calendars and journeys.
- Airbnb Scraper: stays at your destination.
- Agoda Listing Scraper: hotel prices at your destination.
- Booking Reviews Scraper: guest reviews to vet hotels.
Support
Report problems or request features in the Issues tab. Include the run ID, the input and what you expected. We read every issue.
This Actor is not affiliated with or endorsed by Ryanair DAC. "Ryanair" is a trademark of Ryanair DAC.