← Alle Beiträge

Wie Travel-Startups Flugpreise verschiedener Airlines aggregieren

Preissuchmaschinen müssen Preise von Dutzenden geschützten Airline-Websites gleichzeitig erfassen. So sieht die Infrastruktur dahinter tatsächlich aus.

Der Vergleich von Reisepreisen ist einer der technisch anspruchsvollsten Use Cases bei der Web-Datenerfassung. Fluggesellschaften und Online-Reisebüros (OTAs) liefern unterschiedliche Preise basierend auf Standort, Browser, Tageszeit und Request-Historie aus. Um einen zuverlässigen Preisaggregator zu bauen, musst du alle diese Herausforderungen gleichzeitig lösen.

Die technische Herausforderung

Preisseiten von Fluggesellschaften gehören zu den am stärksten geschützten Seiten im Web:

  • Strenge Bot-Erkennung. Die meisten großen Fluggesellschaften nutzen Bot-Detection-Dienste von Drittanbietern.
  • Geografische Preisunterschiede. Ein Flug von London nach New York zeigt unterschiedliche Preise, je nachdem, ob du aus Großbritannien, den USA oder Indien suchst.
  • Dynamisches Rendering. Tarifergebnisse laden asynchron nach mehreren API-Aufrufen innerhalb der Seite.
  • Session-Tracking. Preise ändern sich zwischen Seitenaufrufen (das berüchtigte "Der gesuchte Tarif ist nicht mehr verfügbar").

Wie ein Preisaggregator funktioniert

Schritt 1: Suchanfrage

Der Aggregator empfängt eine Suchanfrage (Abflugort, Zielort, Reisedaten, Passagiere) und verteilt sie per Fan-out an mehrere Fluggesellschaften und OTA-Ziele.

Schritt 2: Parallele Datenerfassung

Jedes Ziel erfordert einen eigenen Ansatz:

tasks = [
    # Static API endpoint, fast single request
    {"url": "https://api.airline-a.com/fares?from=LHR&to=JFK&date=2026-04-15", "type": "single"},
    # JavaScript-heavy SPA, needs browser rendering
    {"url": "https://airline-b.com/search?o=LHR&d=JFK&dt=20260415", "type": "browser", 
     "options": {"waitFor": ".fare-results"}},
    # Geo-restricted pricing, needs US proxy
    {"url": "https://ota-site.com/flights/LHR-JFK", "type": "proxy",
     "options": {"proxyCountry": "US"}},
]

Schritt 3: Parsen und normalisieren

Jede Website liefert Daten in einem anderen Format. Der Aggregator normalisiert alles in ein einheitliches Schema: Airline, Flugnummer, Abflug, Ankunft, Preis, Währung, Buchungsklasse.

Schritt 4: Deduplizieren und ranken

Derselbe Flug erscheint auf mehreren Websites zu unterschiedlichen Preisen. Der Aggregator dedupliziert nach Flugnummer und zeigt die günstigste Option für jede Route an.

Warum Data-Collection-APIs hier entscheidend sind

Ohne einen Dienst wie FourA müsste ein Travel-Startup Folgendes leisten:

  • Einen Pool von Residential Proxies in mehreren Ländern betreiben
  • Headless-Browser im großen Maßstab mit Anti-Detection-Patches ausführen
  • Retry-Logik für jedes angetroffene Bot-Detection-System entwickeln
  • IP-Sperren handhaben und Proxy-Pools manuell rotieren

Diese Infrastruktur allein kann mehr kosten als der Rest der gesamten Anwendung. Eine Data-Collection-API abstrahiert all das hinter einem einzigen Endpoint.

Wichtige Überlegungen

  • Geo-Targeting ist essenziell. Airlines bieten je nach Region unterschiedliche Preise an. Nutze die Option proxyCountry, um Preise aus der Perspektive des Reisenden abzufragen.
  • Geschwindigkeit zählt. Flugreisen-Suchen sind zeitkritisch. Nutzer erwarten Ergebnisse in Sekunden. Nutze single-Tasks für API-Endpoints und browser nur dann, wenn es notwendig ist.
  • Compliance ist entscheidend. Halte Rate Limits und Nutzungsbedingungen ein. Einige Fluggesellschaften bieten Affiliate-APIs an, die autorisierten Zugriff auf Tarifdaten gewähren.

Wo fängst du also an?

Wenn du ein Reiseprodukt entwickelst, das Tarifdaten benötigt, decken die FourA-API-Dokumentation und der Leitfaden zur Auswahl von Task-Typen die technischen Details ab.

Die größere Frage ist jedoch architektonischer Natur. Startups, die Tarif-Aggregation erfolgreich umsetzen, wählen nicht einfach nur die richtige API. Sie konzipieren ihre Search-Fanout-, Caching- und Normalisierungs-Layer für die Realität, dass sich jede Airline-Website anders verhält. Der Task-Typ proxy mit Geo-Targeting übernimmt den schwierigsten Teil dieses Puzzles.