Luftfahrzeugabfrage
Ermitteln Sie Typ, Betreiber und Fotos eines Luftfahrzeugs anhand des Kennzeichens (national registrierte Luftfahrzeugkennung, z. B. G-STBC, N12345) oder der ICAO24 (sechsstellige hexadezimale Transponderadresse, die per ADS-B ausgestrahlt wird, z. B. 40621D). Das SkyLink-Luftfahrzeugregister umfasst über 615.000 Datensätze und wird täglich aktualisiert — neue Registrierungen und Halterwechsel können den offiziellen Behördenregistern hinterherhinken.
Nutzen Sie die Kennzeichenabfrage, wenn Ihre UI oder Flugplanzeile bereits ein Kennzeichen enthält. Nutzen Sie die ICAO24-Abfrage, wenn Sie Hex-Codes aus einem Live-ADS-B-Feed erhalten und diese um Typ- und Betreiber-Metadaten anreichern müssen. Nachdem Sie icao_type (vierstelliger Luftfahrzeugtypcode aus Flugplänen, z. B. B738) ermittelt haben, fahren Sie mit Flugzeugleistung fort, um Reisegeschwindigkeit, Reichweite und Wirbelschleppenkategorie abzurufen.
Voraussetzungen
x-api-key bei jeder Anfrage (Direktabonnement). Mehr erfahren →| Endpoint | Einsatzzweck |
|---|---|
GET /aircraft/registration/{registration} | Kennzeichenabfrage für Flugkarten, Flottenseiten oder Fotogalerien |
GET /aircraft/icao24/{icao24} | Live-ADS-B-Hex-Adressen aus Tracker-Feeds anreichern |
GET /aircraft/database/stats | Health Check — prüfen, ob das Register geladen ist, und Datensatzanzahlen einsehen |
Wichtig: Kennzeichen- und ICAO24-Abfragen liefern HTTP 200 mit found: false und aircraft: null, wenn kein Treffer existiert — niemals 404. Prüfen Sie found im JSON-Body; behandeln Sie dies nicht als HTTP-Fehler.
Wichtig: photos ist der Einfachheit halber standardmäßig true, erhöht aber die Latenz. Übergeben Sie photos=false in Listenansichten, Batch-Anreicherungsjobs und Kartenoverlays, in denen keine Vorschaubilder benötigt werden.
Abfrage per Kennzeichen
Fragen Sie ein Luftfahrzeug anhand seines Kennzeichens ab. v3.1 ergänzt das Luftfahrzeugobjekt um die Felder manufacturer_and_model, airline_code, serial_number und is_private_operator.
Anfrage
https://data.skylinkapi.com/v3.1/aircraft/registration/{registration}| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
registration | string | Ja (Pfad) | - | Kennzeichen, z. B. G-STBC, N12345 (2–10 Zeichen) |
photos | boolean | Nein | true | Community-Fotos des Luftfahrzeugs einbeziehen, sofern verfügbar |
Antwort
{
"query": "G-STBC",
"found": true,
"aircraft": {
"registration": "G-STBC",
"icao24": "40621D",
"icao_type": "B77W",
"type_name": "BOEING 777-36NER",
"manufacturer": "Boeing Company",
"manufacturer_and_model": "Boeing Company BOEING 777-36NER",
"owner_operator": "British Airways",
"airline_code": null,
"is_private_operator": false,
"serial_number": "38287",
"year_built": null,
"photos": [
{
"image": "https://image.airport-data.com/aircraft/001912010.jpg",
"link": "https://airport-data.com/aircraft/photo/001912010",
"photographer": "Roberto Cassar"
}
]
}
}| Feld | Typ | Erforderlich | Null? | Beschreibung |
|---|---|---|---|---|
query | string | Ja | Nie | Echo des gesuchten Kennzeichens |
found | boolean | Ja | Nie | Ob ein Treffer im Register existiert |
aircraft | object | null | Nein | Ja | Luftfahrzeugdetails, wenn found true ist; null, wenn nichts gefunden wurde |
Luftfahrzeugobjekt (aircraft)
| Feld | Typ | Erforderlich | Null? | Beschreibung |
|---|---|---|---|---|
registration | string | null | Nein | Ja | Kennzeichen |
icao24 | string | null | Nein | Ja | ICAO-24-Bit-Transponderadresse in Hex (in der Praxis in Großbuchstaben) |
icao_type | string | null | Nein | Ja | ICAO-Luftfahrzeugtypbezeichnung, z. B. B77W |
type_name | string | null | Nein | Ja | Modellbezeichnung, z. B. BOEING 777-36NER |
manufacturer | string | null | Nein | Ja | Name des Herstellers |
manufacturer_and_model | string | null | Nein | Ja | Kombinierte Zeichenkette aus Hersteller + Modell |
owner_operator | string | null | Nein | Ja | Eingetragener Halter oder Betreiber |
airline_code | string | null | Nein | Ja | Airline-Code des Betreibers, sofern bekannt |
is_private_operator | boolean | null | Nein | Ja | true bei privaten Betreibern |
serial_number | string | null | Nein | Ja | Seriennummer des Herstellers |
year_built | string | null | Nein | Ja | Baujahr |
photos | array | Nein | Nie | Vorhanden bei photos=true; kann [] sein, wenn keine Fotos existieren |
Fotoeintrag (aircraft.photos[])
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
image | string | Ja | URL des Fotos in voller Größe |
link | string | Ja | URL der externen Fotoseite, sofern angegeben |
photographer | string | Ja | Fotografennachweis |
Your SkyLink licence key, for keys bought direct from skylinkapi.com.
In: header
Path Parameters
Aircraft registration (e.g. N12345, G-STBC)
2 <= length <= 10Query Parameters
Include aircraft photos from airport-data.com
trueResponse Body
application/json
application/json
curl -X GET "https://data.skylinkapi.com/v3.1/aircraft/registration/N12345"{
"query": "G-STBC",
"found": true,
"country": "United Kingdom",
"country_code": "GB",
"aircraft": {
"registration": "G-STBC",
"icao24": "40621d",
"icao_type": "B77W",
"type_name": "777-36N",
"manufacturer": "Boeing",
"manufacturer_and_model": "Boeing 777-36N",
"owner_operator": "British Airways",
"airline_code": "BAW",
"is_private_operator": false,
"serial_number": "38695",
"year_built": "2013",
"photos": [
{
"image": "https://image.airport-data.com/aircraft/001912010.jpg",
"link": "https://airport-data.com/aircraft/photo/001912010.html",
"photographer": "Roberto Cassar"
}
]
}
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}Abfrage per ICAO24
Fragen Sie ein Luftfahrzeug anhand seiner hexadezimalen ICAO24-Transponderadresse ab — derselben Kennung, die per ADS-B ausgestrahlt wird (z. B. 40621D). Liefert dieselbe Struktur des aircraft-Objekts wie die Kennzeichenabfrage.
Anfrage
https://data.skylinkapi.com/v3.1/aircraft/icao24/{icao24}| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
icao24 | string | Ja (Pfad) | - | Sechsstellige ICAO-24-Bit-Hex-Adresse (ohne Beachtung der Groß-/Kleinschreibung), z. B. 40621D. Ergänzen Sie führende Nullen, wenn Ihre ADS-B-Quelle sie weglässt |
photos | boolean | Nein | true | Community-Fotos des Luftfahrzeugs einbeziehen, sofern verfügbar |
Antwort
Gleiche Antwortstruktur wie bei der Kennzeichenabfrage. query enthält das Echo der ICAO24-Adresse.
Your SkyLink licence key, for keys bought direct from skylinkapi.com.
In: header
Path Parameters
ICAO24 hex address (e.g. 40621D)
4 <= length <= 6Query Parameters
Include aircraft photos from airport-data.com
trueResponse Body
application/json
application/json
curl -X GET "https://data.skylinkapi.com/v3.1/aircraft/icao24/a835af"{
"query": "40621D",
"found": true,
"country": "United Kingdom",
"country_code": "GB",
"aircraft": {
"registration": "G-STBC",
"icao24": "40621d",
"icao_type": "B77W",
"type_name": "777-36N",
"manufacturer": "Boeing",
"manufacturer_and_model": "Boeing 777-36N",
"owner_operator": "British Airways",
"airline_code": "BAW",
"is_private_operator": false,
"serial_number": "38695",
"year_built": "2013",
"photos": [
{
"image": "https://image.airport-data.com/aircraft/001912010.jpg",
"link": "https://airport-data.com/aircraft/photo/001912010.html",
"photographer": "Roberto Cassar"
}
]
}
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}Datenbankstatistik
Liefert Datensatzanzahlen und Ladestatus des In-Memory-Luftfahrzeugregisters. Keine Parameter erforderlich — nützlich für Health Checks beim Start und für Monitoring-Dashboards.
Anfrage
https://data.skylinkapi.com/v3.1/aircraft/database/statsKeine Query- oder Pfadparameter.
Antwort
{
"loaded": true,
"total_icao_entries": 612678,
"total_registration_entries": 608905,
"source_url": "https://api.skylinkapi.com/internal/aircraft.json"
}| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
loaded | boolean | Ja | Ob das Register vollständig geladen ist |
total_icao_entries | integer | Ja | Nach ICAO24 indizierte Datensätze |
total_registration_entries | integer | Ja | Nach Kennzeichen indizierte Datensätze |
source_url | string | Ja | Von der API zurückgegebene, opake Referenz-URL des Datensatzes |
Your SkyLink licence key, for keys bought direct from skylinkapi.com.
In: header
Response Body
application/json
curl -X GET "https://data.skylinkapi.com/v3.1/aircraft/database/stats"{
"loaded": true,
"total_icao_entries": 615656,
"total_registration_entries": 613252,
"source_url": "http://10.0.1.15:8090/aircraft.json"
}Client-Typen
"""Aircraft lookup response models for /aircraft/registration and /aircraft/icao24."""from __future__ import annotationsfrom dataclasses import dataclass@dataclassclass AircraftPhoto: image: str link: str photographer: str@dataclassclass AircraftDetails: registration: str | None icao24: str | None icao_type: str | None type_name: str | None manufacturer: str | None manufacturer_and_model: str | None owner_operator: str | None airline_code: str | None is_private_operator: bool | None serial_number: str | None year_built: str | None photos: list[AircraftPhoto]@dataclassclass AircraftLookupResponse: query: str found: bool aircraft: AircraftDetails | None@dataclassclass AircraftDatabaseStats: loaded: bool total_icao_entries: int total_registration_entries: int source_url: str@dataclassclass AircraftSummary: """Compact model for UI cards.""" registration: str | None icao24: str | None icao_type: str | None display_name: str operator: str | None photo_url: str | NoneIntegration
Lösen Sie ein Kennzeichen in eine kompakte Luftfahrzeugkarte für Flugverfolgung oder Flottenanzeigen auf.
Das folgende Beispiel speichert erfolgreiche Abfragen 24 Stunden lang im Cache, da sich Registermetadaten selten ändern. Jede Anfrage verwendet explizite Timeouts (10 s Verbindungsaufbau / 15 s Lesen), damit ein langsamer Upstream-Aufruf Ihren Worker nicht blockieren kann. Der Helper normalisiert die Antwort in ein UI-freundliches Modell und behandelt found: false, ohne es als HTTP-Fehler zu werten.
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]] = {}AIRCRAFT_TTL = 86_400 # 24 h@dataclassclass AircraftSummary: registration: str | None icao24: str | None icao_type: str | None display_name: str operator: str | None photo_url: str | Nonedef fetch_aircraft_by_registration(registration: str, *, photos: bool = False) -> dict | None: """Look up aircraft by tail number. Returns None when found=false.""" reg = registration.strip().upper() key = f"aircraft:reg:{reg}:{photos}" cached = CACHE.get(key) if cached and time.time() < cached[1]: return cached[0] try: r = requests.get( f"{BASE}/aircraft/registration/{reg}", headers=HEADERS, params={"photos": photos}, timeout=(10, 15), ) except requests.Timeout as exc: raise RuntimeError(f"SkyLink timeout fetching aircraft {reg}") from exc r.raise_for_status() payload = r.json() if not payload.get("found"): return None CACHE[key] = (payload, time.time() + AIRCRAFT_TTL) return payloaddef aircraft_summary(registration: str) -> AircraftSummary | None: payload = fetch_aircraft_by_registration(registration, photos=True) if not payload: return None ac = payload["aircraft"] photos = ac.get("photos") or [] return AircraftSummary( registration=ac.get("registration"), icao24=ac.get("icao24"), icao_type=ac.get("icao_type"), display_name=ac.get("type_name") or ac.get("manufacturer_and_model") or registration, operator=ac.get("owner_operator"), photo_url=photos[0]["image"] if photos else None, )if __name__ == "__main__": import json from dataclasses import asdict summary = aircraft_summary("N636JB") print(json.dumps(asdict(summary), indent=2) if summary else "Aircraft not found")Hinweise zur Implementierung
Foto-Schalter. Der Standardwert photos=true ist für Galerien praktisch, aber langsamer. Übergeben Sie photos=false in Listenansichten und Batch-Anreicherungsjobs.
Verkettung mit Leistungsdaten. Wenn icao_type vorhanden ist, rufen Sie Flugzeugleistung für Reisegeschwindigkeit, Reichweite und Wirbelschleppenkategorie auf.
ADS-B-Anreicherung. Bevorzugen Sie für Live-Tracks die ICAO24-Abfrage, nachdem Sie Hex-Codes von ADS-B erhalten haben.
Fehlerantworten
Informationen zu plattformweiten Fehlern (Authentifizierung, Rate Limits, Serverfehler) finden Sie unter Fehlerbehandlung. Endpoint-spezifisches Verhalten:
200 — Luftfahrzeug nicht gefunden (Kennzeichen / ICAO24)
{
"query": "ZZZZNOT",
"found": false,
"aircraft": null
}Behandeln Sie found: false als normales leeres Ergebnis — wiederholen Sie die Anfrage nicht.
422 — ungültiges Kennzeichen oder ungültige ICAO24
{
"detail": [
{
"type": "string_too_short",
"loc": ["path", "registration"],
"msg": "String should have at least 2 characters"
}
]
}Tritt auf, wenn der Pfadparameter zu kurz ist oder die Validierung nicht besteht.
Siehe auch: Flugzeugleistung · ADS-B · Historische ADS-B-Positionen