Save up to 17% with yearly billing

See pricing

Fehlerbehandlung

Caching und Monitoring: Caching & Monitoring.

Plattformfehler (401, 403, 422, 429, 5xx, Wiederholungsversuche/Backoff, Rate-Limit-Header): Fehlerbehandlung.

Leere Ergebnisse sind keine Fehler

count: 0 mit flights: [] ist eine gültige Antwort. Sie bedeutet, dass für die angefragte Reiseroute an diesem Datum keine Plätze gefunden wurden — kein Client-Bug und kein Serverausfall. Zeigen Sie in der UI einen Zustand „keine Verfügbarkeit“ statt eines Fehlerbanners an.

{
  "origin": "JFK",
  "destination": "LAX",
  "date": "2026-08-14",
  "passengers": 1,
  "count": 0,
  "flights": []
}
StatusBedeutungReaktion der UI
200 mit count > 0Ergebnisse verfügbarFlugliste anzeigen
200 mit count: 0Keine Verfügbarkeit„Keine Flüge für diese Route und dieses Datum gefunden.“ anzeigen
422Ungültige ParameterAnfrage korrigieren — nicht an Passagiere weitergeben
429Rate Limit überschrittenBackoff und erneuter Versuch — siehe Retry-Hilfsfunktion

Nur IATA-Codes

Dieser Endpoint akzeptiert dreistellige IATA-Codes (JFK, LAX, LHR) — keine ICAO-Codes. Die Übergabe eines vierstelligen ICAO-Codes (KJFK) liefert einen 422. Lösen Sie Codes zuerst mit der Flughafensuche auf.

422 — Validierungsfehler

Wird zurückgegeben, wenn origin oder destination fehlen, leer sind oder die Prüfung des IATA-Formats nicht bestehen.

FeldHäufige Ursache
originFehlt, ist leer, oder es wurde ein vierstelliger ICAO-Code statt eines IATA-Codes übergeben
destinationWie oben
passengersWert außerhalb des Bereichs 1–9

Preise sind Richtwerte

Angebote spiegeln eine Momentaufnahme des Marktes zum Zeitpunkt der Suche wider, nicht das Live-Inventar der Fluggesellschaften. Angezeigte Plätze können zwischen Suche und Buchung ausverkauft sein oder sich im Preis ändern. Weisen Sie Passagiere darauf hin — in jeder UI, die Preise anzeigt (zum Beispiel: „Preise können sich bei der Buchung ändern“).

import os
import requests

HEADERS = {
    "X-RapidAPI-Key": os.getenv("RAPIDAPI_KEY", "YOUR_RAPIDAPI_KEY"),
    "X-RapidAPI-Host": "skylink-api.p.rapidapi.com",
}
BASE = "https://skylink-api.p.rapidapi.com"


def search_tickets(
    origin: str,
    destination: str,
    date: str | None = None,
    passengers: int = 1,
) -> dict:
    """
    Search tickets. Returns the full response dict including count and flights.
    Raises ValueError on 422. Returns count:0/flights:[] for no availability.
    """
    params: dict[str, str | int] = {
        "origin": origin,
        "destination": destination,
        "passengers": passengers,
    }
    if date:
        params["date"] = date

    r = requests.get(
        f"{BASE}/tickets/search",
        headers=HEADERS,
        params=params,
        timeout=(10, 15),
    )
    if r.status_code == 422:
        detail = r.json().get("detail", "validation error")
        raise ValueError(f"422 Unprocessable: {detail}")
    r.raise_for_status()
    return r.json()


def display_results(data: dict) -> None:
    flights = data.get("flights", [])
    origin = data.get("origin", "?")
    dest = data.get("destination", "?")

    if not flights:
        # count:0 is valid — show a user-friendly empty state
        print(f"No flights found for {origin} → {dest} on {data.get('date', '?')}.")
        print("Try a different date or check nearby airports.")
        return

    cheapest = flights[0]
    price = cheapest.get("price_usd", 0.0)
    duration = cheapest.get("total_duration_min", 0)
    stops = cheapest.get("stops", 0)

    print(
        f"{origin} → {dest}  ·  {len(flights)} option(s)  ·  "
        f"from ${price:.2f}  ·  {duration // 60}h {duration % 60:02d}m  ·  "
        f"{'Nonstop' if stops == 0 else f'{stops} stop(s)'}"
    )
    print("Prices may change at booking.")


if __name__ == "__main__":
    data = search_tickets("JFK", "LAX")
    display_results(data)

    try:
        search_tickets("KJFK", "KLAX")
    except ValueError as exc:
        print(f"Caught expected error: {exc}")

Für vorübergehende Fehler (429, 5xx) verwenden Sie die Retry-Hilfsfunktion unter Fehlerbehandlung.


Siehe auch: Flugtickets · Flughafensuche · Caching & Monitoring · Fehlerbehandlung