# Flughäfen

Detaillierte Flughafendaten per ICAO- oder IATA-Code – Start- und Landebahnen, Funkfrequenzen und Funknavigationsanlagen in der Nähe.



Rufen Sie vollständige Flughafendetails per **ICAO** (vierstellige Ortskennung, weltweit eindeutig) oder **IATA** (dreistelliger Passagiercode — nicht immer eindeutig) ab. Die Antwort enthält Start- und Landebahnen, Funkfrequenzen, Funknavigationsanlagen in der Nähe ([VOR](https://en.wikipedia.org/wiki/VHF_omnidirectional_range), [NDB](https://en.wikipedia.org/wiki/Non-directional_beacon), [ILS](https://en.wikipedia.org/wiki/Instrument_landing_system) und ähnliche Funknavigationshilfen) sowie aufgelöste Länder- und Regionsobjekte. Rufen Sie diesen Endpoint auf, nachdem der Nutzer einen Flughafen aus den [Suchergebnissen](/docs/v31/airport-search#search-by-text) ausgewählt hat, oder wenn Sie bereits einen Code haben und Anlagendaten für Briefing-Ansichten, Bahnanalysen oder Kartenmarkierungen benötigen.

Geben Sie als Query-Parameter **entweder** `icao` **oder** `iata` an — niemals beide.

## Anfrage [#request]

<DocRequirements>
  <DocRequirementAuth />
</DocRequirements>

<DocApiPath method="GET" path="/airports/search" />

| Parameter | Typ    | Erforderlich              | Standard | Beschreibung                          |
| --------- | ------ | ------------------------- | -------- | ------------------------------------- |
| `icao`    | string | Eines von `icao` / `iata` | -        | Vierstelliger ICAO-Code, z. B. `KJFK` |
| `iata`    | string | Eines von `icao` / `iata` | -        | Dreistelliger IATA-Code, z. B. `JFK`  |

## Antwort [#response]

Die API liefert ein einzelnes Flughafenobjekt (nicht in eine Liste eingebettet).

```json
{
  "id": 3622,
  "ident": "KJFK",
  "type": "large_airport",
  "name": "John F. Kennedy International Airport",
  "latitude_deg": 40.639447,
  "longitude_deg": -73.779317,
  "elevation_ft": 13.0,
  "municipality": "New York",
  "iso_country": "US",
  "iso_region": "US-NY",
  "icao_code": "KJFK",
  "iata_code": "JFK",
  "scheduled_service": "yes",
  "search_code": "KJFK",
  "search_type": "ICAO",
  "runways": [
    {
      "length_ft": 12079.0,
      "width_ft": 200.0,
      "surface": "PEM",
      "le_ident": "04L",
      "he_ident": "22R"
    }
  ],
  "frequencies": [
    {
      "type": "TWR",
      "description": "JFK TOWER",
      "frequency_mhz": 119.1
    }
  ],
  "navaids": [
    {
      "ident": "JFK",
      "name": "Kennedy",
      "type": "VOR-DME",
      "frequency_khz": 115900,
      "associated_airport": "KJFK"
    }
  ],
  "country": {
    "code": "US",
    "name": "United States"
  },
  "region": {
    "code": "US-NY",
    "name": "New York",
    "iso_country": "US"
  }
}
```

### Felder der obersten Ebene [#top-level-fields]

| Feld                | Typ            | Erforderlich | Null?  | Beschreibung                                            |
| ------------------- | -------------- | ------------ | ------ | ------------------------------------------------------- |
| `id`                | integer        | **Ja**       | Nie    | Numerische Datensatzkennung                             |
| `ident`             | string         | **Ja**       | Nie    | Primäre Kennung (meist ICAO)                            |
| `type`              | string         | **Ja**       | Nie    | Flughafenklasse — siehe Tabelle unten                   |
| `name`              | string         | **Ja**       | Nie    | Offizieller Flughafenname                               |
| `latitude_deg`      | number         | **Ja**       | Nie    | Breitengrad (WGS-84)                                    |
| `longitude_deg`     | number         | **Ja**       | Nie    | Längengrad (WGS-84)                                     |
| `elevation_ft`      | number \| null | Nein         | **Ja** | Flugplatzhöhe in Fuß MSL (über mittlerem Meeresspiegel) |
| `municipality`      | string \| null | Nein         | **Ja** | Angebundene Stadt oder Gemeinde                         |
| `iso_country`       | string \| null | Nein         | **Ja** | Ländercode nach ISO 3166-1 alpha-2                      |
| `iso_region`        | string \| null | Nein         | **Ja** | ISO-Regionscode, z. B. `US-NY`                          |
| `icao_code`         | string \| null | Nein         | **Ja** | ICAO-Ortskennung                                        |
| `iata_code`         | string \| null | Nein         | **Ja** | IATA-Ortscode                                           |
| `scheduled_service` | string \| null | Nein         | **Ja** | `yes` / `no`, sofern bekannt                            |
| `search_code`       | string \| null | Nein         | **Ja** | Echo des abgefragten Codes                              |
| `search_type`       | string \| null | Nein         | **Ja** | `ICAO` oder `IATA`                                      |
| `runways`           | array          | **Ja**       | Nie    | Datensätze der Start- und Landebahnen (kann `[]` sein)  |
| `frequencies`       | array          | **Ja**       | Nie    | Funkfrequenzen (kann `[]` sein)                         |
| `navaids`           | array          | **Ja**       | Nie    | Funknavigationsanlagen in der Nähe (kann `[]` sein)     |
| `country`           | object \| null | Nein         | **Ja** | Aufgelöste Ländermetadaten                              |
| `region`            | object \| null | Nein         | **Ja** | Aufgelöste Regionsmetadaten                             |

#### Werte von `type` (Flughafen) [#airport-type-values]

| Wert             | Bedeutung                                        |
| ---------------- | ------------------------------------------------ |
| `large_airport`  | Großer Verkehrsflughafen                         |
| `medium_airport` | Regionaler Verkehrsflughafen                     |
| `small_airport`  | Allgemeine Luftfahrt                             |
| `heliport`       | Hubschrauberlandeplatz                           |
| `seaplane_base`  | Wasserflugzeugbasis                              |
| `closed`         | Geschlossene Anlage (weiterhin in der Datenbank) |
| `balloonport`    | Ballonstartplatz                                 |

### Objekt für Start- und Landebahnen (`runways[]`) [#runway-object-runways]

| Feld        | Typ             | Erforderlich | Null?  | Beschreibung                                                                       |
| ----------- | --------------- | ------------ | ------ | ---------------------------------------------------------------------------------- |
| `length_ft` | number \| null  | Nein         | **Ja** | Länge der Bahn in Fuß                                                              |
| `width_ft`  | number \| null  | Nein         | **Ja** | Breite der Bahn in Fuß                                                             |
| `surface`   | string \| null  | Nein         | **Ja** | Belagscode — `ASP` (Asphalt), `PEM` (befestigte Oberfläche), `GRS` (Schotter) usw. |
| `lighted`   | integer \| null | Nein         | **Ja** | `1`, wenn befeuert                                                                 |
| `closed`    | integer \| null | Nein         | **Ja** | `1`, wenn gesperrt                                                                 |
| `le_ident`  | string \| null  | Nein         | **Ja** | Bezeichnung des niedrigen Bahnendes                                                |
| `he_ident`  | string \| null  | Nein         | **Ja** | Bezeichnung des hohen Bahnendes                                                    |

### Frequenzobjekt (`frequencies[]`) [#frequency-object-frequencies]

| Feld            | Typ            | Erforderlich | Beschreibung                                                                                                                |
| --------------- | -------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------- |
| `type`          | string         | **Ja**       | Diensttyp — `ATIS` (automatische Wetterdurchsage), `GND` (Rollkontrolle), `TWR` (Turm), `APP` (Anflug), `DEP` (Abflug) usw. |
| `description`   | string \| null | Nein         | Lesbare Bezeichnung                                                                                                         |
| `frequency_mhz` | number         | **Ja**       | Frequenz in MHz                                                                                                             |

### Navaid-Objekt (`navaids[]`) [#navaid-object-navaids]

| Feld                 | Typ             | Erforderlich | Null?  | Beschreibung                                     |
| -------------------- | --------------- | ------------ | ------ | ------------------------------------------------ |
| `ident`              | string          | **Ja**       | Nie    | Kennung der Funknavigationsanlage                |
| `name`               | string          | **Ja**       | Nie    | Name der Funknavigationsanlage                   |
| `type`               | string          | **Ja**       | Nie    | z. B. `VOR`, `VOR-DME`, `NDB`                    |
| `frequency_khz`      | integer \| null | Nein         | **Ja** | Frequenz in kHz                                  |
| `latitude_deg`       | number          | **Ja**       | Nie    | Breitengrad der Anlage                           |
| `longitude_deg`      | number          | **Ja**       | Nie    | Längengrad der Anlage                            |
| `associated_airport` | string \| null  | Nein         | **Ja** | ICAO des zugeordneten Flughafens, sofern bekannt |

## Client-Typen [#client-types]

<DocClientTypes id="v31/airports/lookup-types" />

## Integration [#integration]

Lösen Sie einen Flughafen per ICAO auf und geben Sie UI-fertige Zusammenfassungsfelder einschließlich der längsten Start- und Landebahn zurück.

Das folgende Beispiel speichert jede Abfrage 24 Stunden lang im Cache, da sich Flughafenmetadaten selten ändern. Jeder HTTP-Aufruf verwendet Verbindungs- und Lese-Timeouts, damit ein langsamer Upstream Ihre Briefing-UI nicht blockieren kann.

<DocExample id="v31/airports/lookup-fetch" />

### Hinweise zur Implementierung [#implementation-notes]

**Unvollständige Daten.** GA-Plätze und Hubschrauberlandeplätze haben oft keine Angaben zu Start- und Landebahnen oder Frequenzen. Prüfen Sie die Array-Längen, bevor Sie Bahntabellen rendern.

**Nachgelagerte Daten.** Nachdem Sie hier die ICAO aufgelöst haben, fahren Sie mit demselben Code mit [METAR](/docs/v31/weather-metar), [TAF](/docs/v31/weather-taf), [NOTAMs](/docs/v31/notams) oder [Flugplatzkarten](/docs/v31/charts) fort.

**Navaid-Overlays.** Die eingebetteten Funknavigationsanlagen decken die Umgebung des Flughafens ab. Für Bbox- oder Typfilter über eine ganze Region verwenden Sie [Funknavigationsanlagen](/docs/v31/navaids).

<DocDetails title="ICAO vs. IATA und geschlossene Flughäfen">
  **ICAO vs. IATA.** Bevorzugen Sie ICAO für die interne Speicherung — der Code ist weltweit eindeutig. Die IATA-Abfrage ist praktisch für passagierorientierte Codes (`JFK` → vollständiger Datensatz), kann aber regionsübergreifend kollidieren.

  **Geschlossene Flughäfen.** Datensätze mit `type: "closed"` bleiben zu historischen Referenzzwecken in der Datenbank. Filtern Sie sie gegebenenfalls aus Auswahllisten für aktive Flughäfen heraus.
</DocDetails>

## Fehlerantworten [#error-responses]

Nur Endpoint-spezifische Fehler. Zu Authentifizierung, Validierung, Rate Limits und Serverfehlern siehe [Fehlerbehandlung](/docs/errors).

### 404 - Flughafen nicht gefunden [#404---airport-not-found]

```json
{
  "detail": "Airport not found for ICAO code: XXXX"
}
```

Der Code existiert nicht in der SkyLink-Flughafendatenbank.

### 400 - beide Codes angegeben [#400---both-codes-provided]

```json
{
  "detail": "Provide either ICAO or IATA code, not both"
}
```

### 400 - kein Code angegeben [#400---neither-code-provided]

```json
{
  "detail": "Either ICAO or IATA code must be provided"
}
```

<APIPage document="&#x22;https://api.skylinkapi.com/v3.1/openapi.json&#x22;" operations="[{&#x22;path&#x22;:&#x22;/airports/search&#x22;,&#x22;method&#x22;:&#x22;get&#x22;}]" />

***

Siehe auch: [Flughafensuche](/docs/v31/airport-search) · [METAR](/docs/v31/weather-metar) · [NOTAMs](/docs/v31/notams)
