Search Wizz Air flights from your AI agent. Unofficial.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
An open-source unofficial API wrapper to get flight data from Wizz Air.
[!TIP] MCP server for AI agents included. Plug Flywizz into Claude Desktop, Claude Code, or Cursor and search Wizz Air flights in natural language. Jump to the MCP Quickstart.
Or using uv:
Each entry is one operating day: the cheapest fare that day, plus every departure time, so a single call answers both "when does it fly" and "what does it cost".
Wizz Air has no server-side currency override. BUD -> LTN quotes in HUF,
LTN -> BUD quotes in GBP, WAW -> LTN in PLN. Body fields, query params,
cookies and headers named currency are all ignored.
Read Station.currency_code from get_network() if you need to know which
currency you'll get before you search, and convert client-side.
timetableV2 and farechart attach a price object to every day, but on days
they will not quote inline, the amount is 0 and price_type is either
checkPrice (a fare exists, but only through search/search) or noData.
Flywizz maps both to price=None, so an unpriced day is never mistaken for a
free one. Timetable entries still expose the indicative fare through
original_price:
Priced and unpriced surfaces disagree about how far ahead you may look. Both
reject a wider window with 400 InvalidTimeDateRange and no further
explanation, so Flywizz enforces each limit itself, in a message that names it.
cheapest_weekend() splits the range internally, since its default of
months_ahead=3 far exceeds either cap.
search/search is behind a bot gateFour endpoints (search/search, booking/seatmap, booking/ancillaries,
booking/passengers) sit behind Kasada and answer 429 with an empty body
from any non-browser client. Flywizz raises BotGateError rather than trying
to solve the challenge.
Everything else, including the priced timetableV2 and farechart surfaces,
is open. That is enough for price tracking, route exploration and calendar
search. If you need fare bundles and sell keys, drive a real browser session
and pass its headers in:
Full details of the gate, the session handshake, and the whole route table are
in docs/internal-api-spec.md.
Creates a new Wizz Air client instance.
Parameters:
transport (Transport, optional): Inject a custom transport, e.g. a
CachingTransport wrapping the default, a WizzairTransport with
kasada_headers, or a fixture transport for tests. Defaults to a fresh
WizzairTransport.Example:
| Method | Endpoint | What it gives you |
|---|---|---|
get_network(language="en-gb") | asset/map | Every station, its coordinates, currency, and connections |
get_destinations(origin, direct_only=True) | derived | Stations reachable from origin |
explore_by_country(origin) | derived | Destinations grouped by country code |
validate_route(origin, destination) | derived | Does Wizz Air fly this route direct |
get_flight_dates(origin, destination, date_from, date_to) | search/flightDates | Operating days, no prices, very cheap |
get_flight_dates_multi(origin, destinations, date_from, date_to) | search/FlightDatesMultiArrival | Operating days for up to 5 destinations per request, batched |
get_connecting_flight_dates(origin, destination, date_from, date_to) | search/dohopFlightDates | Operating days including one-stop connections |
get_timetable(params) | search/timetableV2 | Cheapest fare per day, plus every departure |
get_return_timetable(params) | search/timetableV2 | Outbound and inbound in one call |
get_fare_chart(params) | asset/farechart | Price strip around a target date |
get_availability(params) | search/search | Fare bundles and sell keys. Bot-gated |
cheapest_in_month(origin, destination, month) | derived | Cheapest day in a calendar month |
cheapest_weekend(origin, destination, months_ahead=3) | derived | Cheapest Fri-Sun or Fri-Mon return |
explore_with_fares(origin, date_from, date_to, limit=None) | derived | Every destination with its cheapest fare |
get_flight_status(carrier_code, flight_number, date=None) | asset/flightinformation | Live status for one flight number |
get_currencies() | asset/currencies | Supported ISO 4217 codes |
get_countries() | asset/country | Countries with EU / Schengen flags |
get_cultures() | asset/cultures | Site languages and their currencies |
get_service_fees(currencies=None) | asset/serviceFees | Published baggage, seat and change fees |
get_wdc_prices() | asset/wdcPrice | Discount Club tiers and minimum discounts |
Every method exists on AsyncWizzAir with the same signature.
Parameters for a timetable search.
Parameters:
origin (str): IATA code of the departure station (e.g. "BUD")destination (str): IATA code of the arrival station (e.g. "LTN")date_from (datetime): Start of the outbound departure windowdate_to (datetime): End of the outbound departure windowreturn_date_from / return_date_to (datetime, optional): Inbound window.
Both are required by get_return_timetable()adults / children / infants (int): Passenger counts. At least one adultprice_type (str): "regular" or "wdc" for Wizz Discount Club pricingParameters for the price strip.
day_interval is the half-window around date and must be at least 3, so the
default returns seven days. Smaller values are rejected upstream with
DayIntervalMustBeGreaterOrEqualTo3.
Parameters for the bot-gated availability call.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/flywizz)<a href="https://allmcps.com/mcp/flywizz"><img src="https://allmcps.com/api/badge/flywizz?style=directory" alt="Flywizz on AllMCPs" /></a>