Scrape flights from Ryanair. Crawl and extract flights, prices, availability, and more. Creates a Ryanair API to let you scrape based on round trip, one-way trip, and passenger management (adults, teens, children, infants) options.
Since Ryanair doesn't provide a good API, this actor should help you to retrieve data from it.
The Ryanair data scraper supports the following features:
This scraper is under active development. If you have any feature requests you can create an issue from here.
The input of this scraper should be JSON-containing. Possible fields are:
mode
: (Required) (String) Mode for the actor. It can be either ROUND
for Round trip or ONEWAY
for One-way trips.
origin
: (Required) (String) 3-letter destination airport code. Ex: VIE.
destination
: (Required) (String) Mode for the actor. It can be either ROUND
for Round trip or ONEWAY
for One-way trips.
departureDate
: (Required) (String) Date for departure. Should be in the format of YYYY-MM-DD
. Ex: 2021-02-21.
returnDate
: (Optional) (String) Date for return. It is required for Round trips. Should be in the format of YYYY-MM-DD
. Ex: 2021-02-21.
adults
: (Required) (Number) Number of adults that will be included on the flight. The minimum number is 1.
teens
: (Optional) (Number) Number of teens (12-15 years old) that will be included on the flight.
children
: (Optional) (Number) Number of children (2-11 years old) that will be included on the flight.
infants
: (Optional) (Number) Number of teens (Under 2 years old) that will be included on the flight.
maxItems
: (Optional) (Number) You can limit scraped items. This should be useful when you search through the big lists or search results.
proxy
: (Required) (Proxy Object) Proxy configuration.
This solution requires the use of Proxy servers, either your own proxy servers or you can use Apify Proxy.
The actor is optimized to run in a very fast manner and scrape the flights in the most performant way. Therefore, it forefronts all flight result requests. If the actor doesn't block very often it'll scrape 10 flights in 3 seconds with ~0.005-0.01 compute units.
1{ 2 "type": "ROUND", 3 "origin": "VIE", 4 "destination": "BCN", 5 "departureTime": "2021-11-02", 6 "returnTime": "2021-11-09", 7 "adults": 4, 8 "children": 3, 9 "infants": 2, 10 "teens": 1, 11 "requestExtension": { 12 "timeoutSecs": 100 13 } 14}
During the run, the actor will output messages letting you know what is going on. When items are loaded from the page, you should see a message about this event with a loaded item count.
If you provide incorrect input to the actor, it will immediately stop with a failure state and output an explanation of what is wrong.
During the run, the actor stores results into a dataset. Each item is a separate item in the dataset.
You can manage the results in any language (Python, PHP, Node JS/NPM). See the FAQ or our API reference to learn more about getting results from this Ryanair actor.
The structure of each item in Ryanair flights looks like this:
1[ 2 { 3 "Origin": "VIE", 4 "Destination": "BCN", 5 "Flight duration": "02:20", 6 "Flight number": "FR 7350", 7 "Price": 19.79, 8 "Time departure": "2021-05-02T16:55:00.000", 9 "Time arrival": "2021-05-02T19:15:00.000", 10 "key": "FR~7350~ ~~VIE~05/02/2021 16:55~BCN~05/02/2021 19:15~~", 11 "scrapedAt": "2021-03-16T14:56:12.589Z", 12 "regularFare": { 13 "fareKey": "M4QWIFT5CMI6W554NIEL57IV6W6IKYDXA4HYK5TOZ3XDXKE5ZIEA2SAQMZI2ZHAVJRZE6PNUMMZ7KMWOLDIQQQ2HHNXOWJLJHJDQHLHLCGLC7XXCR37MU4LSLJKSBC3IISWCP5UWXAKWP2URYKOW6SL6RD5PP5C6G2LVCIRMU52U5OPUZ566RWCNU6MZGWKZO3STLR4N5MEEY", 14 "fareClass": "W", 15 "fares": [ 16 { 17 "type": "ADT", 18 "amount": 19.79, 19 "count": 1, 20 "hasDiscount": true, 21 "publishedFare": 19.92, 22 "discountInPercent": 10, 23 "hasPromoDiscount": false, 24 "discountAmount": 0.13, 25 "hasBogof": false 26 } 27 ] 28 }, 29 "operatedBy": "Buzz" 30 }, 31 { 32 "Origin": "BCN", 33 "Destination": "VIE", 34 "Flight duration": "02:20", 35 "Flight number": "FR 7351", 36 "Price": 14.44, 37 "Time departure": "2021-05-07T19:25:00.000", 38 "Time arrival": "2021-05-07T21:45:00.000", 39 "key": "FR~7351~ ~~BCN~05/07/2021 19:25~VIE~05/07/2021 21:45~~", 40 "scrapedAt": "2021-03-16T14:56:12.589Z", 41 "regularFare": { 42 "fareKey": "PAZI5RTI7Q6XPJWZ7NWTM2L6ST4EGT5VMEUFJ6XELKMBYO6E32W5J5N7O4Q5CLXR5CGRECNSKTZTI4RKRXUINENX2PFLTWHHXJLAH7T6GXNF4TXMHSLS4XQPUMFFXA2R4HAIMVIEEALOODFNPIWICPXWWWM4NH3WFFECKOB6BG3EM5EO2FZRAG5I74AY26PWUQSTRWRZSY3TS", 43 "fareClass": "T", 44 "fares": [ 45 { 46 "type": "ADT", 47 "amount": 14.44, 48 "count": 1, 49 "hasDiscount": true, 50 "publishedFare": 14.63, 51 "discountInPercent": 15, 52 "hasPromoDiscount": false, 53 "discountAmount": 0.19, 54 "hasBogof": false 55 } 56 ] 57 }, 58 "operatedBy": "Lauda Europe" 59 }, 60 { 61 "Origin": "BCN", 62 "Destination": "VIE", 63 "Flight duration": "02:20", 64 "Flight number": "FR 7351", 65 "Price": 25.19, 66 "Time departure": "2021-05-09T19:50:00.000", 67 "Time arrival": "2021-05-09T22:10:00.000", 68 "key": "FR~7351~ ~~BCN~05/09/2021 19:50~VIE~05/09/2021 22:10~~", 69 "scrapedAt": "2021-03-16T14:56:12.589Z", 70 "regularFare": { 71 "fareKey": "5DK4JGBZGI3LGJEY7PIPEHFS6AQV5IRPZTGV23N5AMBWJS4ZR22QAPTVTCGN24WMRSPLJGWCHJGIFLZQRXINUUEMCZX4Z5UPWN3RSKZ3R24BNFBGZIKWCFZWXI7IFPO3QDXJPS65E5E4I73IQHMLKGVT7PQ76AJUUPEK33SNLF5NNIMK3M5QCPFUJN3XP6KYFPJX3SC5IYATO", 72 "fareClass": "A", 73 "fares": [ 74 { 75 "type": "ADT", 76 "amount": 25.19, 77 "count": 1, 78 "hasDiscount": true, 79 "publishedFare": 25.32, 80 "discountInPercent": 10, 81 "hasPromoDiscount": false, 82 "discountAmount": 0.13, 83 "hasBogof": false 84 } 85 ] 86 }, 87 "operatedBy": "Buzz" 88 } 89]
Please visit us through epctex.com to see all the products that are available for you. If you are looking for any custom integration or so, please reach out to us through the chat box in epctex.com. In need of support? business@epctex.com is at your service.
Yes, if you're scraping publicly available data for personal or internal use. Always review Websute's Terms of Service before large-scale use or redistribution.
No. This is a no-code tool — just enter a job title, location, and run the scraper directly from your dashboard or Apify actor page.
It extracts job titles, companies, salaries (if available), descriptions, locations, and post dates. You can export all of it to Excel or JSON.
Yes, you can scrape multiple pages and refine by job title, location, keyword, or more depending on the input settings you use.
You can use the Try Now button on this page to go to the scraper. You’ll be guided to input a search term and get structured results. No setup needed!