Skip to content

Instantly share code, notes, and snippets.

@vool
Last active Jun 16, 2022
Embed
What would you like to do?
Ryanair api endpoints

API domains

https://desktopapps.ryanair.com

https://api.ryanair.com

Airports

https://api.ryanair.com/aggregate/3/common?embedded=airports,countries,cities,regions,nearbyAirports,defaultAirport&market=en-gb

https://desktopapps.ryanair.com/en-gb/res/stations

Closures

https://api.ryanair.com/aggregate/3/common?embedded=closures

Flight info

https://api.ryanair.com/flightinfo/3/flights/?&arrivalAirportIataCode=&departureAirportIataCode=DUB&departureTimeScheduledFrom=00:00&departureTimeScheduledTo=23:59&length=&number=&offset=

Schedules

https://desktopapps.ryanair.com/Calendar?Destination=EIN&IsTwoWay=false&Months=16&Origin=CFU&StartDate=2016-11-06

https://api.ryanair.com/timetable/3/schedules/DUB/LGW/years/2016/months/11

Availability and fares info

https://desktopapps.ryanair.com/en-gb/availability?ADT=1&CHD=0&DateIn=2016-11-24&DateOut=2016-11-10&Destination=STN&FlexDaysIn=6&FlexDaysOut=6&INF=0&Origin=VLC&RoundTrip=true&TEEN=0&ToUs=AGREED

Fair Finder

One way

https://services-api.ryanair.com/farfnd/3/oneWayFares?&departureAirportIataCode=BCN&language=en&limit=16&market=en-gb&offset=0&outboundDepartureDateFrom=2019-02-11&outboundDepartureDateTo=2019-10-28&priceValueTo=150

Return

https://services-api.ryanair.com/farfnd/3/roundTripFares?&arrivalAirportIataCode=STN&departureAirportIataCode=VLC&inboundDepartureDateFrom=2019-04-11&inboundDepartureDateTo=2019-04-28&language=es&limit=16&market=es-es&offset=0&outboundDepartureDateFrom=2019-03-11&outboundDepartureDateTo=2019-03-28&priceValueTo=150

Cheapest per day as well as availability:

https://api.ryanair.com/farefinder/3/oneWayFares/SXF/TSR/cheapestPerDay?market=de-de&outboundMonthOfDate=2017-04-01

FareFinder Image paths

https://www.ryanair.com/de/de.farefinder.json is an JSON file in which several picture paths are declared :)

Currencies

https://desktopapps.ryanair.com/bg-bg/res/currencies

Discounts

https://api.ryanair.com/discount/3/discounts

Markets

https://ryanair.com/ie/en.markets.json https://www.ryanair.com/content/ryanair.markets.json

Requires auth/session

https://desktopapps.ryanair.com/en-gb/checkin/checkinpassengers

@maximdyatel
Copy link

maximdyatel commented Sep 12, 2019

@alexcagliari when i make call from browser (its get request) 'http://apigateway.ryanair.com/pub/v1/core/3/routes?apikey=my_consumer_key' i get message that website can't be find? any advice here? is anybody here who is using now this apigateway.ryanair api?

Use this
services-api.ryanair.com/locate/3/routes

@maximdyatel
Copy link

maximdyatel commented Sep 12, 2019

Does anyone know about really working Vueling or EasyJet API? Thanks

@TDvorian
Copy link

TDvorian commented Sep 17, 2019

Hi guys
I recently started to get interested in the topic
If the site limits the number of requests. so why don't we collect data distributed?
We will be able to use a common base for prices, this will save resources and get the most up-to-date data
Respond if someone is interested in distributed data collection,
or someone is already collecting data and ready to share.
I have Wizz prices that I update every 12 hours, ready to share.

@tkon99
Copy link

tkon99 commented Sep 18, 2019

@TDvorian I was collecting daily Ryanair and Easyjet prices but abandoned the project in the end. You can get around ratelimiting entirely by using a paid (but cheap) proxy, I was using luminati at the time. I set it up to change IP's every 5 requests and to retry http errors automatically and with a new IP. The good thing is that the proxy manager does it for you and all your program needs to do is use one local http proxy. For me it cost about $5/m in the end. Another thing I did was that I saved all the "other currencies" (other than EUR) in the table as well as an estimate in EUR to allow easier (and much faster) search results. Maybe that's useful for you too, if you're not already doing that.

Anyway, it would be great to have a joint database, since, as you said, it saves resources. I have another idea that uses price data and I could also use it for academic purposes as I'm taking some data courses right now. I hope there's someone who has Vueling/Eurowings/Transavia data as well.

@maximdyatel
Copy link

maximdyatel commented Sep 18, 2019

@tkon99
What API you used for collecting Easyjet prices?

@tkon99
Copy link

tkon99 commented Sep 18, 2019

The same one as the website, you can change the date range they use to get the whole year for a specific route at once iirc

@alexcagliari87
Copy link

alexcagliari87 commented Sep 18, 2019

@TDvorian I was collecting daily Ryanair and Easyjet prices but abandoned the project in the end. You can get around ratelimiting entirely by using a paid (but cheap) proxy, I was using luminati at the time. I set it up to change IP's every 5 requests and to retry http errors automatically and with a new IP. The good thing is that the proxy manager does it for you and all your program needs to do is use one local http proxy. For me it cost about $5/m in the end. Another thing I did was that I saved all the "other currencies" (other than EUR) in the table as well as an estimate in EUR to allow easier (and much faster) search results. Maybe that's useful for you too, if you're not already doing that.

Anyway, it would be great to have a joint database, since, as you said, it saves resources. I have another idea that uses price data and I could also use it for academic purposes as I'm taking some data courses right now. I hope there's someone who has Vueling/Eurowings/Transavia data as well.

I spoke with a Luminati employee this morning and now the minimum price is about 500 usd/month...Do you know a cheap service that we can use to override api limit?

@tkon99
Copy link

tkon99 commented Sep 18, 2019

Are you sure? Maybe for residential IP's yes but for shared ones definitely not. See: https://luminati.io/pricing
I was using: Datacenter Proxies - Pay per GB

@alexcagliari
Copy link

alexcagliari commented Sep 18, 2019

@tkon99
Copy link

tkon99 commented Sep 18, 2019

Unlimited, if you pay per GB you can use as many as you want.
Looking at alternative the luminati $0.50 per GB is really unbeatable, scraping services are too small for this usecase (tens of millions of requests per month) so only big rotating proxies will work. I found https://www.proxyrotator.com/ which seems good (it's a fixed price at least) and since this workload doesn't have to be x-threaded (because we can just crawl prices during the entire day) their cheapest plan seems a good option.

@alexcagliari
Copy link

alexcagliari commented Sep 18, 2019

@maximdyatel
Copy link

maximdyatel commented Sep 19, 2019

The same one as the website, you can change the date range they use to get the whole year for a specific route at once iirc

Could you be more specific? Thank you

@psirens
Copy link

psirens commented Sep 21, 2019

My solution was a cron job once per minute. There are approx 2300 easyjet route urls and 4700 ryanair. Each time it downloads one easyjet route, and 6 months of a ryanair route. So route data can be up to three days behind but good enough for my purposes, and reliable. Initially I collected every route within 24hrs but requests started being dropped due to rate-limiting causing issues. The database has reached 400mb but I guess I have never looked to remove historic data.

@alexcagliari87
Copy link

alexcagliari87 commented Oct 21, 2019

Hi guys,
i have a data discrepancy problem between these 2 entrypoints:

  1. https://www.ryanair.com/api/farfnd/3/oneWayFares/CAG/BRI/availabilities
  2. https://www.ryanair.com/api/timtbl/3/schedules/BRI/CAG/years/2020/months/03

If you see the results from the first API yu can see that the flights, in this case, are scheduled until October 2020.
If instead the second entrypoint is invoked, the service will run until month 03 (March) ... from month 04 onwards he returns "{" code ":" ResourceNotFound "," message ":" Resource not found "}".
Do any of you know an entrypoint from which you can get month-to-month schedules updated? I necessarily need the flight number and the scheduled time..
@vool @maximdyatel @mtrovo @tkon99

@caltv
Copy link

caltv commented Nov 12, 2019

Seeing some weird behaviour from availability over the last week, it switches between a higher and lower fare every few minutes but the website never changes

https://desktopapps.ryanair.com/en-gb/availability?RoundTrip=false&DateOut=2020-03-02&Destination=DUB&Origin=BCN&ToUs=AGREED

e.g endpoint shows "amount":25.570000000

website shows

Screenshot 2019-11-12 at 08 37 47

@caltv
Copy link

caltv commented Nov 13, 2019

And today the fare on the website switched to the lower fare that the API was alternating between last week...

@wesleygas
Copy link

wesleygas commented Jan 7, 2020

It seems that almost all endpoints except for schedules, availability and farefinder are returning 404/401. Months passed since I've created my account and I still haven't heard from them.

I'm especially interested in the Airport data, does anyone has any lead about how to get it?

@barrypearseburke
Copy link

barrypearseburke commented Feb 1, 2020

Hi Guys
Ive been using
https://www.ryanair.com/api/farfnd/3/oneWayFares/ORIGIN_AIRPORT_CODE/DEST_AIRPORT_CODE/cheapestPerDay?outboundDateFrom=2020-02-01&outboundDateTo=2021-02-01
to give me the cheapest rates per day.
The api is seem cheaper for a lot of flights compared to the website from what i can see. Anybody else use this and get this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment