Piloterr

Ryanair Flight Search

Search Ryanair routes by origin, destination, and date to get live fares, stops, duration, cabin classes, and seat counts as structured JSON.

Credit cost: 1 credit per call

GET
/v2/ryanair/search

Authorization

ApiKeyAuth
x-api-key<token>

Your API key. Include it in the x-api-key header for every request.

In: header

Query Parameters

origin*string

IATA airport code for the departure airport.

Example 1:

MAD

Example 2:

DUB
destination*string

IATA airport code for the arrival airport.

Example 1:

BCN

Example 2:

STN
departure_date*string

Departure date in YYYY-MM-DD format.

Example:

2026-08-20
return_date?string

Return date in YYYY-MM-DD format. Include for round-trip searches. Omit for one-way.

Example:

2026-08-27
adults?number

Number of adult passengers (16+). Default: 1.

Default"1"
teens?number

Number of teen passengers (12-15 years). Default: 0.

Default"0"
children?number

Number of child passengers (2-11 years). Default: 0.

Default"0"
infants?number

Number of infant passengers (under 2 years, lap only). Default: 0.

Default"0"
currency?string

ISO 4217 currency code for displayed prices. Examples: EUR, GBP, USD, PLN. Default: EUR.

Example:

GBP
Default"EUR"
flex_days?number

0 returns only the exact departure date. 3 returns results for plus or minus 3 days around the requested date.

Example:

3
Default"0"

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://api.piloterr.com/v2/ryanair/search?origin=string&destination=string&departure_date=string"
{
  "search_info": {
    "origin": "MAD",
    "destination": "BCN",
    "departure_date": "2026-08-20",
    "return_date": "2026-08-27",
    "currency": "EUR",
    "total_results": 5
  },
  "outbound_flights": [
    {
      "flight_key": "MAD-BCN-20260820-FR8492",
      "flight_number": "FR 8492",
      "origin": "MAD",
      "destination": "BCN",
      "departure_time": "2026-08-20T06:25:00",
      "arrival_time": "2026-08-20T07:45:00",
      "duration_minutes": 80,
      "stops": 0,
      "price": 14.99,
      "taxes": 13.01,
      "total_price": 28,
      "currency": "EUR",
      "cabin_class": "value",
      "seats_available": 9,
      "baggage_included": false,
      "cabin_bag_included": false,
      "booking_url": "https://www.ryanair.com/gb/en/booking/home/MAD/BCN/2026-08-20/2026-08-27/1/0/0/0"
    },
    {
      "flight_key": "MAD-BCN-20260820-FR8494",
      "flight_number": "FR 8494",
      "origin": "MAD",
      "destination": "BCN",
      "departure_time": "2026-08-20T10:10:00",
      "arrival_time": "2026-08-20T11:30:00",
      "duration_minutes": 80,
      "stops": 0,
      "price": 24.99,
      "taxes": 13.01,
      "total_price": 38,
      "currency": "EUR",
      "cabin_class": "regular",
      "seats_available": 4,
      "baggage_included": false,
      "cabin_bag_included": true,
      "booking_url": "https://www.ryanair.com/gb/en/booking/home/MAD/BCN/2026-08-20/2026-08-27/1/0/0/0"
    }
  ],
  "return_flights": [
    {
      "flight_key": "BCN-MAD-20260827-FR8493",
      "flight_number": "FR 8493",
      "origin": "BCN",
      "destination": "MAD",
      "departure_time": "2026-08-27T08:30:00",
      "arrival_time": "2026-08-27T09:50:00",
      "duration_minutes": 80,
      "stops": 0,
      "price": 19.99,
      "taxes": 13.01,
      "total_price": 33,
      "currency": "EUR",
      "cabin_class": "value",
      "seats_available": 7,
      "baggage_included": false,
      "cabin_bag_included": false,
      "booking_url": "https://www.ryanair.com/gb/en/booking/home/BCN/MAD/2026-08-27/null/1/0/0/0"
    }
  ]
}
{
  "error": "Bad Request"
}
{
  "error": "Invalid API Key"
}
{
  "error": "Payment required"
}
{
  "error": "Rate limit exceeded for the API key: quota monthly"
}
{
  "error": "Internal Error"
}