Wizz Air Flights Scraper: Fares, Schedules & Price Calendar avatar

Wizz Air Flights Scraper: Fares, Schedules & Price Calendar

Pricing

from $11.54 / 1,000 results

Go to Apify Store
Wizz Air Flights Scraper: Fares, Schedules & Price Calendar

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

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

3

Monthly active users

20 hours ago

Last modified

Share

Wizz Air Flights Scraper: Fares, Schedules & Price Calendar

Wizz Air Flights Scraper: Fares, Schedules & Price Calendar

Here is one real result, with every field the actor returns for a flight row:

{
"origin": "LTN",
"originName": "London Luton",
"originCountry": "United Kingdom",
"destination": "WAW",
"destinationName": "Warsaw Chopin\r\n",
"destinationCountry": "Poland",
"direction": "outbound",
"departureDate": "2026-09-15",
"departureDateTime": "2026-09-15T15:25:00",
"arrivalDateTime": null,
"flightNumber": null,
"dayOfWeek": "Tuesday",
"daysToDeparture": 30,
"duration": null,
"stops": 0,
"carrier": "Wizz Air",
"fareType": "Lowest of day",
"cabin": "Economy",
"price": 32.99,
"originalPrice": 32.99,
"priceReduced": false,
"currency": "GBP",
"fareKey": null,
"fareClass": null,
"fareOptions": null,
"seatMap": null,
"source": "timetable",
"deepLink": "https://www.wizzair.com/en-gb/booking/select-flight/LTN/WAW/2026-09-15/null/1/0/0/null",
"observedAt": "2026-08-16T01:34:41.881Z",
"error": null
}

The most complete Wizz Air flight scraper available. It returns every flight Wizz Air publishes on your route for each day you scan, not just the cheapest one, prices each fare bundle, and can add a 30 day price calendar per route, with filters for route, date range, return leg, passenger mix, and price band so you get exactly the flights you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor scans a Wizz Air route between two airports over the date range you pass, and returns every flight Wizz Air publishes on that route for each day, not only the cheapest departure. It reads the public Wizz Air timetable for the full list of daily flights (source timetable), and attempts a per-bundle fare search as a best-effort upgrade, so where Wizz Air returns detailed pricing you also get the individual fare bundles.

By default each fare bundle of a flight (Basic, Wizz Go, Wizz Plus) is its own dataset row, with fareType and cabin telling the bundles apart. Set collapseFares to true to instead get one row per flight with every bundle nested in a fareOptions array. Set includeReturn to true (or pass a returnDate) to also scan the return leg (destination back to origin) in the same run; return-leg rows are tagged direction return.

With withDetails enabled (the default), the actor also emits one price calendar record per route: a 30 day cheapest-fare-per-day breakdown with the cheapest and highest dates, average and median price, price spread, and estimated savings. Every row carries a deepLink that opens the exact route and date on wizzair.com.

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-09-15",
"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

FieldTypeRequiredDefaultDescription
originstringyesBUDDeparture airport IATA code. One of 190 Wizz Air airports.
destinationstringyesLTNArrival airport IATA code. Must be a Wizz Air airport the origin connects to.
departureDatestringno(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.
dateRangeDaysintegerno7How many consecutive days starting at departureDate to fetch fares for (1 = only that day, 30 = a month).
returnDatestringno(empty)If set, also fetch the return leg (destination back to origin) starting at this date (YYYY-MM-DD). Leave empty for one way.
includeReturnbooleannofalseAlso scan the return leg (destination back to origin). If no returnDate is set it defaults to a week after departure.
collapseFaresbooleannofalseBy default every fare bundle (Basic, Wizz Go, Wizz Plus) is a separate row. Enable this for one row per flight with all bundles nested in a fareOptions array.
withDetailsbooleannotrueWhen enabled, for each route the scraper also emits a 30 day price calendar (cheapest fare per day) as a separate details record. Turn off to only return the dates you requested.
maxPriceintegerno(none)Only return fares at or below this price (in the fare currency). Leave empty for no upper limit.
minPriceintegerno(none)Only return fares at or above this price (in the fare currency). Leave empty for no lower limit.
adultCountintegerno1Number of adult passengers used to price the fares.
childCountintegerno0Number of child passengers (age 2 to 14).
infantCountintegerno0Number of infant passengers (under 2).
maxFlightsintegerno10Maximum number of flight fare records to collect across all routes and dates. Free Apify accounts are capped at 10 per run.

Output reference

The run writes flight rows (one per fare bundle by default, or one per flight when collapseFares is true) and, when withDetails is on, one price calendar record per route. Types: string, number, integer, boolean, array, object, or null when the source value is absent.

FieldTypeDescription
originstringDeparture airport IATA code.
originNamestringDeparture city or airport name.
originCountrystringDeparture country.
destinationstringArrival airport IATA code.
destinationNamestringArrival city or airport name.
destinationCountrystringArrival country.
directionstringoutbound for the requested leg, return for a return-leg row.
departureDatestringDeparture date (YYYY-MM-DD).
departureDateTimestringLocal scheduled departure (YYYY-MM-DDTHH:mm:ss).
arrivalDateTimestringLocal scheduled arrival when exposed, otherwise null.
flightNumberstringWizz Air flight number when exposed, otherwise null.
dayOfWeekstringDay of week of departure, for example Tuesday.
daysToDepartureintegerWhole days between the run and departure.
durationstringFlight duration when exposed, otherwise null.
stopsintegerNumber of stops. Wizz Air point-to-point flights are 0.
carrierstringOperating carrier, Wizz Air.
fareTypestringFare label for this row, for example Lowest of day, Basic, Wizz Go, Wizz Plus.
cabinstringCabin for this fare. Wizz Air is Economy.
pricenumberFare price in currency.
originalPricenumberPre-discount price when exposed, otherwise same as price.
priceReducedbooleantrue when the fare is below its original price.
currencystringISO currency code of the prices.
fareKeystringInternal fare identifier when exposed, otherwise null.
fareClassstringWizz Air fare class code when exposed, otherwise null.
fareOptionsarrayAll fare bundles of the flight (only populated when collapseFares is true), otherwise null.
seatMapobjectSeat map when the per-bundle search returns it, otherwise null. Best effort.
sourcestringWhere the row came from: timetable (daily timetable) or a per-bundle fare search upgrade.
departureTimesarrayCalendar record only: departure times available that day.
flightsAvailableintegerCalendar record only: number of flights that day.
hasMacFlightbooleanCalendar record only: whether a metropolitan-area (MAC) flight is included.
averagePricenumberCalendar record only: mean cheapest daily fare over the 30 day window.
medianPricenumberCalendar record only: median cheapest daily fare over the window.
priceSpreadnumberCalendar record only: highest minus lowest daily fare.
savingsPercentintegerCalendar record only: percent saved by picking the cheapest day versus the most expensive.
operatingDaysOfWeekarrayCalendar record only: days of week the route operates.
deepLinkstringWizz Air booking URL for the exact route and date.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull on success. On a failed run, a single item with a populated error field is written instead.

Example output record

Real price calendar record from a live run (route LTN to WAW, withDetails true). This is the per-route 30 day details record:

{
"origin": "LTN",
"originName": "London Luton",
"destination": "WAW",
"destinationName": "Warsaw Chopin\r\n",
"direction": "outbound",
"recordType": "priceCalendar",
"calendarFrom": "2026-09-15",
"calendarTo": "2026-10-14",
"currency": "GBP",
"cheapestDate": "2026-09-16",
"cheapestPrice": 22.99,
"highestPrice": 60.99,
"averagePrice": 33.06,
"medianPrice": 32.99,
"priceSpread": 38,
"savingsPercent": 62,
"operatingDaysOfWeek": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
"daysWithFlights": 30,
"dailyPrices": [
{ "date": "2026-09-15", "price": 32.99, "flightsAvailable": 2 },
{ "date": "2026-09-16", "price": 22.99, "flightsAvailable": 3 },
{ "date": "2026-09-17", "price": 28.99, "flightsAvailable": 3 }
],
"deepLink": "https://www.wizzair.com/en-gb/booking/select-flight/LTN/WAW/2026-09-16/null/1/0/0/null",
"observedAt": "2026-08-16T01:34: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-09-15","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-09-15","returnDate":"2026-09-22"}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "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 (result event). See the pricing tab for the current per-result price.
  • No charge on failure. If a run errors, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 records per run. Upgrade for a higher maxFlights.
  • Row count. By default each fare bundle is one row, so a flight with several bundles produces several rows. Set collapseFares to true for one row per flight. Price calendar details records also count toward billable results; set withDetails to 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. Where Wizz Air returns detailed pricing, a per-bundle fare search adds the individual fare bundles on top.

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, and estimated savings. Turn withDetails off to skip it.

Why are some flight fields null? Timetable rows (source timetable) carry the schedule and lowest daily fare but not always the flight number, duration, or arrival time. Those fill in when the per-bundle fare search succeeds for that flight.

How do I get the return leg too? Set includeReturn to true, or pass a returnDate. Return-leg rows are tagged direction return.

How do I get one row per flight instead of per bundle? Set collapseFares to true. Each flight becomes a single row with all its bundles in the fareOptions array.

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.