How to get Ryanair Fare with the API
Scrape Ryanair fares by route and flexible date window - cheapest one-way and round-trip prices, Explore mode, optional full timetable. A run saves one row per result.
Set up the Apify actor
Apify is where this run is collected. An actor is the program that collects the rows. A task is that program saved with your settings, so the next section can ask for the latest rows. You need a free Apify account.
- 01Open Ryanair Fare and click Try for free. Create an Apify account if you do not have one. The Free plan does not ask for a card.
- 02You are on the input form. Keep the sample for this first run.
{ "origin": "DUB", "destination": "STN", "tripType": "oneWay", "allFlights": false, "currency": "EUR", "market": "en-gb", "sortBy": "sourceOrder", "includeUnavailable": false, "adults": 1, "teens": 0, "children": 0, "infants": 0, "maxResults": 5 } - 03Leave the proxy setting as it is. Click Start and wait until the run says Succeeded.
- 04Open Storage, then Dataset. You should see
tripType,fromCode,toCode,departureDate. - 05When you want the real list, raise the row limit on the input. The sample is only there so the first run stays small.
- 06Go back to the input and choose Save as a new task. Name it after this list.
- 07Open the task. Copy the task ID from the address bar. Excel, Sheets, Power BI, and the other guides ask for this ID.
- 08On the task, open Schedules and add a weekly run if you want fresh rows. Each run pays the start charge and the charge for the rows. The amounts are in the price list on this page.
- 09Open Settings, then API & Integrations, and copy an API token. Excel, Sheets, and the other guides put this token in a download link. Anyone with that link can download the rows, so treat it like a password.
How to set up with the API
- 01Use the API token from Set up the Apify actor, above.
- 02Send this request. Replace
YOUR_TOKEN. It waits up to 120 seconds.curl -X POST "https:// api.apify.com/ v2/ acts/ bakos_bence~ryanair-fares/ runs? token=YOUR_TOKEN& waitForFinish=120" \ -H "Content-Type: application/ json" \ -d '{ "origin": "DUB", "destination": "STN", "tripType": "oneWay", "allFlights": false, "currency": "EUR", "market": "en-gb", "sortBy": "sourceOrder", "includeUnavailable": false, "adults": 1, "teens": 0, "children": 0, "infants": 0, "maxResults": 5 }' - 03From the response, copy
defaultDatasetId. - 04Fetch the rows. Replace
DATASET_IDandYOUR_TOKEN.https:// api.apify.com/ v2/ datasets/ DATASET_ID/ items? format=json& clean=true& token=YOUR_TOKEN - 05To repeat it, use the task and the weekly schedule from Set up the Apify actor, above. A scheduled task's newest rows are this URL, with your task id and token:
https:// api.apify.com/ v2/ actor-tasks/ TASK_ID/ runs/ last/ dataset/ items? format=json& clean=true& status=SUCCEEDED& token=YOUR_TOKEN - 06Anyone with a URL that contains the token can read the rows.
Schema
Examples come from the actor sample, not a live result.
| Name | Description | Example |
|---|---|---|
tripType | Trip type | oneWay |
fromCode | From IATA | DUB |
toCode | To IATA | STN |
departureDate | Departure | 2026-09-10T09:35:00 |
price | Price | 53.75 |
totalPrice | Total price | 34.99 |
currency | Currency | EUR |
flightNumber | Flight number | FR3591 |
bookingUrl | Booking URL | https:/ |
tripTypeTrip typeoneWayfromCodeFrom IATADUBtoCodeTo IATASTNdepartureDateDeparture2026-09-10T09:35:00pricePrice53.75totalPriceTotal price34.99currencyCurrencyEURflightNumberFlight numberFR3591bookingUrlBooking URLhttps:// www.ryanair.com/ ...
The same row as JSON
{
"tripType": "oneWay",
"fromCode": "DUB",
"toCode": "STN",
"departureDate": "2026-09-10T09:35:00",
"price": "53.75",
"totalPrice": "34.99",
"currency": "EUR",
"flightNumber": "FR3591",
"bookingUrl": "https://www.ryanair.com/..."
}