
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Scrape Ryanair fares: cheapest one-way and round-trip prices per day for any route and date window, the cheapest fare to every destination from an airport, or the full daily timetable with flight numbers. No login.
Get Ryanair fares as clean rows: the cheapest one-way or round-trip price for every day of a date window, the cheapest fare to every destination from an airport, or the full daily timetable with flight numbers. No login, no browser, results in seconds, and you pay only for the fares you save.
DUB, STN, or names like Dublin).| Field | What it does |
|---|---|
origin | Origin airports, comma-separated. IATA codes or airport/city names (a city adds all its Ryanair airports). |
destination | Destination airports. Empty = Explore mode (cheapest fare to every destination). |
tripType | oneWay (cheapest fare per day) or roundTrip (cheapest pair per outbound day). |
allFlights | One-way routes: every scheduled flight per day instead of only the cheapest. |
maxResults | Maximum rows to save (0 = no limit). |
departDateFrom / departDateTo | Outbound window, YYYY-MM-DD. Defaults to today → +7 days. |
returnDateFrom / returnDateTo | Return window for round trips. Defaults to the outbound window + 7 days. |
maxPrice | Keep only fares at or below this price (round trips: total price). |
includeUnavailable | One-way calendars: also save days without a fare (available: false). |
currency / market | e.g. EUR, GBP, PLN and en-gb, es-es, de-de. |
sortBy | Route/date order, cheapest first, earliest departure or shortest duration. |
adults / teens / children / infants | Passengers for the booking link (fares are per person). |
{
"origin": "DUB",
"destination": "STN",
"tripType": "oneWay",
"departDateFrom": "2026-11-01",
"departDateTo": "2026-11-10",
"currency": "EUR",
"maxResults": 20
}
One row per fare (or per flight with Every flight per day).
| Field | Description |
|---|---|
tripType | oneWay or roundTrip |
price / currency | One-way fare and its currency (totalPrice for round trips) |
previousPrice / priceUpdated | Ryanair's earlier price, if it changed, and when the price was last updated |
flightNumber | e.g. FR30 |
fromCode, fromName, fromCity, fromCountry | Origin airport |
toCode, toName, toCity, toCountry | Destination airport |
departureDate, arrivalDate, departureTime, arrivalTime | Local times |
durationMinutes | Flight time, time-zone aware |
available | false on calendar days without a fare |
isDayCheapest, dayCheapestPrice, dayCheapestFlightNumber | Timetable rows only |
outbound*, return*, tripDurationDays | Round-trip legs: price, flight number, departure, arrival, duration |
bookingUrl | Ryanair booking link |
{
"tripType": "oneWay",
"available": true,
"carrierCode": "FR",
"carrierName": "Ryanair",
"price": 20.05,
"currency": "EUR",
"previousPrice": null,
"priceUpdated": "2026-10-14T20:38:10.000Z",
"flightNumber": "FR30",
"fromCode": "DUB",
"fromName": "Dublin",
"fromCity": "Dublin",
"fromCountry": "Ireland",
"toCode": "STN",
"toName": "London Stansted",
"toCity": "London",
"toCountry": "United Kingdom",
"departureDate": "2026-11-01T06:20:00",
"departureTime": "06:20",
"arrivalDate": "2026-11-01T07:40:00",
"arrivalTime": "07:40",
"durationMinutes": 80,
"stops": 0,
"newRoute": false,
"bookingUrl": "https://www.ryanair.com/gb/en/trip/flights/select?adults=1&teens=0&children=0&infants=0&originIata=DUB&destinationIata=STN&dateOut=2026-11-01&isReturn=false&discount=0",
"scrapedAt": "2026-10-14T21:20:01.117Z"
}
A round-trip row:
{
"tripType": "roundTrip",
"totalPrice": 33.98,
"currency": "EUR",
"fromCode": "DUB",
"toCode": "STN",
"tripDurationDays": 7,
"outboundPrice": 16.99,
"outboundFlightNumber": "FR292",
"outboundDeparture": "2026-11-02T21:25:00",
"outboundDurationMinutes": 80,
"returnPrice": 16.99,
"returnFlightNumber": "FR210",
"returnDeparture": "2026-11-09T22:35:00",
"returnDurationMinutes": 80,
"bookingUrl": "https://www.ryanair.com/gb/en/trip/flights/select?adults=1&teens=0&children=0&infants=0&originIata=DUB&destinationIata=STN&dateOut=2026-11-02&isReturn=true&discount=0&dateIn=2026-11-09"
}
You pay $0.70 per 1,000 fares ($0.0007 per saved row), plus a small amount of platform usage (compute and proxy), which is usually a fraction of a cent per run. Example: a 30-day calendar for 10 routes is 300 fares ≈ $0.21; 1,000 fares ≈ $0.70. You can cap spending with the run's maximum charge; the actor stops cleanly when it is reached.
Is it legal to scrape Ryanair fares? The actor reads the same public fare data Ryanair's website shows to every visitor, without logging in. Check that your use complies with Ryanair's terms and the laws that apply to you.
Do I need a Ryanair account or a proxy? No account. The default datacenter proxy works; you don't need to change it.
Why do I get one flight per day?
Ryanair's fare finder returns the cheapest fare of each day. Turn on Every flight per day to get every scheduled flight; the day's cheapest flight carries the price, and every row has dayCheapestPrice.
Are prices for all passengers? Prices are per person, as shown by Ryanair's fare finder. Passenger counts are used in the booking link.
What if a field is empty?
previousPrice is only set when Ryanair changed the price. Days without a fare have available: false and no price (only with Include days without fares). Timetable rows other than the day's cheapest have no own price.
Can I schedule it or use the API? Yes. Schedule runs to track prices over time, and read results through the API or integrations in JSON, CSV or Excel.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
originstringRequireddefault "DUB"Origin airport(s)
Where you fly from: Ryanair airport IATA codes or names, comma-separated (e.g. DUB, STN or Dublin, London). A city name adds all its Ryanair airports.
destinationstringOptionalDestination airport(s)
Where you fly to, comma-separated (e.g. STN, BCN). Leave empty to explore: the cheapest fare to every Ryanair destination from each origin.
tripTypeenumOptionaldefault "oneWay"Trip type
One-way: the cheapest fare per day. Round trip: the cheapest outbound + return pair for each outbound day (uses the return dates).
allFlightsbooleanOptionaldefault falseEvery flight per day (timetable)
One-way routes with a destination only. Returns every scheduled flight of each day (flight number, times, duration). The day's cheapest flight carries its price; every row has dayCheapestPrice.
maxResultsintegerOptionaldefault 20Max results
Maximum number of fare rows to save. 0 = no limit.
Flexible date windows. Ryanair returns the cheapest fare for each day of the window.
departDateFromstringOptionalOutbound date from
Earliest departure date (YYYY-MM-DD). Defaults to today.
departDateTostringOptionalOutbound date to
Latest departure date (YYYY-MM-DD). Defaults to 7 days after the start. Windows up to 366 days.
returnDateFromstringOptionalReturn date from (round trip)
Earliest return date. Defaults to the outbound window shifted by 7 days.
returnDateTostringOptionalReturn date to (round trip)
Latest return date.
maxPriceintegerOptionalMax price
Keep only fares at or below this price in the chosen currency (round trip: total price). Empty = no limit.
includeUnavailablebooleanOptionaldefault falseInclude days without fares
One-way calendar only: also save a row with available: false for days with no fare (sold out or not flown), for a complete calendar. These rows count as results.
currencystringOptionaldefault "EUR"Currency
Price currency, e.g. EUR, GBP, USD, PLN. If Ryanair doesn't price in it, the actual currency is shown on every row.
marketstringOptionaldefault "en-gb"Market
Ryanair market (language-country), e.g. en-gb, en-ie, es-es, de-de. Used for pricing and booking links.
sortByenumOptionaldefault "sourceOrder"Sort by
Order of saved rows. Sorting other than route/date order collects all fares first, then saves the top Max results.
adultsintegerOptionaldefault 1Adults
Passengers in the booking link. Fares are per person.
teensintegerOptionaldefault 0Teens (12-15)
Teens in the booking link.
childrenintegerOptionaldefault 0Children (2-11)
Children in the booking link.
infantsintegerOptionaldefault 0Infants (under 2)
Infants in the booking link.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies are used by default and work for Ryanair's fares service.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| tripType | string | oneWay or roundTrip |
| fromCode | string | Origin IATA code |
| toCode | string | Destination IATA code |
| price | number | null | One-way fare |
| totalPrice | number | null | Round-trip total |
| currency | string | null | Currency code |
| bookingUrl | string | Ryanair booking link |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Fare result | One Ryanair fare or flight row saved to the dataset. | $0.0007 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('roamandroof/ryanair-scraper').call({
"origin": "DUB",
"destination": "STN",
"maxResults": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run roamandroof/ryanair-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=roamandroof/ryanair-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Return fares for the coming weeks.
The lowest fare to each destination from one airport.
Every scheduled flight per day with fares.
Cheapest fares under 300 GBP from two cities.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.