{
  "openapi": "3.0.1",
  "info": {
    "title": "Ryanair Flight Scraper",
    "description": "Scrape Ryanair flights and fares: cheapest one-way and round-trip prices, every scheduled flight per day with times and flight numbers, and cheapest fares to every destination in Explore mode. Export JSON, CSV, Excel.",
    "version": "1.0",
    "x-build-id": "Ak9zxWrNfangUdGYx"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parsebird~ryanair-flight-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parsebird-ryanair-flight-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/parsebird~ryanair-flight-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parsebird-ryanair-flight-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/parsebird~ryanair-flight-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parsebird-ryanair-flight-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "origin"
        ],
        "properties": {
          "origin": {
            "title": "Origin",
            "type": "string",
            "description": "Origin airport IATA code(s), comma-separated for multiple routes (e.g. DUB or DUB,STN,BCN)."
          },
          "destination": {
            "title": "Destination",
            "type": "string",
            "description": "Destination airport IATA code(s), comma-separated. Leave empty for Explore mode (cheapest fare to every destination from each origin)."
          },
          "tripType": {
            "title": "Trip type",
            "enum": [
              "oneWay",
              "roundTrip"
            ],
            "type": "string",
            "description": "oneWay returns outbound fares only. roundTrip pairs the cheapest outbound and inbound fares and requires a destination and a return date window.",
            "default": "oneWay"
          },
          "allFlights": {
            "title": "All flights (every scheduled flight per day)",
            "type": "boolean",
            "description": "One-way fixed routes only. Return every scheduled flight for each day in the window with departure times and flight numbers. Ryanair does not price each flight individually, so every row carries the day's cheapest fare in dayCheapestPrice.",
            "default": false
          },
          "departDateFrom": {
            "title": "Outbound date from",
            "type": "string",
            "description": "First outbound date, YYYY-MM-DD. Defaults to today. Up to 62 days per route per run."
          },
          "departDateTo": {
            "title": "Outbound date to",
            "type": "string",
            "description": "Last outbound date, YYYY-MM-DD. Defaults to 7 days after the outbound start date."
          },
          "returnDateFrom": {
            "title": "Return date from",
            "type": "string",
            "description": "First inbound date, YYYY-MM-DD. Round trip only."
          },
          "returnDateTo": {
            "title": "Return date to",
            "type": "string",
            "description": "Last inbound date, YYYY-MM-DD. Round trip only."
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "EUR",
              "GBP",
              "USD",
              "PLN",
              "SEK",
              "DKK",
              "NOK",
              "CHF",
              "CZK",
              "HUF",
              "RON",
              "BGN",
              "CAD",
              "AUD"
            ],
            "type": "string",
            "description": "Fare currency.",
            "default": "EUR"
          },
          "market": {
            "title": "Market",
            "enum": [
              "en-gb",
              "en-ie",
              "en-us",
              "es-es",
              "de-de",
              "fr-fr",
              "it-it",
              "pl-pl"
            ],
            "type": "string",
            "description": "Ryanair site market used for the booking link locale.",
            "default": "en-gb"
          },
          "sortBy": {
            "title": "Sort results by",
            "enum": [
              "sourceOrder",
              "cheapest",
              "earliestDeparture",
              "shortestDuration"
            ],
            "type": "string",
            "description": "Order of the rows in the dataset.",
            "default": "sourceOrder"
          },
          "maxPrice": {
            "title": "Max price",
            "minimum": 0,
            "type": "integer",
            "description": "Drop fares above this price (in the selected currency). Leave empty for no ceiling."
          },
          "includeUnavailable": {
            "title": "Include unavailable dates",
            "type": "boolean",
            "description": "Emit a row for outbound dates that have no available fare, so gaps in the window are visible.",
            "default": false
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 25,
            "type": "integer",
            "description": "Adult passengers for the booking link.",
            "default": 1
          },
          "teens": {
            "title": "Teens",
            "minimum": 0,
            "maximum": 25,
            "type": "integer",
            "description": "Teen passengers (12-15) for the booking link.",
            "default": 0
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "maximum": 25,
            "type": "integer",
            "description": "Child passengers (2-11) for the booking link.",
            "default": 0
          },
          "infants": {
            "title": "Infants",
            "minimum": 0,
            "maximum": 25,
            "type": "integer",
            "description": "Infant passengers (under 2) for the booking link.",
            "default": 0
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Hard cap on the total number of rows saved to the dataset.",
            "default": 1000
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy routing. Datacenter proxy is enough for Ryanair's fare APIs.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}