
Ryanair Fares Scraper
hipersoft/ryanair-fares-scraper
Scrape cheap Ryanair fares: routes, dates, prices and the cheapest flight deals across airports. One-way and round-trip, any market and currency. Clean structured JSON, CSV or Excel for deal alerts, price tracking and travel dashboards.
Total users
2Monthly users
1Total runs
46Per fare scraped
$0.003Last rebuilt
Oct 26, 2026Overview
Scrape cheap Ryanair fares in bulk and find the cheapest flight deals across airports and dates. Give the Ryanair fares scraper one or more departure airports and a date window, and it returns one clean row per fare: route, departure and arrival dates, price, currency, flight number and a ready-to-open booking link. Works for one-way and round-trip searches, in any market and currency. Export the results as JSON, CSV, Excel or XML. Fast and reliable.
Ideal for flight-deal alerts, price tracking, cheapest-destination finders, travel dashboards, fare research and travel-agency tooling.

What does the Ryanair Fares Scraper do?
The Ryanair Fares Scraper is a no-code cheap-flights crawler that collects the lowest available Ryanair fares from any departure airport across a range of dates. Instead of clicking through the site one route at a time, you point it at a list of airports, pick one-way or round-trip, set your date window and price cap, and get a structured dataset of the cheapest fares — every route, date and price in one export. It resolves each airport's name, city and country so your data is clean and analysis-ready.
What data can you scrape from Ryanair?
| Field | Description |
|---|---|
departureAirport / departureAirportName |
Origin airport IATA code and full name. |
departureCity / departureCountry |
Origin city and country. |
arrivalAirport / arrivalAirportName |
Destination airport IATA code and full name. |
arrivalCity / arrivalCountry |
Destination city and country. |
departureDate / arrivalDate |
Outbound departure and arrival date-times. |
price / currency |
Cheapest fare price and its currency. |
tripType |
oneWay or roundTrip. |
returnDate / returnPrice |
Return departure date and price (round-trip). |
totalPrice / durationDays |
Combined round-trip price and trip length in days. |
flightNumber |
Ryanair flight number. |
bookingUrl |
Deep link to continue booking the fare. |
scrapedAt |
Timestamp of when the fare was collected. |
Use cases
- Flight-deal alerts — run on a schedule and get notified whenever a cheap Ryanair fare appears from your home airports.
- Price tracking — log fares over time to spot price drops and the best time to book.
- Cheapest-destination finder — pull every route from an airport and sort by price to see where you can fly cheapest.
- Travel dashboards — feed clean fare data into Google Sheets, Looker Studio or Power BI.
- Fare research & data journalism — analyse how Ryanair prices routes across dates and markets.
- Travel-agency & affiliate tooling — surface the best current deals to your own customers.
- Multi-airport comparison — search several departure airports at once and compare the cheapest options side by side.
How to scrape Ryanair fares
- Add the Ryanair Fares Scraper to your Apify account and open it.
- Enter one or more departure airports as IATA codes (e.g.
DUB,STN,BGY). - Choose one-way or round-trip, then set your outbound date window (and return window / trip length for round-trips).
- Optionally set a maximum price, a market (currency/language) and a fare limit.
- Click Run, then download the results as JSON, CSV or Excel — or pull them from the API.
Input
| Field | Description |
|---|---|
departureAirports |
Airport IATA codes to search fares FROM, one per line (e.g. DUB, STN). |
tripType |
oneWay or roundTrip. |
outboundDateFrom |
Earliest outbound date, YYYY-MM-DD. Defaults to today. |
outboundDateTo |
Latest outbound date, YYYY-MM-DD. Defaults to 30 days out. |
inboundDateFrom |
Earliest return date for round-trips, YYYY-MM-DD. |
inboundDateTo |
Latest return date for round-trips, YYYY-MM-DD. |
durationFrom |
Minimum trip length in days (round-trip). |
durationTo |
Maximum trip length in days (round-trip). |
market |
Market code for currency/language, e.g. en-gb, en-ie, de-de. |
maxPrice |
Only return fares at or below this price. |
maxItems |
Maximum fares to return (0 = no limit). |
Example input
{
"departureAirports": ["DUB", "STN"],
"tripType": "oneWay",
"outboundDateFrom": "2026-10-01",
"outboundDateTo": "2026-10-31",
"market": "en-gb",
"maxPrice": 30,
"maxItems": 100
}
Output

Each dataset item is one fare. One-way example:
{
"departureAirport": "DUB",
"departureAirportName": "Dublin",
"departureCity": "Dublin",
"departureCountry": "Ireland",
"arrivalAirport": "BCN",
"arrivalAirportName": "Barcelona",
"arrivalCity": "Barcelona",
"arrivalCountry": "Spain",
"departureDate": "2026-10-06T21:45:00",
"arrivalDate": "2026-10-07T01:20:00",
"price": 14.99,
"currency": "EUR",
"tripType": "oneWay",
"flightNumber": "FR7452",
"bookingUrl": "https://www.ryanair.com/gb/en/trip/flights/select?...&originIata=DUB&destinationIata=BCN",
"scrapedAt": "2026-09-08T13:51:24.483Z"
}
Round-trip example (adds the return leg and totals):
{
"departureAirport": "DUB",
"arrivalAirport": "AGA",
"departureDate": "2026-10-05T05:45:00",
"price": 28.49,
"currency": "EUR",
"tripType": "roundTrip",
"returnDate": "2026-10-07T09:35:00",
"returnPrice": 27.99,
"totalPrice": 56.48,
"durationDays": 2,
"flightNumber": "FR3995",
"bookingUrl": "https://www.ryanair.com/gb/en/trip/flights/select?...&isReturn=true"
}
Output schema
| Field | Type | Description |
|---|---|---|
departureAirport |
string | Origin airport IATA code. |
departureAirportName |
string | Origin airport full name. |
departureCity |
string | Origin city. |
departureCountry |
string | Origin country. |
arrivalAirport |
string | Destination airport IATA code. |
arrivalAirportName |
string | Destination airport full name. |
arrivalCity |
string | Destination city. |
arrivalCountry |
string | Destination country. |
departureDate |
string (ISO date) | Outbound departure date-time. |
arrivalDate |
string (ISO date) | Outbound arrival date-time. |
price |
number | Cheapest fare price (outbound for round-trips). |
currency |
string | Currency code of the price. |
tripType |
string | oneWay or roundTrip. |
inboundDepartureDate |
string (ISO date) | Return departure date-time (round-trip). |
inboundArrivalDate |
string (ISO date) | Return arrival date-time (round-trip). |
returnDate |
string (ISO date) | Return departure date-time (round-trip). |
returnPrice |
number | Return fare price (round-trip). |
totalPrice |
number | Combined outbound + return price (round-trip). |
durationDays |
number | Trip length in days (round-trip). |
flightNumber |
string | Ryanair flight number. |
inboundFlightNumber |
string | Return flight number (round-trip). |
bookingUrl |
string (URL) | Deep link to continue booking. |
scrapedAt |
string (ISO date) | When the fare was collected. |
Need more travel data?
Pair the Ryanair Fares Scraper with other travel and location datasets:
- Google Flights Scraper — compare fares across airlines and routes.
- Booking Hotels Scraper — hotel prices and availability for your destination.
- Agoda Hotels Scraper — more hotel rates and reviews.
- Airbnb Scraper — short-stay listings and nightly prices.
- REST Countries Scraper — enrich destinations with country data.
FAQ
How many fares can I scrape?
As many as are available across the airports and date window you choose. Use maxItems to cap the run, or set it to 0 for no limit.
Do I need any setup or a login? No setup — just add your departure airports and date window and click Run. No account with the airline is needed.
One-way or round-trip?
Both. Set tripType to oneWay or roundTrip; round-trip searches also let you set the return window and trip length in days.
Which currencies can I get?
Set the market field (e.g. en-gb for GBP, en-ie for EUR, de-de for EUR). Prices and the currency field follow the market.
How do I filter to only cheap deals?
Set maxPrice to only return fares at or below your budget, then sort the dataset by price to see the cheapest first.
What export formats are supported? JSON, CSV, Excel and XML — download from the run or pull from the API.
How fresh is the data? Fares are collected live each run, so schedule the actor to keep a rolling history for price tracking and deal alerts.
Can I connect it to my own tools?
Yes. The Ryanair Fares Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JS/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Is it legal? The scraper returns only publicly available fare information. You are responsible for complying with Ryanair's terms and applicable laws.
Notes
Original clean-room implementation. Returns only public data; you are responsible for compliance with Ryanair's terms. Not affiliated with Ryanair.
Input
| Field | Type | Description |
|---|---|---|
departureAirportsDeparture airports (IATA) | array | Airport IATA codes to search cheap fares FROM, one per line (e.g. DUB, STN, BGY). Unknown codes are warned about and skipped. |
tripTypeTrip type | string · oneWay, roundTrip | Search one-way fares or round-trip fares (outbound + return). Default: "oneWay" |
outboundDateFromOutbound date from | string | Earliest outbound departure date, formatted YYYY-MM-DD. Leave empty to default to today. |
outboundDateToOutbound date to | string | Latest outbound departure date, formatted YYYY-MM-DD. Leave empty to default to 30 days from today. |
inboundDateFromInbound date from (round-trip only) | string | Earliest return departure date for round-trip searches, YYYY-MM-DD. Leave empty to reuse the outbound window. |
inboundDateToInbound date to (round-trip only) | string | Latest return departure date for round-trip searches, YYYY-MM-DD. Leave empty to reuse the outbound window. |
durationFromMinimum trip length (days, round-trip) | integer | Minimum number of days between outbound and return for round-trip searches. Default: 2 |
durationToMaximum trip length (days, round-trip) | integer | Maximum number of days between outbound and return for round-trip searches. Default: 7 |
marketMarket / locale | string | Market code controlling currency and language, e.g. en-gb (GBP), en-ie (EUR), de-de, it-it, es-es, pl-pl. Default: "en-gb" |
maxPriceMaximum price | integer | Optional. Only return fares at or below this price (in the market's currency). Leave empty for no limit. |
maxItemsMaximum fares | integer | Maximum number of fares to return across all airports. Use 0 for no limit. Default: 0 |
proxyConfigurationProxy (optional) | object | Optional proxy settings. Not required — the fare data is fetched over plain datacenter HTTP. Default: {"useApifyProxy": false} |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~ryanair-fares-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"departureAirports": [
"DUB"
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/ryanair-fares-scraper").call(run_input={
"departureAirports": [
"DUB"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/ryanair-fares-scraper').call({
"departureAirports": [
"DUB"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Fare scraped One Ryanair fare with route, dates and price. | $0.003 | $0.0015 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Carousell Scraper
Scrape Carousell search listings: title, price, condition, location, seller, photo and URL. Requires your own Carousell app token.
242 runs · 2 users · $0.003 / listing scrapedGoogle Flights Scraper
Scrape flight options from Google Flights by route and date: airline, flight number, departure and arrival times, duration, stops, layovers and price. One-way or round-trip, any cabin and currency. For travel and price monitoring.
216 runs · 4 users · $0.004 / flight scrapedPinterest Scraper
Search Pinterest and scrape pins (title, description, destination link, image, pinner, board, saves), boards and users. Fast. For visual research, e-commerce, trend and marketing analysis.
151 runs · 2 users · $0.0034 / item scrapedGoogle Trends Scraper
Scrape Google Trends for any keyword: interest over time, related and rising queries, and interest by region. Per country and timeframe. For SEO, market and trend research. No setup.
139 runs · 6 users · $0.001 / keyword scrapedAliExpress Product Search Scraper
Search AliExpress by keyword and export one clean row per product — title, sale price, original price, image and product URL. Export to JSON, CSV or Excel.
135 runs · 3 users · $0.003 / product scrapedGoogle Maps Scraper
Search Google Maps and scrape places: name, category, full address, city, coordinates, rating, phone, website, Place ID and map link. Fast browser-free via Google's internal endpoint, no setup. For local lead generation and market research.
130 runs · 2 users · $0.005 / place scrapedSend the site and the fields. We build it and you get it first.