Wizz Air Flights Scraper: Fares, Prices, Schedules & API
Pricing
from $11.54 / 1,000 results
Wizz Air Flights Scraper: Fares, Prices, Schedules & API
Scrape Wizz Air flight prices, fares and schedules for any route across 190+ airports without an API key. Get the cheapest fare per day, every departure time, a 30 day price calendar, one way or round trip, in local and UTC time. Export flight data to JSON, CSV or Excel.
Pricing
from $11.54 / 1,000 results
Rating
5.0
(1)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
9
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share
Wizz Air Flights Scraper: Fares, Prices, Schedules & API
Scrape Wizz Air flight prices, fares and schedules for any route on the Wizz Air network, with no API key and no login. Get the cheapest fare for every day, every scheduled departure time, and a 30 day price calendar, one way or round trip, in both local and UTC time. This is a Wizz Air flights data API you drive from Apify and export to JSON, CSV or Excel.
Here is one real result, with every field the actor returns for a flight row:
{"route": "LTN-WAW","origin": "LTN","originName": "London Luton","originCity": "London Luton","originCountry": "United Kingdom","originCountryCode": "GB","originLatitude": 51.8747,"originLongitude": -0.3683,"originTimezone": "Europe/London","destination": "WAW","destinationName": "Warsaw Chopin","destinationCity": "Warsaw Chopin","destinationCountry": "Poland","destinationCountryCode": "PL","destinationLatitude": 52.1658,"destinationLongitude": 20.9672,"destinationTimezone": "Europe/Warsaw","direction": "outbound","departureDate": "2026-10-05","departureDateTime": "2026-10-05T08:25:00","departureDateTimeUtc": "2026-10-05T07:25:00Z","dayOfWeek": "Monday","daysToDeparture": 30,"flightsThatDay": 3,"flightNumber": null,"arrivalDateTime": null,"arrivalDateTimeUtc": null,"duration": null,"durationMinutes": null,"stops": 0,"direct": true,"carrier": "Wizz Air","carrierCode": "W6","cabin": "Economy","fareType": "Lowest of day","isLowestFareOfDay": true,"price": 36.99,"originalPrice": 36.99,"priceReduced": false,"currency": "GBP","priceType": "price","available": true,"hasMacFlight": false,"source": "timetable","deepLink": "https://www.wizzair.com/en-gb/booking/select-flight/LTN/WAW/2026-10-05/null/1/0/0/null","url": "https://www.wizzair.com/en-gb/booking/select-flight/LTN/WAW/2026-10-05/null/1/0/0/null","observedAt": "2026-09-05T00:47:51.060Z","error": null}
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Why this scraper
- How it compares
- Quickstart
- Input reference
- Output reference
- Price calendar record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
This Wizz Air scraper reads the public Wizz Air timetable for a route and returns every flight Wizz Air publishes for each day you scan, not only the cheapest departure. For each date you get the cheapest fare of the day, the currency, and every scheduled departure time, enriched with city, country, coordinates and timezone for both airports and a UTC departure time computed from the airport timezone (daylight saving aware).
By default each scheduled departure time is its own dataset row. Set collapseFares to true to get one row per day with all departure times nested in departureTimes and departureTimesUtc arrays. Set includeReturn to true (or pass a returnDate) to also scan the return leg (destination back to origin) in the same run, tagged direction return.
With withDetails enabled (the default, paying accounts), the actor also emits one 30 day price calendar record per route: the cheapest fare per day with the cheapest and highest dates, average and median price, price spread, estimated savings, and the days of week the route operates. Every row carries a deepLink that opens the exact route and date on wizzair.com.
Why this scraper
- No API key, no login. You pass airports and dates, you get structured flight data.
- Every flight, not just the cheapest. The full daily schedule for your date window, one way or round trip.
- Prices in local and UTC time. Departure times converted to UTC using the origin airport timezone, daylight saving correct.
- Rich airport metadata. City, country, ISO country code, latitude, longitude and IANA timezone for both ends, from the live Wizz Air airport map (190+ airports).
- Trip planning built in. Day of week, days to departure, a 30 day price calendar and savings analytics per route.
- Honest fields. Wizz Air serves the flight number, exact arrival time, duration and per-bundle prices only from a bot-protected booking endpoint that is not reachable over HTTP. Those fields are returned as explicit
nullrather than faked. See the FAQ.
How it compares
| Capability | This actor | mscraper/wizzair-scraper (deprecated) | Universal / multi-source flight scrapers |
|---|---|---|---|
| Wizz Air focused | Yes | Yes | Partial (one of several sources) |
| Origin + destination + date input | Yes | Yes | Yes |
| Flexible date window (scan N days) | Yes (1 to 60) | No | Rare |
| One way and round trip | Yes | One way | Varies |
| Passenger mix (adults, children, infants) | Yes | Yes | Rare |
| Cheapest fare per day | Yes | No | Sometimes |
| Every departure time of the day | Yes | Per flight | No |
| 30 day price calendar and savings analytics | Yes | No | No |
| Local and UTC departure time | Yes | Local only | Varies |
| Airport city, country, coordinates, timezone | Yes | No | Rare |
| Price band filter (min and max) | Yes | No | No |
| Deep link to book | Yes | No | No |
| No charge on failure, spend cap | Yes | n/a | Varies |
We accept every input the direct Wizz Air competitor accepted (origin, destination, date, passengers, one way or round trip) and return the reliably available outputs plus the calendar, coordinates, timezone, UTC time, day of week and savings analytics on top. The older direct competitor is deprecated because it depended on the per-flight booking endpoint that Wizz Air has since locked behind bot protection.
Quickstart
Open the actor, paste this into the input, and press Run. It scans the LTN to WAW route for a week and returns every published flight plus a 30 day price calendar.
{"origin": "LTN","destination": "WAW","departureDate": "2026-10-05","dateRangeDays": 7,"withDetails": true,"maxFlights": 50}
Only origin and destination are required. Leave departureDate empty to default to about a month from today. Set includeReturn to true, or pass a returnDate, to also scan the way back.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
origin | string | yes | BUD | Departure airport IATA code. One of 190+ Wizz Air airports. |
destination | string | yes | LTN | Arrival airport IATA code. Must be a Wizz Air airport the origin connects to. |
departureDate | string | no | (about +1 month) | First departure date to scan (YYYY-MM-DD). Must be today or later. Leave empty to default to about a month from today. |
dateRangeDays | integer | no | 7 | How many consecutive days starting at departureDate to fetch fares for (1 = only that day, 60 = two months). |
returnDate | string | no | (empty) | If set, also fetch the return leg (destination back to origin) starting at this date (YYYY-MM-DD). Leave empty for one way. |
includeReturn | boolean | no | false | Also scan the return leg. If no returnDate is set it defaults to a week after departure. |
collapseFares | boolean | no | false | By default every scheduled departure time is a separate row. Enable this for one row per day with all departure times in departureTimes / departureTimesUtc arrays. |
withDetails | boolean | no | true | When enabled, for each route the scraper also emits a 30 day price calendar (cheapest fare per day) as a separate details record. Paying accounts only. Turn off to only return the dates you requested. |
maxPrice | integer | no | (none) | Only return fares at or below this price (in the fare currency). Leave empty for no upper limit. |
minPrice | integer | no | (none) | Only return fares at or above this price (in the fare currency). Leave empty for no lower limit. |
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). |
maxFlights | integer | no | 10 | Maximum number of flight fare records to collect across all routes and dates. Free Apify accounts are capped at 10 per run. |
Common aliases from other flight scrapers are also accepted: originAirport / from, destinationAirport / to, dateFrom / date, inboundDate, mode (ROUND), flexDays, adults / children / infants, and maxItems / maxResults.
Output reference
The run writes flight rows (one per departure time by default, or one per day when collapseFares is true) and, when withDetails is on, one price calendar record per route. Values are null when the source value is absent.
| Field | Type | Description |
|---|---|---|
route | string | Route as ORIGIN-DESTINATION, for example LTN-WAW. |
origin | string | Departure airport IATA code. |
originName / originCity | string | Departure airport / city name. |
originCountry | string | Departure country. |
originCountryCode | string | Departure ISO country code. |
originLatitude / originLongitude | number | Departure airport coordinates. |
originTimezone | string | Departure airport IANA timezone. |
destination | string | Arrival airport IATA code. |
destinationName / destinationCity | string | Arrival airport / city name. |
destinationCountry | string | Arrival country. |
destinationCountryCode | string | Arrival ISO country code. |
destinationLatitude / destinationLongitude | number | Arrival airport coordinates. |
destinationTimezone | string | Arrival airport IANA timezone. |
direction | string | outbound for the requested leg, return for a return-leg row. |
departureDate | string | Departure date (YYYY-MM-DD). |
departureDateTime | string | Local scheduled departure (YYYY-MM-DDTHH:mm:ss). One row per departure time. |
departureDateTimeUtc | string | Same departure in UTC, computed from the origin timezone (daylight saving aware). |
departureTimes / departureTimesUtc | array | Only in collapseFares mode: all local / UTC departure times of the day. |
dayOfWeek | string | Day of week of departure, for example Monday. |
daysToDeparture | integer | Whole days between the run and departure. |
flightsThatDay | integer | Number of scheduled departures that day. |
flightNumber | string | Wizz Air flight number. null: served only by the bot-protected booking endpoint. |
arrivalDateTime / arrivalDateTimeUtc | string | Scheduled arrival. null: served only by the bot-protected booking endpoint. |
duration / durationMinutes | string / integer | Flight duration. null: served only by the bot-protected booking endpoint. |
stops | integer | Number of stops. Wizz Air point-to-point flights are 0. |
direct | boolean | true for Wizz Air point-to-point flights. |
carrier / carrierCode | string | Operating carrier, Wizz Air / W6. |
cabin | string | Cabin. Wizz Air is Economy. |
fareType | string | Fare label for this row, Lowest of day. |
isLowestFareOfDay | boolean | true, the price is the cheapest published fare for that date. |
price | number | Cheapest fare of the day in currency. |
originalPrice | number | Pre-discount price when exposed, otherwise same as price. |
priceReduced | boolean | true when the fare is below its original price. |
currency | string | ISO currency code of the prices. |
priceType | string | Wizz Air price type flag when exposed. |
available | boolean | true when a fare is published for the date. |
hasMacFlight | boolean | Whether a metropolitan-area (MAC) flight is part of that day. |
source | string | Data source of the row: timetable. |
deepLink / url | string | Wizz Air booking URL for the exact route and date. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed route fetch, a single item with a populated error field is written instead. |
Price calendar record
Real price calendar record from a live run (route LTN to WAW, withDetails true). One is written per route:
{"route": "LTN-WAW","origin": "LTN","originName": "London Luton","destination": "WAW","destinationName": "Warsaw Chopin","direction": "outbound","recordType": "priceCalendar","calendarFrom": "2026-10-05","calendarTo": "2026-11-03","currency": "GBP","cheapestDate": "2026-10-06","cheapestPrice": 28.99,"highestPrice": 105.99,"averagePrice": 42.99,"medianPrice": 36.99,"priceSpread": 77,"savingsPercent": 73,"operatingDaysOfWeek": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],"daysWithFlights": 30,"dailyPrices": [{ "date": "2026-10-05", "price": 36.99, "flightsAvailable": 3 },{ "date": "2026-10-06", "price": 28.99, "flightsAvailable": 3 }],"deepLink": "https://www.wizzair.com/en-gb/booking/select-flight/LTN/WAW/2026-10-06/null/1/0/0/null","observedAt": "2026-09-05T00:47:58.999Z","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":"LTN","destination":"WAW","departureDate":"2026-10-05","dateRangeDays":7,"withDetails":true,"maxFlights":50}'
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":"BUD","destination":"LTN","includeReturn":true,"collapseFares":true}'
Apify CLI:
apify call scrapers_lat/wizzair-flights-scraper \--input '{"origin":"LTN","destination":"WAW","departureDate":"2026-10-05","returnDate":"2026-10-12"}'
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 record returned (
resultevent). See the pricing tab for the current per-result price. - No charge on failure. If a route fetch errors, the actor writes a single 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 records per run and do not receive the price calendar. Upgrade for a higher
maxFlightsand the calendar. - Row count. By default each scheduled departure time is one row. Set
collapseFaresto true for one row per day. Price calendar details records are a separate billable event; setwithDetailsto false to skip them.
FAQ and troubleshooting
Does it return every flight or only the cheapest? Every flight Wizz Air publishes on the route for each day you scan, read from the public timetable. Each departure time is a row carrying the cheapest published fare for that date.
Why are flightNumber, arrivalDateTime and duration null?
Wizz Air serves those per-flight details only from its booking-search endpoint, which is protected by a bot-mitigation layer (Kasada) and is not reachable over plain HTTP. Rather than ship fabricated values, the actor returns them as explicit null. Everything sourced from the open timetable (schedule, cheapest daily fare, currency, departure times) is real and complete.
What is the price calendar record?
When withDetails is on, each route also gets one details record (recordType priceCalendar) with a 30 day cheapest-fare-per-day breakdown, the cheapest and highest dates, average and median price, price spread, estimated savings and operating days of week. Turn withDetails off to skip it.
How do I get local and UTC departure times?
Every row includes departureDateTime (local) and departureDateTimeUtc (UTC), converted using the origin airport IANA timezone with daylight saving handled correctly.
How do I get the return leg too?
Set includeReturn to true, or pass a returnDate. Return-leg rows are tagged direction return.
A run returned 0 records. Why? Wizz Air may not fly the requested route, or there are no flights in the date range. Confirm both airports are on the Wizz Air network and that the origin connects to the destination. Zero-result runs are not charged.
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 wizzair.com. Use it in accordance with Wizz Air's terms.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for public platforms: company registries, government data, finance, travel, 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. Use in accordance with Wizz Air's terms of service.
