Wizz Air Flights Scraper: Fares, Schedules & Price Calendar
Pricing
from $11.54 / 1,000 results
Wizz Air Flights Scraper: Fares, Schedules & Price Calendar
Scrape Wizz Air flight fares and availability for any route across 190 airports in 44 countries. Extract lowest price, currency, departure times, flights available and a 30 day price calendar. Export to JSON, CSV or Excel.
Pricing
from $11.54 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
2
Monthly active users
11 days ago
Last modified
Categories
Share
Wizz Air Flights Scraper: Fares, Schedules & Price Calendar
Here is one real result, with every field a flight fare record returns:
{"origin": "BUD","originName": "Budapest","originCountry": "Hungary","destination": "LTN","destinationName": "London Luton","destinationCountry": "United Kingdom","direction": "outbound","departureDate": "2026-09-08","dayOfWeek": "Tuesday","daysToDeparture": 30,"departureTimes": ["2026-09-08T06:00:00", "2026-09-08T08:30:00", "2026-09-08T17:30:00"],"flightsAvailable": 3,"price": 34290,"currency": "HUF","originalPrice": 34290,"priceReduced": false,"hasMacFlight": true,"deepLink": "https://www.wizzair.com/en-gb/booking/select-flight/BUD/LTN/2026-09-08/null/1/0/0/null","observedAt": "2026-08-09T21:28:32.410Z","error": null}
The most complete Wizz Air flights scraper available. It returns every fare field the booking engine exposes per route and date, adds airport names and countries, days to departure and all daily departure times, and can also build a 30 day price calendar per route so you can find the cheapest day to fly.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor queries the Wizz Air timetable for the route you pass, scans each departure date in the range you set, and writes one normalized fare record per date/direction to the run's dataset. Prices are returned in the fare currency with originalPrice and a priceReduced flag, all daily departure times are listed, and airport names and countries are resolved from IATA codes. When withDetails is on, the actor also emits one priceCalendar record per leg (a 30 day cheapest-fare-per-day calendar with cheapest/average/median stats).
Data covers routes served by the Wizz Air network. If a route or date has no availability, the actor returns nothing for it rather than inventing fares. Because Wizz Air rate-limits datacenter IPs, running through Apify RESIDENTIAL proxy is recommended for reliable results.
Quickstart
Open the actor, paste this into the input, and press Run. It scans 7 days of Budapest to London Luton fares for one adult.
{"maxFlights": 10,"withDetails": true,"origin": "BUD","destination": "LTN","dateRangeDays": 7,"adultCount": 1,"childCount": 0,"infantCount": 0}
For more reliable results, add a residential proxy: "proxyConfiguration": {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
origin | enum | yes | BUD | Departure airport, a Wizz Air airport IATA code, for example BUD, LTN, WAW. |
destination | enum | yes | LTN | Arrival airport IATA code. Must be a Wizz Air airport the origin connects to. |
departureDate | string | no | (today) | First departure date to scan, YYYY-MM-DD. Must be today or later. Empty defaults to today. |
dateRangeDays | integer | no | 7 | How many consecutive days from departureDate to fetch fares for (1 = that day only, 30 = a month). |
returnDate | string | no | (empty) | If set, also fetch the return leg (destination back to origin) starting at this date. |
adultCount | integer | no | 1 | Number of adult passengers used to price the fares. |
childCount | integer | no | 0 | Number of child passengers (age 2 to 14). |
infantCount | integer | no | 0 | Number of infant passengers (under 2). |
maxPrice | integer | no | (none) | Only return fares at or below this price (in the fare currency). |
minPrice | integer | no | (none) | Only return fares at or above this price (in the fare currency). |
withDetails | boolean | no | true | When on, also build a 30 day price calendar per leg (emitted as priceCalendar records, details charge). |
maxFlights | integer | no | 10 | Maximum number of fare records to collect across all routes and dates. |
proxyConfiguration | object | no | (none) | Standard Apify proxy configuration. RESIDENTIAL is recommended; Wizz Air rate-limits datacenter IPs. |
Output reference
Two record types. A fare record (one per date/direction) and, when withDetails is on, a priceCalendar record (one per leg). Types: string, integer, number, boolean, string[], object[], or null.
Fare record:
| Field | Type | Description |
|---|---|---|
origin | string | Departure airport IATA code. |
originName | string | Departure airport/city name. |
originCountry | string | Departure country. |
destination | string | Arrival airport IATA code. |
destinationName | string | Arrival airport/city name. |
destinationCountry | string | Arrival country. |
direction | string | outbound or return. |
departureDate | string | Departure date (YYYY-MM-DD). |
dayOfWeek | string | Weekday name of the departure date. |
daysToDeparture | integer | Whole days between the run and the departure date. |
departureTimes | string[] | All departure datetimes available that day. |
flightsAvailable | integer | Number of flights available that day. |
price | integer | Lowest fare for that date, in the fare currency. |
currency | string | Fare currency code, for example HUF, EUR, GBP. |
originalPrice | integer | Undiscounted fare. |
priceReduced | boolean | true when price is below originalPrice. |
hasMacFlight | boolean | Whether a metropolitan-area (MAC) flight option exists. |
deepLink | string | Direct Wizz Air booking link for that date. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success; populated on a failed leg/date item. |
priceCalendar record (emitted when withDetails is on):
| Field | Type | Description |
|---|---|---|
recordType | string | Constant priceCalendar. |
origin, originName, destination, destinationName, direction | string | Route identity, same meaning as above. |
calendarFrom / calendarTo | string | The 30 day window scanned (YYYY-MM-DD). |
currency | string | Fare currency for the calendar. |
cheapestDate | string | Date of the cheapest fare in the window. |
cheapestPrice | number | Cheapest fare in the window. |
highestPrice | number | Highest fare in the window. |
averagePrice | number | Mean fare across days with flights. |
medianPrice | number | Median fare across days with flights. |
priceSpread | number | Highest minus cheapest. |
savingsPercent | integer | Percent saved by booking the cheapest vs highest day. |
operatingDaysOfWeek | string[] | Weekdays the route operates within the window. |
daysWithFlights | integer | Number of days in the window that have flights. |
dailyPrices | object[] | Per-day {date, price, flightsAvailable} entries. |
deepLink | string | Booking link for the cheapest day. |
observedAt | string | ISO 8601 timestamp. |
error | string | null on success. |
Example output record
Real fare record from a live run (input origin BUD, destination LTN, dateRangeDays 10, withDetails true, RESIDENTIAL proxy):
{"origin": "BUD","originName": "Budapest","originCountry": "Hungary","destination": "LTN","destinationName": "London Luton","destinationCountry": "United Kingdom","direction": "outbound","departureDate": "2026-09-08","dayOfWeek": "Tuesday","daysToDeparture": 30,"departureTimes": ["2026-09-08T06:00:00", "2026-09-08T08:30:00", "2026-09-08T17:30:00"],"flightsAvailable": 3,"price": 34290,"currency": "HUF","originalPrice": 34290,"priceReduced": false,"hasMacFlight": true,"deepLink": "https://www.wizzair.com/en-gb/booking/select-flight/BUD/LTN/2026-09-08/null/1/0/0/null","observedAt": "2026-08-09T21:28:32.410Z","error": null}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~wizzair-flights-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"origin":"BUD","destination":"LTN","dateRangeDays":10,"maxFlights":10,"withDetails":true,"proxyConfiguration":{"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]}}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~wizzair-flights-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"origin":"WAW","destination":"BCN","departureDate":"2026-10-01","dateRangeDays":14,"maxFlights":50}'
Apify CLI:
apify call scrapers_lat/wizzair-flights-scraper \--input '{"origin":"BUD","destination":"LTN","dateRangeDays":7}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per fare record returned (
resultevent). See the pricing tab for the current per-result price. EachpriceCalendarrecord is a separatedetailscharge. - No charge on failure. If a leg or date errors, the actor writes an item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 fare records per run. Upgrade for higher
maxFlights.
FAQ and troubleshooting
A run returned 0 records or an error item. Why?
Wizz Air rate-limits datacenter IPs and may return an HTTP 404/challenge from Apify's shared IPs. Add proxyConfiguration with the RESIDENTIAL group and retry. The route/date may also simply have no availability. Failed items are not charged.
How do I find the cheapest day to fly?
Keep withDetails on and read the priceCalendar record: cheapestDate, cheapestPrice, and dailyPrices give the full 30 day picture per leg.
How do I scrape a round trip?
Set returnDate. The actor then also scans the return leg (destination back to origin) starting from that date.
Why is the price in HUF (or another currency)? Fares are returned in the currency the Wizz Air engine prices the route in. Convert downstream if you need a common currency.
Is this an official Wizz Air tool? No. This actor is independent and has no affiliation with Wizz Air. It reads only data that is publicly available on the Wizz Air site.
Related scrapers
- FlixBus Schedules & Fares Scraper: Bus schedules and fares across the FlixBus network.
- Deutsche Bahn Trains Scraper: German rail schedules and fares.
- Booking.com Hotels Scraper: Hotel availability and prices.
- Booking.com Reviews Scraper: Guest reviews for hotels.
- Eventbrite Events Scraper: Public events and ticketing.
- Exchange Rates Scraper: Daily currency exchange rates.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with Wizz Air. Accesses only publicly available data.
