{
  "openapi": "3.0.1",
  "info": {
    "title": "Wizzair Flights Scraper - Cheapest Fares Calendar",
    "description": "Scrape Wizz Air cheapest daily fares for any route over any date range: lowest price per day, currency and every departure time, straight from the airline booking engine. One row per route per day. Export CSV, Excel, JSON or API. No login or API key needed.",
    "version": "0.1",
    "x-build-id": "7nKttBJnkJQK7KhF6"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/recordsdata~wizzair-flights-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-recordsdata-wizzair-flights-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/recordsdata~wizzair-flights-scraper/runs": {
      "post": {
        "operationId": "runs-sync-recordsdata-wizzair-flights-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/recordsdata~wizzair-flights-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-recordsdata-wizzair-flights-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": [
          "routes"
        ],
        "properties": {
          "routes": {
            "title": "Routes",
            "minItems": 1,
            "type": "array",
            "description": "Wizz Air routes to check, one per line. Use ORIGIN-DESTINATION with 3-letter station codes (for example LTN-BUD for London Luton to Budapest) to get the cheapest fare of every day. Give only an origin (for example LTN, or LTN-*) to use Explore mode: the cheapest fare to every destination Wizz Air flies to from that airport, one row per destination. Only real Wizz Air routes return data.",
            "default": [
              "LTN-BUD"
            ],
            "items": {
              "type": "string"
            }
          },
          "dateFrom": {
            "title": "From date (optional)",
            "type": "string",
            "description": "First day of the fare calendar, format YYYY-MM-DD. Leave empty to start today. Ignored when Days ahead (start/end) is set. Dates in the past start today."
          },
          "dateTo": {
            "title": "To date (optional)",
            "type": "string",
            "description": "Last day of the fare calendar, format YYYY-MM-DD. Leave empty for 30 days after the start date. Ranges longer than 31 days are split automatically into several Wizz Air requests. Wizz Air sells about 11 months ahead."
          },
          "daysAheadStart": {
            "title": "Days ahead: start (optional)",
            "minimum": 0,
            "maximum": 420,
            "type": "integer",
            "description": "Relative date window for scheduled runs: first day = today + this many days (0 = today). Use together with Days ahead: end. For example 7 and 37 always searches flights 7 to 37 days from the day the run starts, with no edits to the schedule. Overrides From date / To date."
          },
          "daysAheadEnd": {
            "title": "Days ahead: end (optional)",
            "minimum": 0,
            "maximum": 420,
            "type": "integer",
            "description": "Relative date window: last day = today + this many days. If only Days ahead: start is set, the window is 30 days long. Must not be smaller than Days ahead: start. Overrides From date / To date."
          },
          "adultCount": {
            "title": "Adult passengers",
            "minimum": 1,
            "maximum": 9,
            "type": "integer",
            "description": "Number of adult passengers the fare is priced for (default 1). Prices are per person for this party size. Adults plus children cannot exceed 9.",
            "default": 1
          },
          "childCount": {
            "title": "Child passengers",
            "minimum": 0,
            "maximum": 8,
            "type": "integer",
            "description": "Number of children (2 to 14 years) added to the search. Child fares can differ from adult fares.",
            "default": 0
          },
          "infantCount": {
            "title": "Infants",
            "minimum": 0,
            "maximum": 9,
            "type": "integer",
            "description": "Number of infants under 2 travelling on an adult's lap. Cannot be more than the number of adults.",
            "default": 0
          },
          "minPrice": {
            "title": "Minimum price (optional)",
            "minimum": 0,
            "type": "number",
            "description": "Only deliver fares at or above this price, in the currency Wizz Air quotes for the departure airport (GBP for London, EUR for most of Europe, HUF for Budapest). Filtered fares are never charged."
          },
          "maxPrice": {
            "title": "Maximum price (optional)",
            "minimum": 0,
            "type": "number",
            "description": "Only deliver fares at or below this price, in the currency Wizz Air quotes for the departure airport. Great for deal alerts: fares above the limit are skipped and never charged."
          },
          "roundTrip": {
            "title": "Include return flights",
            "type": "boolean",
            "description": "Also search the way back (destination to origin). Rows get a direction field: outbound or return. Each row is the cheapest fare of one day and one direction; Max results is shared between both directions.",
            "default": false
          },
          "returnDateFrom": {
            "title": "Return from date (optional)",
            "type": "string",
            "description": "First day of the return window, format YYYY-MM-DD. Only used with Include return flights. Leave empty to use the same dates as the outbound flights."
          },
          "returnDateTo": {
            "title": "Return to date (optional)",
            "type": "string",
            "description": "Last day of the return window, format YYYY-MM-DD. Only used with Include return flights. Leave empty for the end of the outbound window (or 30 days after Return from date)."
          },
          "exploreCountries": {
            "title": "Explore: only these countries (optional)",
            "type": "array",
            "description": "Explore mode only (routes with just an origin such as LTN). Keep only destinations in these countries, as 2-letter codes (for example ES, IT, PT). Leave empty for all destinations. Fewer destinations means faster runs.",
            "items": {
              "type": "string"
            }
          },
          "includeWdcPrice": {
            "title": "Add Wizz Discount Club price",
            "type": "boolean",
            "description": "Adds a wdcPrice field with the member price of the Wizz Discount Club for each fare. Needs one extra Wizz Air request per 31-day window, so runs take longer. Filters use the normal price.",
            "default": false
          },
          "sortBy": {
            "title": "Sort results",
            "enum": [
              "auto",
              "date",
              "price"
            ],
            "type": "string",
            "description": "Order of the delivered rows. Automatic = chronological per route, or cheapest first in Explore mode. Cheapest first sorts all routes together and keeps the cheapest fares when Max results is smaller than what was found; fares in different currencies are never compared, each currency is sorted on its own and the lists alternate.",
            "default": "auto"
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of fare records to return and be charged for (one per route per day and direction, or one per destination in Explore mode). Free plan runs are capped at 10.",
            "default": 200
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}