maviapi
Live JSON from sites with no API (Booking, Airbnb, Tripadvisor…), plus agent-built APIs for any site
Beschreibung vom Entwickler (englisches Original)
Search Wizz Air flights from your AI agent. Unofficial.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"flywizz": {
"command": "uvx",
"args": [
"Flywizz"
]
}
}
}Führe das in deinem Terminal aus
claude mcp add flywizz -- uvx FlywizzIn .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"flywizz": {
"command": "uvx",
"args": [
"Flywizz"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"flywizz": {
"type": "stdio",
"command": "uvx",
"args": [
"Flywizz"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 8. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto victorlane bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.1.0) kam vor 2 Monaten in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.
In derselben Kategorie: maviapi, GeoTok Trips, ViaFrei
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Live JSON from sites with no API (Booking, Airbnb, Tripadvisor…), plus agent-built APIs for any site
Plan trips: flights, hotels, transfers, sights and food spots from TikTok food videos.
The German Real-Time Mobility Context Platform for AI: traffic, trains, charging, parking, weather.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
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.
pip install Flywizz
Or using uv:
uv add Flywizz
from datetime import datetime, timedelta
from flywizz import WizzAir, TimetableSearch
client = WizzAir()
search = TimetableSearch( origin="BUD", # Budapest destination="LTN", # London Luton date_from=datetime.now() + timedelta(days=30), date_to=datetime.now() + timedelta(days=60), )
for day in client.get_timetable(search): if day.price is None: continue print(f"{day.departure_date.date()}: {day.price.amount} {day.price.currency}") print(f" departures: {', '.join(d.departure.strftime('%H:%M') for d in day.departures)}")
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:
for day in client.get_timetable(search):
if day.price is not None: print(day.departure_date.date(), day.price.amount, day.price.currency) elif day.original_price is not None: print(day.departure_date.date(), "~", day.original_price.amount, "(check 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.
from flywizz.misc import (
MAX_TIMETABLE_WINDOW_DAYS, # 42, for timetableV2 and farechart MAX_FLIGHT_DATES_WINDOW_DAYS, # 62, for the schedule endpoints )
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:
from flywizz import WizzAir, WizzairTransport
client = WizzAir(WizzairTransport(kasada_headers={ "x-kpsdk-ct": "...", "x-kpsdk-v": "...", "x-kpsdk-h": "...", "x-kpsdk-cd": "...", }))
Full details of the gate, the session handshake, and the whole route table are in docs/internal-api-spec.md.
WizzAir(transport: Optional[Transport] = None)
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:
# Defaults
client = WizzAir()
from flywizz import CachingTransport, WizzairTransport client = WizzAir(CachingTransport(WizzairTransport(), ttl=3600))
| 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.
TimetableSearch(
origin: str, destination: str, date_from: datetime, date_to: datetime, return_date_from: Optional[datetime] = None, return_date_to: Optional[datetime] = None, adults: int = 1, children: int = 0, infants: int = 0, price_type: str = "regular", )
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.
FareChartSearch(
origin: str, destination: str, date: datetime, day_interval: int = 3, adults: int = 1, children: int = 0, infants: int = 0, price_type: str = "regular", )
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.
AvailabilitySearch(
origin: str, destination: str, departure_date: datetime, return_date: Optional[datetime] = None, wdc: bool = True, is_flight_change: bool = False, adults: int = 1, children: int = 0, infants: int = 0, )
Represents a money amount as Wizz Air reports it.
Attributes:
amount (float): The amountcurrency (str): ISO 4217 code, always the departure station's currencyexchanged_amount (Optional[float]): The SPA's client-side conversion hook. Stays None for anonymous sessionsexchanged_currency (Optional[str]): Currency of exchanged_amountOne operating day for a route, with its cheapest fare.
Attributes:
departure_station (str), arrival_station (str): IATA codesdeparture_date (datetime): The operating dayprice (Optional[Price]): Cheapest fare that day, None if sold outoriginal_price (Optional[Price]): Pre-discount pricedepartures (list[Departure]): Every departure that dayprice_type (Optional[str]): "price" when there was inventoryhas_mac_flight (bool): The route includes a metropolitan-area alternativeapplied_coupon_code (Optional[str])Attributes:
departure (datetime): Departure timeis_cheapest_of_the_day (bool): This is the departure price refers toOne operating day from get_connecting_flight_dates().
Attributes:
date (datetime): The operating daystops (int): 0 for a direct flight, 1 or more for a connectionis_direct (bool): Property, true when stops is 0One day of the price strip.
Attributes:
departure_station (str), arrival_station (str): IATA codesday (datetime): The dayprice (Optional[Price]): Cheapest price that dayclass_of_service (Optional[str]): Booking class the quote came fromprice_type (Optional[str]), has_mac_flight (bool)An airport in Wizz Air's live network. Returned by the explore methods.
Attributes:
iata (str): IATA station codename (str): Station namecountry_code (str): Uppercase ISO2 country code (e.g. "HU", "GB")country_name (str): Country namecurrency_code (str): Local cuNur der Anfang wird gezeigt; den Rest findest du im Repo