Ryanair Scraper avatar

Ryanair Scraper

Pricing

from $0.44 / 1,000 item extracteds

Go to Apify Store
Ryanair Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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+7 style 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?

FieldMeaning
routeOrigin and destination IATA codes, such as DUB-STN
departureAirportOrigin IATA code
departureAirportNamePublic airport name
departureCityRyanair city code
departureCountryTwo-letter country code
arrivalAirportDestination IATA code
arrivalAirportNamePublic destination airport name
arrivalCityDestination city code
arrivalCountryDestination country code
flightNumberFlight number when exposed; currently often null in fare-calendar data
departureDatePublic local departure timestamp
arrivalDatePublic local arrival timestamp
travelDateFare calendar date
currentFareCurrent displayed one-way fare
previousFarePrevious fare when Ryanair includes it in the response
currencyISO fare currency
currencySymbolDisplay symbol supplied by Ryanair
fareChangeCurrent minus previous fare when both exist
soldOutRyanair sold-out flag
unavailableRyanair unavailable flag
newRouteRyanair new-route flag
isCheapestForRouteWhether this row has the lowest fare found for its route
routeLowestFareLowest fare found for the route in this run
sourceUrlRyanair booking page for the route and date
priceUpdatedAtTimestamp 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

  1. Open the Actor in Apify Console.
  2. Enter a three-letter departure airport, for example DUB.
  3. Optionally enter an arrival airport, for example STN.
  4. Choose a future start and end date, or use rolling values such as today+7 and today+30.
  5. Set the record and route limits.
  6. Click Start.
  7. 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

InputTypeDefaultDescription
departureIatastringrequiredThree-letter departure airport code
arrivalIatastringemptyOptional destination airport code
dateFromstringrequiredFuture YYYY-MM-DD, today, or today+N
dateTostringrequiredInclusive range end, maximum 180 days after start
maxItemsinteger20Maximum saved fare-date records, up to 5,000
maxRoutesinteger10Destinations checked when arrival is empty, up to 100
currencystringorigin currencyRequested three-letter fare currency
marketstringen-ieRyanair locale, for example en-ie or en-gb
languagestringenTwo-letter language for airport names
includeUnavailablebooleanfalseInclude 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:

PlanPrice 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:

  • isCheapestForRoute for the cheapest date within each route;
  • routeLowestFare to compare route minima;
  • currentFare plus currency for numeric sorting;
  • sourceUrl to 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:

  1. run the same route and rolling date window daily;
  2. export each dataset to a database or spreadsheet;
  3. join rows by route and travelDate;
  4. compare currentFare with the preceding snapshot;
  5. 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 ApifyClient
import os
client = 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().items
print(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.
  • previousFare can 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.

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.