Ryanair Scraper
Pricing
from $0.44 / 1,000 item extracteds
Ryanair Scraper
Search Ryanair fare calendars by airport and future date range, then export current fares, schedules, availability, and cheapest route/date options.
Pricing
from $0.44 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Search public Ryanair fares by departure airport and future date range. Export current prices, route and airport details, departure and arrival times, availability, retrieval timestamps, and the cheapest dates found for each route.
Use one destination for a focused fare calendar, or leave the destination empty to compare multiple direct Ryanair routes from an airport. The Actor writes normalized records to the default Apify dataset for spreadsheets, scheduled monitoring, APIs, and data pipelines.
What does Ryanair Scraper do?
The Actor queries Ryanair's public airport and fare-calendar data. It can:
- search a specific origin and destination;
- discover direct destinations exposed for an origin;
- scan a future date range of up to 180 days;
- return current one-way fares and currency;
- include public departure and arrival timestamps;
- mark the lowest returned fare for each route;
- include sold-out and unavailable dates on request;
- generate a Ryanair booking URL for every date;
- timestamp each snapshot for scheduled comparisons.
No Ryanair account is required. The Actor uses direct public structured endpoints and does not automatically spend money on proxy traffic.
Who is this Ryanair fare scraper for?
Travelers and travel-deal researchers
Compare destinations from a departure airport and identify lower-priced dates before opening the Ryanair booking flow.
Travel agencies and content teams
Build route/date fare tables for internal research, destination content, or deal discovery. Always verify a fare on Ryanair before presenting it as bookable.
Revenue and market analysts
Collect repeatable snapshots of public route prices and availability.
Join successive datasets by route and travelDate to calculate historical changes.
Developers and data teams
Send typed fare rows to Google Sheets, webhooks, databases, BI tools, or custom applications through Apify integrations and API clients.
Why use this Actor?
- Ryanair-specific records: direct route, airport, schedule, fare, and availability fields.
- Two useful workflows: focused route lookup and cheapest-destination exploration.
- Rolling dates:
today+7style inputs remain useful in scheduled Tasks. - Bounded execution: limits for records, destinations, and date range prevent accidental large runs.
- Typed output: one fare-date option per dataset row.
- Visible failures: invalid input or an unexpected upstream response fails rather than returning fabricated data.
- No browser overhead: the current implementation uses lightweight HTTP requests.
What Ryanair data can I extract?
| Field | Meaning |
|---|---|
route | Origin and destination IATA codes, such as DUB-STN |
departureAirport | Origin IATA code |
departureAirportName | Public airport name |
departureCity | Ryanair city code |
departureCountry | Two-letter country code |
arrivalAirport | Destination IATA code |
arrivalAirportName | Public destination airport name |
arrivalCity | Destination city code |
arrivalCountry | Destination country code |
flightNumber | Flight number when exposed; currently often null in fare-calendar data |
departureDate | Public local departure timestamp |
arrivalDate | Public local arrival timestamp |
travelDate | Fare calendar date |
currentFare | Current displayed one-way fare |
previousFare | Previous fare when Ryanair includes it in the response |
currency | ISO fare currency |
currencySymbol | Display symbol supplied by Ryanair |
fareChange | Current minus previous fare when both exist |
soldOut | Ryanair sold-out flag |
unavailable | Ryanair unavailable flag |
newRoute | Ryanair new-route flag |
isCheapestForRoute | Whether this row has the lowest fare found for its route |
routeLowestFare | Lowest fare found for the route in this run |
sourceUrl | Ryanair booking page for the route and date |
priceUpdatedAt | Timestamp when the Actor fetched the fare snapshot |
Fields can be null when the public response does not provide them.
A null value is not replaced with an estimate.
How to scrape Ryanair fares
- Open the Actor in Apify Console.
- Enter a three-letter departure airport, for example
DUB. - Optionally enter an arrival airport, for example
STN. - Choose a future start and end date, or use rolling values such as
today+7andtoday+30. - Set the record and route limits.
- Click Start.
- Open the Dataset tab to preview or export the fare records.
A useful focused-route input is:
{"departureIata": "DUB","arrivalIata": "STN","dateFrom": "today+7","dateTo": "today+21","maxItems": 30,"market": "en-ie","currency": "EUR"}
For cheapest-destination exploration, omit arrivalIata and set maxRoutes.
Input parameters
| Input | Type | Default | Description |
|---|---|---|---|
departureIata | string | required | Three-letter departure airport code |
arrivalIata | string | empty | Optional destination airport code |
dateFrom | string | required | Future YYYY-MM-DD, today, or today+N |
dateTo | string | required | Inclusive range end, maximum 180 days after start |
maxItems | integer | 20 | Maximum saved fare-date records, up to 5,000 |
maxRoutes | integer | 10 | Destinations checked when arrival is empty, up to 100 |
currency | string | origin currency | Requested three-letter fare currency |
market | string | en-ie | Ryanair locale, for example en-ie or en-gb |
language | string | en | Two-letter language for airport names |
includeUnavailable | boolean | false | Include unavailable or sold-out dates with nullable fares |
Airport codes are normalized to uppercase. Past start dates and malformed airport, locale, currency, or date values fail validation.
Output example
A real run produces records with this shape:
{"route": "DUB-STN","departureAirport": "DUB","departureAirportName": "Dublin","departureCountry": "IE","arrivalAirport": "STN","arrivalAirportName": "London Stansted","arrivalCountry": "GB","flightNumber": null,"departureDate": "2026-09-08T06:10:00","arrivalDate": "2026-09-08T07:30:00","travelDate": "2026-09-08","currentFare": 14.99,"previousFare": null,"currency": "EUR","fareChange": null,"soldOut": false,"unavailable": false,"isCheapestForRoute": true,"routeLowestFare": 14.99,"sourceUrl": "https://www.ryanair.com/en-ie/trip/flights/select?...","priceUpdatedAt": "2026-08-27T07:30:00.000Z"}
Fare values change over time. The example describes the schema rather than promising that exact price or schedule.
How much does it cost to scrape Ryanair fares?
This is a pay-per-event Actor.
A one-time start event covers starting a run, and the primary item event covers each fare record written to the dataset.
Plan tiers apply progressively lower event prices from FREE through DIAMOND.
The start event is $0.005. Item prices decrease by Apify plan:
| Plan | Price per fare record |
|---|---|
| FREE | $0.000851 |
| BRONZE | $0.000740 |
| SILVER | $0.0005772 |
| GOLD | $0.000444 |
| PLATINUM | $0.000296 |
| DIAMOND | $0.0002072 |
Total price is:
$0.005 start + (saved fare records × applicable item price)
At BRONZE pricing, 15 records cost $0.0161, 50 records cost $0.0420, and 100 records cost $0.0790. A run that finds no accepted fare records has no item events. Runtime and platform usage are not separate Actor events charged by this Actor.
Find the cheapest Ryanair route and date
Leave arrivalIata empty to activate route discovery.
The Actor reads direct destination identifiers from the public departure-airport metadata, sorts them deterministically, and checks up to maxRoutes destinations.
Returned rows are sorted by current fare and then travel date. Use:
isCheapestForRoutefor the cheapest date within each route;routeLowestFareto compare route minima;currentFarepluscurrencyfor numeric sorting;sourceUrlto verify the option on Ryanair.
maxItems can stop collection before every requested route is exhausted.
Raise it when you need a more complete comparison.
Monitor Ryanair prices on a schedule
Create an Apify Task with rolling date values, then schedule it daily or weekly.
Each run records priceUpdatedAt, so snapshots can be compared later.
A practical workflow is:
- run the same route and rolling date window daily;
- export each dataset to a database or spreadsheet;
- join rows by
routeandtravelDate; - compare
currentFarewith the preceding snapshot; - alert only after applying your own threshold and availability checks.
previousFare is populated only if Ryanair exposes it in the current API response.
For dependable history, retain prior run datasets rather than relying on that nullable field.
Export and integrations
The default dataset supports JSON, JSONL, CSV, Excel, XML, and RSS exports. You can also connect a Task to:
- Google Sheets;
- Make;
- Zapier;
- webhooks;
- cloud storage;
- SQL or analytics pipelines.
Keep currentFare numeric during export.
Use currency alongside it because prices from different markets are not directly comparable.
Use the Ryanair scraper API
Replace APIFY_TOKEN with your token.
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~ryanair-flight-fares-cheapest-routes/runs?token=APIFY_TOKEN&waitForFinish=120" \-H "Content-Type: application/json" \-d '{"departureIata":"DUB","arrivalIata":"STN","dateFrom":"today+7","dateTo":"today+21","maxItems":30}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/ryanair-flight-fares-cheapest-routes').call({departureIata: 'DUB',arrivalIata: 'STN',dateFrom: 'today+7',dateTo: 'today+21',maxItems: 30,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/ryanair-flight-fares-cheapest-routes').call(run_input={'departureIata': 'DUB','arrivalIata': 'STN','dateFrom': 'today+7','dateTo': 'today+21','maxItems': 30,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Use Ryanair fare data through MCP
Add the Actor to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/ryanair-flight-fares-cheapest-routes"
Claude Desktop, Cursor, and VS Code
Claude Desktop, Cursor, and VS Code can use this MCP server configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/ryanair-flight-fares-cheapest-routes"}}}
Example prompts:
- “Find the cheapest Ryanair dates from DUB to STN between today+7 and today+30.”
- “Compare up to five Ryanair destinations from BGY next month and return each route minimum.”
- “Run my saved Ryanair fare Task and summarize changes against yesterday's dataset.”
Limits and expected behavior
- Only public Ryanair fare-calendar data is extracted.
- The Actor does not log in, book flights, hold inventory, or calculate baggage fees.
- Dates must be future dates and the requested range cannot exceed 180 days.
- Route-discovery mode checks only direct airport routes exposed by Ryanair and respects
maxRoutes. - Calendar fares may not include a flight number.
previousFarecan be null even when a current fare exists.- Prices and availability can change between extraction and booking.
- A fare can differ by market, currency, passengers, promotion, or booking context.
- The Actor currently models one adult and one-way public calendar fares.
- An upstream error fails the run after bounded retries; it is not converted into an empty success.
Troubleshooting
Why did the run return fewer records than days?
Unavailable dates are excluded by default, maxItems may have been reached, or Ryanair may expose no fare for some days.
Enable includeUnavailable to inspect calendar status rows.
Why is flightNumber null?
Ryanair's public Fare Finder calendar currently exposes schedule timestamps but often not the operating flight number. The Actor keeps the field nullable and never guesses it.
Why is previousFare null?
That value depends on Ryanair including a previousPrice field in the current response.
Keep scheduled snapshots if you need a dependable historical comparison.
Why did an airport fail validation?
Use a three-letter active Ryanair airport IATA code. The Actor rejects unknown airport codes after loading Ryanair's active airport list.
Why did a route produce no priced rows?
The route may not operate in the requested period, may be sold out, or may not have public calendar data in the selected market.
Try includeUnavailable: true and verify the route/date directly on Ryanair.
Responsible use and legality
This Actor accesses public fare and airport information without a login. Use it in accordance with applicable laws, Ryanair's terms, Apify's terms, and your organization's policies.
Do not use the output to mislead travelers, impersonate Ryanair, automate bookings, or evade access controls. Respect reasonable run frequency and retain only data needed for a legitimate purpose. Ryanair owns its trademarks and source data; this Actor is an independent extraction tool and is not affiliated with or endorsed by Ryanair.
FAQ
Does the Actor need a proxy?
No proxy is used by the current implementation. There is no automatic residential fallback.
Can it search round trips?
No. The current product returns one-way public calendar fares. Run separate outbound and inbound searches if that fits your analysis, but do not treat them as a guaranteed combined booking price.
Can it find the cheapest destination from an airport?
Yes, within the direct routes and limits requested.
Omit arrivalIata, set maxRoutes, and compare routeLowestFare across returned routes.
Can I schedule it?
Yes.
Use rolling dates such as today+7 and today+30 in an Apify Task, then attach a schedule and an integration.
Does it include baggage rules or carry-on size?
No. The Actor extracts fare-calendar data, not Ryanair baggage policy content or ancillary fees.
Are prices guaranteed?
No. Always verify price and availability on the linked Ryanair booking page before making a purchase or publishing a deal.
Related automation-lab Actors
For broader travel research, combine fare snapshots with other public travel datasets from the automation-lab Actor portfolio. Use each Actor's documented scope independently, and join records only when route, location, date, and currency semantics are compatible.