Fluggesellschaften
Fragen Sie eine Fluggesellschaft anhand des ICAO-Airline-Codes (3-Buchstaben-Kennung, z. B. BAW für British Airways) oder des IATA-Airline-Codes (2-Buchstaben-Code für Passagiere, z. B. BA) ab. Die Antwort enthält den Namen der Fluggesellschaft, das Telefonie-Rufzeichen (im Funkverkehr mit der Flugsicherung verwendetes Rufzeichen, z. B. SPEEDBIRD), das Land, den Aktivitätsstatus und, sofern verfügbar, eine von SkyLink gehostete Logo-URL. Verwenden Sie diesen Endpoint, um Zeilen von Flugplänen und Karten zum Flugstatus anzureichern.
Geben Sie genau einen Code an (icao oder iata). Werden beide gesendet, wird 400 zurückgegeben.
Wichtig: Unbekannte Codes geben HTTP 200 mit einem leeren Array [] zurück — nicht 404. Planen Sie in Ihrer Benutzeroberfläche einen Platzhalter für eine fehlende Fluggesellschaft ein, keinen Fehlerzustand.
Anfrage
Voraussetzungen
x-api-key bei jeder Anfrage (Direktabonnement). Mehr erfahren →https://data.skylinkapi.com/v3.1/airlines/search| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
icao | string | Einer von icao / iata | - | ICAO-Airline-Code (3 Buchstaben), z. B. AAL |
iata | string | Einer von icao / iata | - | IATA-Airline-Code (2 Buchstaben), z. B. AA |
Antwort
Der Endpoint gibt ein Array passender Fluggesellschaften zurück (bei einem gültigen Code in der Regel ein Element).
[
{
"id": 24,
"name": "American Airlines",
"alias": null,
"iata": "AA",
"icao": "AAL",
"callsign": "AMERICAN",
"country": "United States",
"active": "Y",
"logo": "https://media.skylinkapi.com/logos/AA.png"
}
]Airline-Objekt
| Feld | Typ | Erforderlich | Null? | Beschreibung |
|---|---|---|---|---|
id | integer | Ja | Nie | Numerische Kennung des Datensatzes |
name | string | Ja | Nie | Name der Fluggesellschaft |
alias | string | null | Nein | Ja | Alternativer Name, sofern vorhanden |
iata | string | null | Nein | Ja | IATA-Code (2 Buchstaben) |
icao | string | null | Nein | Ja | ICAO-Code (3 Buchstaben) |
callsign | string | null | Nein | Ja | ICAO-Telefonie-Kennung |
country | string | null | Nein | Ja | Name des Landes auf Englisch |
active | string | Ja | Nie | Y für aktiv, N für inaktiv/aufgelöst |
logo | string | null | Nein | Ja | Von SkyLink gehostete Logo-URL, sofern verfügbar |
Verhalten bei fehlenden Treffern
| HTTP-Status | Body | Bedeutung |
|---|---|---|
200 | [] | Keine passende Fluggesellschaft — Platzhalter anzeigen |
400 | detail-String | Code fehlt oder beide Codes gesendet |
Client-Typen
"""Airline lookup response models for /airlines/search."""from __future__ import annotationsfrom dataclasses import dataclass@dataclassclass AirlineLookupRequest: """Query input for GET /airlines/search - provide one code.""" icao: str | None = None iata: str | None = None@dataclassclass AirlineRecord: id: int name: str alias: str | None iata: str | None icao: str | None callsign: str | None country: str | None active: str logo: str | None@dataclassclass AirlineSummary: """Shape returned by airline_summary() helper.""" icao: str | None iata: str | None name: str callsign: str | None country: str | None is_active: bool logo: str | NoneIntegration
Lösen Sie eine Fluggesellschaft per ICAO-Code auf und bilden Sie sie für Flugplananzeigen auf ein kompaktes UI-Modell ab.
Das folgende Beispiel cacht Abfragen zu Fluggesellschaften 24 Stunden lang und verwendet explizite Timeouts, damit ein langsamer Upstream-Aufruf Ihren API-Worker nicht blockieren kann.
import osimport timefrom dataclasses import dataclassimport requestsHEADERS = { "x-api-key": os.getenv("SKYLINK_API_KEY", "YOUR_API_KEY")}BASE = "https://data.skylinkapi.com/v3.1"CACHE: dict[str, tuple[dict, float]] = {}AIRLINE_TTL = 86_400 # 24 h@dataclassclass AirlineSummary: icao: str | None iata: str | None name: str callsign: str | None country: str | None is_active: bool logo: str | Nonedef fetch_airline(*, icao: str | None = None, iata: str | None = None) -> dict | None: if bool(icao) == bool(iata): raise ValueError("Provide exactly one of icao or iata") code = (icao or iata or "").upper() key = f"airline:{icao or ''}:{iata or ''}" cached = CACHE.get(key) if cached and time.time() < cached[1]: return cached[0] params = {"icao": code} if icao else {"iata": code} try: r = requests.get(f"{BASE}/airlines/search", headers=HEADERS, params=params, timeout=(10, 15)) except requests.Timeout as exc: raise RuntimeError(f"SkyLink timeout fetching airline {code}") from exc if r.status_code == 404: return None r.raise_for_status() items = r.json() if not items: return None airline = items[0] CACHE[key] = (airline, time.time() + AIRLINE_TTL) return airlinedef airline_summary(icao: str) -> AirlineSummary | None: airline = fetch_airline(icao=icao) if not airline: return None return AirlineSummary( icao=airline.get("icao"), iata=airline.get("iata"), name=airline["name"], callsign=airline.get("callsign"), country=airline.get("country"), is_active=airline.get("active") == "Y", logo=airline.get("logo"), )if __name__ == "__main__": import json from dataclasses import asdict summary = airline_summary("AAL") print(json.dumps(asdict(summary), indent=2) if summary else "Airline not found")Hinweise zur Implementierung
Inaktive Fluggesellschaften. Filtern Sie active: "N" heraus, sofern Ihre Funktion keine historischen Flüge benötigt.
Logo-Fallback. Behandeln Sie logo: null immer mit einem lokalen Platzhalter-Asset.
Bevorzugter Code. ICAO ist für operative Systeme stabiler; IATA eignet sich besser für Beschriftungen, die sich an Passagiere richten.
Fehlerantworten
Gemeinsame Plattformfehler finden Sie unter Fehlerbehandlung. Endpoint-spezifisch:
400 - fehlender Abfragecode
{
"detail": "Either ICAO or IATA code must be provided"
}400 - beide Codes angegeben
{
"detail": "Provide either ICAO or IATA, not both"
}Your SkyLink licence key, for keys bought direct from skylinkapi.com.
In: header
Query Parameters
3-letter ICAO airline code
2-letter IATA airline code
Response Body
application/json
application/json
curl -X GET "https://data.skylinkapi.com/v3.1/airlines/search"[
{
"id": 1355,
"name": "British Airways",
"iata": "BA",
"icao": "BAW",
"callsign": "SPEEDBIRD",
"country": "United Kingdom",
"active": "Y",
"logo": "https://media.skylinkapi.com/logos/BA.png"
}
]{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}Siehe auch: Flugpläne · Flugstatus · Flughäfen