SuperAPI AI Directory

Flyan

Unofficial Ryanair flight search: find one-way fares, explore destinations by country or region and find the cheapest day to fly between two airports.

Open website

About this tool

Flyan is an unofficial open-source Python SDK and MCP server for retrieving Ryanair flight data. The project describes itself as an "Unofficial API wrapper," is not affiliated with Ryanair, and requires you to bear the risk of use yourself and comply with Ryanair's terms of service.

  1. Purpose Flyan is aimed at developers and AI agents that need to query Ryanair flight information programmatically, and provides two types of entry points: integration into code as a Python library, or connection as an MCP server to MCP-capable clients such as Claude Desktop, Claude Code, and Cursor to search for flights using natural language. The project emphasizes that no API key, no account, and no rate-limit configuration are required.

  2. Main Capabilities

  3. Client and currency: Create a RyanAir client instance, and you can specify the pricing currency via the currency parameter (default "EUR"), which must be a supported currency code.

  4. One-way flight search: The search method accepts FlightSearchParams parameters and returns list[Flight]. FlightSearchParams includes from_airport (departure airport IATA code, such as "DUB"), from_date (earliest departure date), to_date (latest departure date), destination_country (optional, destination country code), max_price (optional, maximum price), to_airport (optional, arrival airport IATA code), departure_time_from and departure_time_to (optional, departure time range in HH:MM format). The Flight object includes departure/arrival airport information, departure/arrival date and time, price, currency, flight_key, flight_number, previous_price (optional), and other fields.

  5. Round-trip search parameters: A ReturnFlightSearchParams class is provided (the materials only list the class name and do not expand on its specific fields); there is also a class representing round-trip bookings, which includes outbound, inbound, summary_price, summary_currency, previous_price, and more.

  6. Explore mode: answers "where can you actually fly to from here," reads Ryanair's live network metadata once, and exposes reachable destinations from any airport, which can be grouped, filtered, or combined with the lowest price within a date window. The relevant methods exist on both RyanAir and AsyncRyanAir. You can list all destinations, filter by country/region/city, group destinations, query seasonal-only destinations, and explore_with_fares() returns DestinationFare (a destination airport NetworkAirport plus an optional lowest-price Flight, or None if there is no priced inventory within the window), consuming one network call plus one price call. Country codes are lowercase ISO2, while region and city codes come from the live network (uppercase, such as SCOTLAND, ANDALUSIA, COSTA_DE_SOL, LONDON, MILAN). Airports without a region_code are grouped under an empty-string key. Seasonal destinations often return an empty list outside the summer/winter schedule transition because the upstream seasonalRoutes data is sparse.

  7. NetworkAirport fields: country_code, city_code, region_code (optional), currency_code, time_zone, base (whether it is a Ryanair base), latitude/longitude, routes, seasonal_routes, categories, aliases, and it provides helper methods such as airport_routes(), country_routes(), seasonal_airport_routes(), typed_routes(), typed_seasonal_routes().

  8. Performance advice: When calling multiple explore methods in succession, you can wrap the transport layer with CachingTransport so that network metadata is fetched only once and reused.

  9. MCP server: By installing Flyan with the MCP extra, a flyan-mcp console script is generated on PATH. The server exposes four tools: find_flights (one-way search, supporting country, IATA, or price filters), find_anywhere_under ("where can I go within X budget"), explore_destinations ("which countries can be reached from X"), cheapest_per_day ("the cheapest day for X to Y in a certain month"). The server returns prices in EUR by default; other ISO 4217 codes can be specified via the FLYAN_CURRENCY environment variable or MCP configuration, and unknown or unsupported codes silently fall back to EUR. The server reuses a single RyanAir client.

  10. How to use Python SDK: after creating a RyanAir client instance, call the search methods and pass in parameters such as FlightSearchParams. MCP integration: first install Flyan with the MCP extra (the project says "two commands are enough", but the material does not give the specific command text), then add it in Claude Code (one-line command), Claude Desktop (edit ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows and then restart; in the configuration use the server name flyan and the command flyan-mcp), or Cursor (Settings → MCP → Add new server, name flyan, command flyan-mcp). After that, you can ask the agent questions such as "Find me a one-way from Dublin to anywhere in Spain in the first week of August under €150." The agent should call find_flights and set destination_country="es", then summarize the cheapest options.

  11. Applicable scenarios Developers who need to query Ryanair one-way fares programmatically, explore reachable destinations by country or budget, and find the cheapest travel date between two places in the current month, as well as users who want to query Ryanair flights in natural language in AI clients such as Claude and Cursor. The supported airports are all airports in the Ryanair network, and airport codes must be valid three-letter IATA codes. The completelist can be obtained via client.get_network() and iterated through network.airports; the example airports listed in the material include STN (London Stansted), BCN (Barcelona), FCO (Rome Fiumicino), and AMS (Amsterdam). Examples of supported currencies include USD, GBP, and CHF; see currencies.json for the complete list.

  12. Limitations and notes This is an unofficial API wrapper, is not affiliated with Ryanair, and use is at your own risk and subject to Ryanair's terms of service. The SDK includes built-in automatic retry logic with exponential backoff to handle rate limiting and temporary API issues, giving up after at most 5 retries. Seasonal destination queries are often empty outside schedule changes. explore_with_fares() returns None for routes with no priced inventory. The MCP server silently falls back to EUR when it encounters an unknown or unsupported currency code. The material does not provide specific installation commands, prices, pricing plans, or performance data; these are not currently available.