Save up to 17% with yearly billing

See pricing

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

Auth
x-api-key bei jeder Anfrage (Direktabonnement). Mehr erfahren →
EndpointEinsatzzweck
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/statsHealth 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

GEThttps://data.skylinkapi.com/v3.1/aircraft/registration/{registration}
ParameterTypErforderlichStandardBeschreibung
registrationstringJa (Pfad)-Kennzeichen, z. B. G-STBC, N12345 (2–10 Zeichen)
photosbooleanNeintrueCommunity-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"
      }
    ]
  }
}
FeldTypErforderlichNull?Beschreibung
querystringJaNieEcho des gesuchten Kennzeichens
foundbooleanJaNieOb ein Treffer im Register existiert
aircraftobject | nullNeinJaLuftfahrzeugdetails, wenn found true ist; null, wenn nichts gefunden wurde

Luftfahrzeugobjekt (aircraft)

FeldTypErforderlichNull?Beschreibung
registrationstring | nullNeinJaKennzeichen
icao24string | nullNeinJaICAO-24-Bit-Transponderadresse in Hex (in der Praxis in Großbuchstaben)
icao_typestring | nullNeinJaICAO-Luftfahrzeugtypbezeichnung, z. B. B77W
type_namestring | nullNeinJaModellbezeichnung, z. B. BOEING 777-36NER
manufacturerstring | nullNeinJaName des Herstellers
manufacturer_and_modelstring | nullNeinJaKombinierte Zeichenkette aus Hersteller + Modell
owner_operatorstring | nullNeinJaEingetragener Halter oder Betreiber
airline_codestring | nullNeinJaAirline-Code des Betreibers, sofern bekannt
is_private_operatorboolean | nullNeinJatrue bei privaten Betreibern
serial_numberstring | nullNeinJaSeriennummer des Herstellers
year_builtstring | nullNeinJaBaujahr
photosarrayNeinNieVorhanden bei photos=true; kann [] sein, wenn keine Fotos existieren

Fotoeintrag (aircraft.photos[])

FeldTypErforderlichBeschreibung
imagestringJaURL des Fotos in voller Größe
linkstringJaURL der externen Fotoseite, sofern angegeben
photographerstringJaFotografennachweis
GET
/aircraft/registration/{registration}
x-api-key<token>

Your SkyLink licence key, for keys bought direct from skylinkapi.com.

In: header

Path Parameters

registration*Registration

Aircraft registration (e.g. N12345, G-STBC)

Length2 <= length <= 10

Query Parameters

photos?Photos

Include aircraft photos from airport-data.com

Defaulttrue

Response 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

GEThttps://data.skylinkapi.com/v3.1/aircraft/icao24/{icao24}
ParameterTypErforderlichStandardBeschreibung
icao24stringJa (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
photosbooleanNeintrueCommunity-Fotos des Luftfahrzeugs einbeziehen, sofern verfügbar

Antwort

Gleiche Antwortstruktur wie bei der Kennzeichenabfrage. query enthält das Echo der ICAO24-Adresse.

GET
/aircraft/icao24/{icao24}
x-api-key<token>

Your SkyLink licence key, for keys bought direct from skylinkapi.com.

In: header

Path Parameters

icao24*Icao24

ICAO24 hex address (e.g. 40621D)

Length4 <= length <= 6

Query Parameters

photos?Photos

Include aircraft photos from airport-data.com

Defaulttrue

Response 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

GEThttps://data.skylinkapi.com/v3.1/aircraft/database/stats

Keine Query- oder Pfadparameter.

Antwort

{
  "loaded": true,
  "total_icao_entries": 612678,
  "total_registration_entries": 608905,
  "source_url": "https://api.skylinkapi.com/internal/aircraft.json"
}
FeldTypErforderlichBeschreibung
loadedbooleanJaOb das Register vollständig geladen ist
total_icao_entriesintegerJaNach ICAO24 indizierte Datensätze
total_registration_entriesintegerJaNach Kennzeichen indizierte Datensätze
source_urlstringJaVon der API zurückgegebene, opake Referenz-URL des Datensatzes
GET
/aircraft/database/stats
x-api-key<token>

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 | None

Integration

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