Ryanair API — Cheap Flight Fares & Prices | $0.99/1k
Pricing
from $0.99 / 1,000 results
Ryanair API — Cheap Flight Fares & Prices | $0.99/1k
Cheapest Ryanair fares from any airport or route: one row per flight with date, price, currency, departure and arrival airports and times, and a booking link. Search by airport, route or date range, cap the price. No login, no API key. Export CSV, JSON or Excel.
Pricing
from $0.99 / 1,000 results
Rating
0.0
(0)
Developer
Raffy
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Share
What does Ryanair Flight Fares do?
Ryanair Flight Fares extracts cheap flight prices from Ryanair and delivers them as clean, structured JSON, CSV or Excel. It works as a Ryanair API alternative: give it a departure airport (STN) or a route (DUB-STN) and a date window, and get the cheapest one-way fare for every destination back in seconds, without a browser, without residential proxies and without writing a scraper yourself.
Typical use cases:
- Run a travel-deal site or newsletter that needs today's cheapest fares out of a set of airports.
- Monitor one route over time and alert when the price drops below a threshold.
- Research where an airport can be reached from cheaply this month, for route planning or content.
It does not log in, read paywalled content or collect private user data. It reads only the airline's publicly available fare finder.
Why use Ryanair Flight Fares?
- Fast and cheap. Pure HTTP extraction (no headless browser), so runs finish in seconds and cost fractions of a cent per fare. The default run returns 20 fares in about 9 seconds.
- Honest results. Every row carries a
status(ok,not_found,error), so you (or an AI agent calling this Actor) can tell "no fares in that window" apart from "the site could not be read". You are only billed forokrows. - Runs anywhere Apify runs. Schedule it, call it from the API, chain it with other Actors, or receive results via integrations (Google Sheets, Slack, webhooks, Zapier, Make).
- Every row is bookable. The
urlof each row is the airline's own booking page for exactly that flight and date, so a result goes straight into a deal post or an alert.
What data can Ryanair Flight Fares extract?
| Field | Type | Description |
|---|---|---|
departureAirport | string | IATA code of the departure airport, e.g. STN |
departureAirportName | string | Departure airport name, e.g. London Stansted |
departureCity | string | City the departure airport serves |
departureCountry | string | Country of the departure airport |
arrivalAirport | string | IATA code of the arrival airport, e.g. AHO |
arrivalAirportName | string | Arrival airport name, e.g. Alghero |
arrivalCity | string | City the arrival airport serves |
arrivalCountry | string | Country of the arrival airport |
departureDateTime | string | Local departure time at the departure airport (ISO 8601, no zone) |
arrivalDateTime | string | Local arrival time at the arrival airport (ISO 8601, no zone) |
flightNumber | string | Flight number, e.g. FR230 |
price | number | Cheapest one-way fare found for that route and date |
currency | string | ISO 4217 currency code, e.g. GBP |
previousPrice | number | The fare before the latest change, when the airline reports one |
newRoute | boolean | true when the airline flags the route as newly launched |
priceUpdated | string | ISO 8601 time the airline last repriced the fare |
url | string | Booking page for this exact flight |
status | string | ok, not_found or error (see below) |
error | string | Reason when status is not ok |
scrapedAt | string | ISO 8601 time of extraction |
One row is the cheapest fare found for one destination inside your date window, which is how the airline's own fare finder answers.
Result status (tri-state output)
status | Meaning | Billed? |
|---|---|---|
ok | The fare was found and extracted. | Yes |
not_found | Ryanair answered, but has no fares for that airport, route or date window (including an airport it does not serve). | No |
error | Ryanair could not be read after retries (network error, block, or API change). error says why. | No |
How to scrape Ryanair with Ryanair Flight Fares
- Open the Actor in Apify Console and click Try for free.
- Type one or more departure airports into Airports or routes as IATA codes (
STN,DUB-STN), or type one into Search query. - Optionally set Earliest/Latest departure date, a Market (sets the booking link's language, e.g.
.com/gb/en/...) and a Maximum fare. - Set Maximum results (start with the default 20 to see the output) and click Start. The run takes about 10 seconds for the default input.
- Open the Output tab or Export the dataset as JSON, CSV, Excel, XML or HTML.
To automate it, use the API tab (Node.js, Python, curl examples) or add a Schedule.
How much does it cost to scrape Ryanair?
This Actor uses pay-per-event pricing:
| Event | Price |
|---|---|
| Actor start | $0.005 per run |
Result (status: ok row) | $0.00099 per fare |
Example: 1,000 fares cost about $1.00 ($0.005 to start plus 1,000 x $0.00099). Rows with status not_found or error are never billed. Platform compute is included, so the start fee and the price per result are the whole price list. The free Apify plan's $5 of monthly credit covers about 5,000 fares in a single run. You can cap spending per run with Maximum results and in the run's Max total charge option.
Input
See the Input tab for the full schema. The main options:
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array of strings | ["STN"] | Departure airports (STN), routes (STN-ALC) or ready-made fare-finder URLs |
query | string | - | One airport or route, used instead of the list above |
dateFrom | string | a week from today | Earliest outbound departure date, YYYY-MM-DD |
dateTo | string | 30 days after dateFrom | Latest outbound departure date, YYYY-MM-DD |
market | string | en-gb | Booking-link locale, e.g. en-gb for a .com/gb/en/... link. Does not change currency — that follows the departure airport's own country. |
maxPrice | integer | - | Only return fares at or below this amount, in whatever currency the departure airport's fares are quoted in |
maxItems | integer | 20 | Stop after this many rows |
proxyConfiguration | object | Apify Proxy off | Optional; datacenter proxy is enough if needed |
Example input:
{"startUrls": ["STN", "DUB-STN"],"dateFrom": "2026-11-10","dateTo": "2026-12-10","market": "en-gb","maxPrice": 40,"maxItems": 20}
Output
You can download the dataset in various formats such as JSON, HTML, CSV or Excel. Example rows, taken from a real run:
[{"url": "https://www.ryanair.com/gb/en/trip/flights/select?adults=1&dateOut=2026-10-11&originIata=STN&destinationIata=AHO&isConnectedFlight=false&isReturn=false","status": "ok","scrapedAt": "2026-09-25T01:14:01.402Z","departureAirport": "STN","departureAirportName": "London Stansted","departureCity": "London","departureCountry": "United Kingdom","arrivalAirport": "AHO","arrivalAirportName": "Alghero","arrivalCity": "Alghero","arrivalCountry": "Italy","departureDateTime": "2026-10-11T06:25:00","arrivalDateTime": "2026-10-11T09:55:00","flightNumber": "FR230","price": 14.99,"currency": "GBP","newRoute": false,"priceUpdated": "2026-09-25T00:19:49.000Z"},{"url": "https://www.ryanair.com/gb/en/trip/flights/select?adults=1&dateOut=2026-10-07&originIata=STN&destinationIata=AOI&isConnectedFlight=false&isReturn=false","status": "ok","scrapedAt": "2026-09-25T01:14:01.402Z","departureAirport": "STN","departureAirportName": "London Stansted","departureCity": "London","departureCountry": "United Kingdom","arrivalAirport": "AOI","arrivalAirportName": "Ancona","arrivalCity": "Ancona","arrivalCountry": "Italy","departureDateTime": "2026-10-07T06:35:00","arrivalDateTime": "2026-10-07T09:50:00","flightNumber": "FR124","price": 14.99,"currency": "GBP","newRoute": false,"priceUpdated": "2026-09-25T00:20:18.000Z"}]
Tips
- Keep
maxItemssmall while testing, then raise it. - Pass several airports in one run instead of many single-airport runs; you pay the start fee once.
- A wider date window finds more destinations, because the fare finder returns the cheapest date per destination inside the window.
- Set
marketto match the booking-link language you want (e.g.en-iefor.com/ie/en/...links);currencywill not change with it. - Mixing departure airports from different countries in one run (e.g.
STNandDUB) mixes currencies in the output — checkcurrencyper row, and note that a singlemaxPriceis applied in each departure airport's own currency, not converted. - If you see
errorrows mentioning blocking, enable Apify Proxy (datacenter) in Proxy configuration.
Limitations
- One airline. This Actor reads Ryanair's own fare finder, so it does not compare Ryanair against other carriers.
marketdoes not set the currency. Verified: the same route returns the identical price andcurrencyunder every market value. Ryanair quotes each fare in the currency of the departure airport's own country (Dublin is always EUR, Stansted is always GBP) regardless ofmarket;marketonly changes the language/locale of the bookingurl.- One-way fares only, and one row per destination: the cheapest date inside your window, not every flight on every date. Every destination Ryanair serves from the airport comes back in one request (for example about 150 from Stansted and 115 from Dublin).
- Fares are what the airline advertises at the time of the run, excluding bags, seats and other extras, and they change constantly. Re-run before acting on a price.
- Results reflect the public fare finder at the time of the run; Ryanair may change its API (it has moved from
v3tov4before), in which case rows come back aserrorand the Actor is updated quickly (report it in the Issues tab).
FAQ
Is it legal to scrape Ryanair?
Scraping publicly available data is generally legal, but you are responsible for how you use the output. Read the legal notice below and Ryanair's terms of service, and do not collect personal data without a legitimate reason.
Can I use this Actor from an AI agent or MCP client?
Yes. Every row is self-describing (status + error), inputs are plain strings, and results can be fetched via the dataset API or the Apify MCP server.
Why did I get fewer rows than maxItems?
The airport serves fewer destinations in that date window, your maxPrice excluded the rest, or the run hit your Max total charge limit. Check the run log for "Stopping gracefully".
Can I search a specific route?
Yes. Write it as two IATA codes, DUB-STN, either in the list or in the query. You then get the cheapest date for that route inside your window.
What if a field is missing?
Optional fields such as previousPrice are omitted when Ryanair does not publish them. If a field that should always be present is missing, open an issue in the Issues tab with the run ID.
Related Actors
- AutoScout24 Scraper - use it to price a rental-market alternative, used cars, once you land.
- Rightmove Scraper - use it to check UK property and rental prices for a trip that turns into a longer stay.
- Cars.com Scraper - use it for US used-car listings and dealer data on the other end of the flight.
- Google Maps Scraper — Business Leads with Emails - use it to find local businesses at the destination.
Legal and data-protection notice
This Actor extracts only data that Ryanair publishes publicly; it does not extract private user data such as e-mail addresses, phone numbers, gender or precise location, and it does not log in or read anything behind access controls. However, your results could still contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you are unsure whether your reason is legitimate, consult your lawyers. You are responsible for complying with Ryanair's terms of service and applicable law when using the extracted data.
This Actor is an independent tool and is not affiliated with, endorsed by or sponsored by Ryanair or its owners. All trademarks belong to their respective owners.