Ryanair Flight Price Scraper
Pricing
Pay per event
Ryanair Flight Price Scraper
Track Ryanair fares by route and date. Extract public price, currency, departure time, arrival time, sold-out, and availability rows.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
Share
Track public Ryanair fare calendar prices, dates, route availability, and currency data from Ryanair's public flight endpoints.
What does Ryanair Flight Price Scraper do?
Ryanair Flight Price Scraper extracts public fare calendar rows for Ryanair routes. It is designed for scheduled flight-price monitoring, price-drop alerts, competitor fare tracking, and route availability checks. You provide a departure airport, optional arrival airport, and date range. The Actor returns structured fare rows with route, date, departure time, arrival time, price, currency, and availability flags. Schedule it on Apify to watch the same Ryanair route daily, then send lower fares to Google Sheets, Telegram, Slack, n8n, webhooks, or your own alerting backend.
Who is it for?
Travel data teams use it to monitor low-cost airline fare changes. Tour operators use it to benchmark package holiday flight inputs. Revenue analysts use it to compare fare movement across city pairs. Travel bloggers use it to discover low-price dates for destination guides. Developers use it to feed flight-price dashboards and alerts. Agencies use it to automate recurring route checks without maintaining Ryanair API code.
Why use this scraper?
✅ Direct Ryanair source data. ✅ HTTP-only implementation, no browser overhead. ✅ Route discovery from public Ryanair airport metadata. ✅ Date-range filtering for clean datasets. ✅ Currency and airport metadata enrichment. ✅ Per-row pricing for predictable costs. ✅ Outputs ready for CSV, JSON, Excel, BigQuery, or API workflows.
What data can you extract?
| Field | Description |
|---|---|
departureAirport | Origin IATA code |
departureAirportName | Public Ryanair airport name |
departureCity | Origin city code |
departureCountry | Origin country code |
arrivalAirport | Destination IATA code |
arrivalAirportName | Destination airport name |
arrivalCity | Destination city code |
arrivalCountry | Destination country code |
date | Fare calendar date |
departureDate | Departure timestamp when available |
arrivalDate | Arrival timestamp when available |
price | Fare value |
currency | Fare currency code |
currencySymbol | Currency symbol |
previousPrice | Previous fare value when Ryanair exposes it |
soldOut | Whether the date is sold out |
unavailable | Whether the date is unavailable |
newRoute | Whether Ryanair marks it as a new route |
sourceUrl | Ryanair booking URL for the route/date |
scrapedAt | Scrape timestamp |
How much does it cost to scrape Ryanair flight prices?
This Actor uses pay-per-event pricing. There is a small start event and a per-fare-row event. The accepted platform BRONZE tier is $0.05 per 1,000 fare rows, with tier discounts down to $0.014 per 1,000 rows at DIAMOND. Actual platform pricing is shown on the Apify Store pricing tab. Use a short date range first if you want a very small test run.
Quick start
- Open the Actor on Apify.
- Set
departureIatato a Ryanair airport such asDUB. - Set
arrivalIatato a destination such asSTN. - Choose
dateFromanddateTo. - Keep
maxResultslow for your first run. - Click Start.
- Download the dataset as JSON, CSV, Excel, XML, or HTML.
Input configuration
{"departureIata": "DUB","arrivalIata": "STN","dateFrom": "2026-06-04","dateTo": "2026-06-18","currency": "EUR","market": "en-gb","language": "en","maxResults": 50,"maxRoutes": 10,"includeUnavailable": false}
Input fields explained
departureIata is required and must be a three-letter airport code.
arrivalIata is optional; when empty, the Actor discovers Ryanair routes from the departure airport.
dateFrom and dateTo define the inclusive calendar range.
currency controls the fare currency requested from Ryanair.
market controls the Ryanair market locale.
language controls airport metadata language.
maxResults caps saved fare rows.
maxRoutes caps route discovery mode.
includeUnavailable saves sold-out and unavailable dates with null prices when enabled.
Output example
{"departureAirport": "DUB","departureAirportName": "Dublin","departureCity": "DUBLIN","departureCountry": "ie","arrivalAirport": "STN","arrivalAirportName": "London Stansted","arrivalCity": "LONDON","arrivalCountry": "gb","date": "2026-06-06","departureDate": "2026-06-06T20:00:00","arrivalDate": "2026-06-06T21:20:00","flightNumber": null,"flightKey": null,"price": 69.99,"currency": "EUR","currencySymbol": "€","previousPrice": null,"soldOut": false,"unavailable": false,"newRoute": false,"sourceUrl": "https://www.ryanair.com/en-gb/trip/flights/select?...","scrapedAt": "2026-06-04T08:00:00.000Z"}
Route discovery mode
Leave arrivalIata empty to scan multiple public Ryanair routes from one departure airport.
The Actor reads Ryanair airport metadata and extracts airport:XXX routes.
Use maxRoutes to keep the run bounded.
This is useful for finding all cheap outgoing routes from one airport.
For precise monitoring, provide a single arrivalIata.
Date range tips
Ryanair's fare calendar endpoint is monthly.
The Actor requests each month touched by your date range.
Short ranges finish faster.
Long ranges create more fare rows.
If you need a year of prices, increase maxResults accordingly.
If you only need bookable prices, keep includeUnavailable disabled.
Common use cases
🛫 Monitor DUB to STN fares every morning. 💶 Compare low-cost route prices across several destinations. 📉 Detect price drops for a travel newsletter. 📊 Build a historical fare dataset in your own database. 🧭 Discover Ryanair destinations from a departure airport. 🔔 Trigger alerts when fares fall below a threshold.
Integrations
Send dataset items to Google Sheets for analysts. Push JSON rows to a webhook for alerting. Create n8n workflows that run this Actor on a schedule, compare today's fare rows with a saved threshold, and send price-drop alerts to Telegram, email, Slack, Discord, or a CRM. Load CSV exports into a BI dashboard. Use Apify integrations to sync with Make, Zapier, or custom APIs. Schedule daily runs and compare new prices with yesterday's dataset. Use the Apify API to run this Actor from your own booking-monitoring backend.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/ryanair-flight-price-scraper').call({departureIata: 'DUB',arrivalIata: 'STN',dateFrom: '2026-06-04',dateTo: '2026-06-18',maxResults: 50});console.log(run.defaultDatasetId);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("automation-lab/ryanair-flight-price-scraper").call(run_input={"departureIata": "DUB","arrivalIata": "STN","dateFrom": "2026-06-04","dateTo": "2026-06-18","maxResults": 50,})print(run["defaultDatasetId"])
API usage with cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~ryanair-flight-price-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"departureIata":"DUB","arrivalIata":"STN","dateFrom":"2026-06-04","dateTo":"2026-06-18","maxResults":50}'
MCP usage
Use this Actor through Apify MCP from Claude Code or Claude Desktop. MCP URL:
https://mcp.apify.com/?tools=automation-lab/ryanair-flight-price-scraper
Add it in Claude Code with:
$claude mcp add apify-ryanair-flight-price-scraper https://mcp.apify.com/?tools=automation-lab/ryanair-flight-price-scraper
Claude Desktop MCP JSON configuration:
{"mcpServers": {"apify-ryanair-flight-price-scraper": {"url": "https://mcp.apify.com/?tools=automation-lab/ryanair-flight-price-scraper"}}}
Example prompts:
- "Run Ryanair Flight Price Scraper for DUB to STN next week and summarize the cheapest dates."
- "Check Ryanair fares from BGY to MAD for the next 30 days and return CSV-ready rows."
- "Find available Ryanair fare dates from Dublin to London Stansted under 100 EUR."
Scheduling and monitoring
Create an Apify schedule for recurring monitoring.
Run the same input daily or weekly.
Compare datasets by route and date.
Send price changes to a webhook, Telegram bot, Google Sheet, or n8n automation.
Use a threshold rule such as "alert me when DUB → STN drops below €50" to power simple fare alerts without maintaining Ryanair API code.
Store historical rows in your warehouse.
Keep maxResults high enough for your full route/date range.
Data quality notes
Ryanair's public fare calendar may expose one cheapest fare per date rather than every flight option.
Flight-level identifiers are included as nullable fields because the calendar endpoint does not always expose them.
Unavailable dates can be skipped or saved depending on your input.
Prices and availability can change quickly.
Always treat fare data as a snapshot at scrapedAt.
Troubleshooting
If you get no results, verify the route exists on Ryanair.
If prices are null, disable includeUnavailable or choose a bookable date range.
If route discovery returns fewer routes than expected, provide arrivalIata directly.
If the currency is unexpected, set currency explicitly.
If the run stops early, increase maxResults.
Limits and anti-bot approach
The Actor uses conservative HTTP requests and browser-like headers. It does not use Playwright. It does not require a Ryanair account. It relies on public endpoints that may change. If Ryanair changes its API, the Actor may need an update.
Legality
This Actor extracts publicly available fare information.
Is it legal to scrape Ryanair flight prices?
This Actor extracts publicly available fare information. You should use the data responsibly. Review Ryanair's terms and your local laws before using scraped data commercially. Do not use the Actor for abusive traffic, resale that violates terms, or personal data extraction. Consult legal counsel if you are unsure.
Related scrapers
Explore related Apify actors by automation-lab:
- https://apify.com/automation-lab/google-flights-scraper
- https://apify.com/automation-lab/booking-scraper
- https://apify.com/automation-lab/tripadvisor-scraper
- https://apify.com/automation-lab/google-maps-scraper
FAQ
Can I scan all destinations from one airport?
Yes. Leave arrivalIata empty and set maxRoutes to the number of routes you want to scan.
Does it return every Ryanair flight?
No. The MVP returns public fare calendar rows, usually the cheapest visible fare for a route/date.
Can I include sold-out dates?
Yes. Set includeUnavailable to true.
Can I change the currency?
Yes. Set currency to values such as EUR, GBP, or another supported Ryanair currency.
Can I schedule daily monitoring?
Yes. Use Apify schedules and compare datasets across runs.
Version notes
Initial version focuses on public one-way fare calendar data.
Round-trip and flight-level availability can be added later if a stable public endpoint supports it.
The Actor keeps nullable flightNumber and flightKey fields for future compatibility.
Support
If the Actor stops returning expected Ryanair fare rows, open an issue with your input JSON, run ID, and an example route/date.