# NOTAMs

Aktive NOTAMs für Flughäfen weltweit — Pistensperrungen, Ausfälle von Funknavigationsanlagen, Hindernisse und Luftraumhinweise in Echtzeit.



Rufen Sie aktuell gültige Notices to Air Missions ([**NOTAMs**](https://www.icao.int/safety/pages/notam-service-profiles.aspx) — maßgebliche betriebliche Hinweise, die einen Ort oder Luftraum betreffen) für jeden ICAO-Flughafencode weltweit ab. Verwenden Sie diesen Endpoint in Briefing-Workflows, Dispatch-Dashboards und Vorflug-Checklisten, wenn Sie betriebliche Hinweise benötigen, ohne einen eigenen [NOTAM](https://www.icao.int/safety/pages/notam-service-profiles.aspx)-Feed zu pflegen.

**Wichtig:** US-Ortskennungen mit drei Buchstaben (z. B. `JFK`) erhalten automatisch das Präfix `K`. Ein leeres `notams`-Array ist eine normale `200`-Antwort, wenn keine aktiven Hinweise vorliegen — kein Fehler.

Jeder Eintrag enthält den vollständigen [NOTAM](https://www.icao.int/safety/pages/notam-service-profiles.aspx)-Text im ICAO-Standardformat (`raw`), gegebenenfalls ICAO- und nationale Kennungen, Beginn und Ende der Gültigkeit, die einzeln geparsten Items sowie optionale Metadaten zum Geltungsbereich. Filtern Sie clientseitig nach `scope` und `type` oder verwenden Sie `exclude_qcode`/`exclude_scope`, um NOTAM-Kategorien serverseitig auszuschließen und die Antwortgröße zu verringern, bevor sie bei Ihnen ankommt.

**Routenplanung mit mehr Vorlauf?** Standardmäßig werden nur NOTAMs zurückgegeben, die bereits in Kraft sind — entsprechend einem Live-AIS-Briefing. Ein NOTAM, das für ein künftiges Gültigkeitsdatum veröffentlicht wurde (z. B. wenn ein Flughafen eine Flugplanänderung zwei Wochen im Voraus bekannt gibt), erscheint erst, wenn dieses Datum erreicht ist. Übergeben Sie `include_future=true`, um diese bevorstehenden NOTAMs schon jetzt zu sehen. Sie sind mit `status: "FUTURE"` gekennzeichnet, sodass Sie sie von den heute aktiven unterscheiden können.

## Anfrage [#request]

<DocRequirements>
  <DocRequirementAuth />
</DocRequirements>

<DocApiPath method="GET" path="/notams/{icao}" />

`exclude_qcode` und `exclude_scope` filtern serverseitig; `scope` und `type` bleiben in der Antwort für zusätzliche clientseitige Filterung verfügbar.

| Parameter        | Typ             | Erforderlich | Beschreibung                                                                                                                                                                                                                                |
| ---------------- | --------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `icao`           | string          | Ja           | 4-stelliger ICAO-Flughafencode (z. B. `KJFK`, `EGLL`). Dreistellige US-Codes erhalten automatisch das Präfix `K`                                                                                                                            |
| `exclude_qcode`  | string (query)  | Nein         | Kommagetrennte ICAO-Q-Code-Präfixe, die serverseitig ausgeschlossen werden, z. B. `QK` (gesamte Themenkategorie — schließt jedes Checklisten-NOTAM `QK*` aus) oder `QKKKK` (nur exakt dieser Code)                                          |
| `exclude_scope`  | string (query)  | Nein         | Kommagetrennte `scope`-Werte, die serverseitig ausgeschlossen werden: `AERODROME`, `FIR`                                                                                                                                                    |
| `include_future` | boolean (query) | Nein         | Gibt zusätzlich NOTAMs zurück, deren Gültigkeitsbeginn noch in der Zukunft liegt, gekennzeichnet mit `status: "FUTURE"`. Der Standardwert `false` liefert nur aktuell aktive NOTAMs. Abgelaufene NOTAMs werden in keinem Fall zurückgegeben |

**Beispiel für serverseitige Filterung:** `GET /notams/EGLL?exclude_qcode=QK&exclude_scope=FIR` schließt monatliche Checklisten-NOTAMs (Q-Code-Thema `QK*`, z. B. `QKKKK`) sowie FIR-weite administrative bzw. En-Route-Hinweise aus und gibt nur flugplatzspezifische Einträge für EGLL zurück.

## Antwort [#response]

```json
{
  "icao": "KJFK",
  "notams": [
    {
      "raw": "A0373/26 NOTAMN\nQ) KZNY/QMXLC/IV/M/A/000/999/4038N07346W005\nA) KJFK\nB) 2603241038\nC) 2608311800\nE) TWY D HLDG PSN MARKINGS FOR RWY 13L/31R NORTH SIDE NOT STD",
      "notam_id": "A0373/2026",
      "notam_id_domestic": "03/0373",
      "type": "N",
      "location": "KJFK",
      "effective": "202603241038",
      "expiration": "202608311800",
      "body": "TWY D HLDG PSN MARKINGS FOR RWY 13L/31R NORTH SIDE NOT STD",
      "schedule": null,
      "lower_limit": null,
      "upper_limit": null,
      "affected_fir": "KZNY",
      "q_code": "QMXLC",
      "qline": "KZNY/QMXLC/IV/M/A/000/999/4038N07346W005",
      "scope": "AERODROME",
      "status": "ACTIVE"
    }
  ],
  "total": 1
}
```

`raw` ist ein **mehrzeiliger** String (durch `\n` getrennt), der den Hinweis genau so enthält, wie ihn ein AIS-Briefing veröffentlicht. Siehe [ICAO-Format](#icao-format) weiter unten.

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

| Feld     | Typ     | Erforderlich | Beschreibung                                       |
| -------- | ------- | ------------ | -------------------------------------------------- |
| `icao`   | string  | **Ja**       | Aufgelöster ICAO-Code der Anfrage                  |
| `notams` | array   | **Ja**       | Aktive NOTAM-Einträge (kann leer sein)             |
| `total`  | integer | Nein         | Anzahl der Elemente in `notams` (Standardwert `0`) |

### NOTAM-Element (`notams[]`) [#notam-item-notams]

| Feld                | Typ    | Erforderlich | Null?  | Beschreibung                                                                                                                               |
| ------------------- | ------ | ------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `raw`               | string | **Ja**       | Nie    | Vollständiger NOTAM-Text im ICAO-Standardformat (mehrzeilig, durch `\n` getrennt)                                                          |
| `notam_id`          | string | Nein         | **Ja** | ICAO-NOTAM-Kennung (z. B. `373/2026`)                                                                                                      |
| `notam_id_domestic` | string | Nein         | **Ja** | Nationale FAA-Kennung (z. B. `03/373`)                                                                                                     |
| `type`              | string | Nein         | **Ja** | `N` (neu), `R` (Ersatz), `C` (Aufhebung)                                                                                                   |
| `location`          | string | Nein         | **Ja** | Kennung des betroffenen Orts                                                                                                               |
| `effective`         | string | Nein         | **Ja** | Beginn der Gültigkeit (UTC, Format des Anbieters)                                                                                          |
| `expiration`        | string | Nein         | **Ja** | Ende der Gültigkeit (UTC, Format des Anbieters)                                                                                            |
| `body`              | string | Nein         | **Ja** | NOTAM-Text (Item E) ohne Kopfzeile                                                                                                         |
| `schedule`          | string | Nein         | **Ja** | Aktivierungszeitplan (Item D), z. B. `MON-FRI 0600-1800`                                                                                   |
| `lower_limit`       | string | Nein         | **Ja** | Untere Höhengrenze (z. B. `SFC`, `FL050`)                                                                                                  |
| `upper_limit`       | string | Nein         | **Ja** | Obere Höhengrenze (z. B. `FL195`, `UNL`)                                                                                                   |
| `affected_fir`      | string | Nein         | **Ja** | FIR/ARTCC, unter der das NOTAM veröffentlicht wurde                                                                                        |
| `q_code`            | string | Nein         | **Ja** | ICAO-NOTAM-Q-Code, sofern vorhanden — kann bei nationalen FAA-Hinweisen `null` sein                                                        |
| `qline`             | string | Nein         | **Ja** | Vollständige ICAO-Q-Zeile, sofern geliefert                                                                                                |
| `scope`             | string | Nein         | **Ja** | `AERODROME` (Flughafeneinrichtung) oder `FIR` (Luftraum auf der Strecke)                                                                   |
| `status`            | string | Nein         | **Ja** | `ACTIVE` (aktuell gültig) oder `FUTURE` (Gültigkeitsdatum noch nicht erreicht — nur vorhanden, wenn `include_future=true` angefragt wurde) |

`raw` ist immer vorhanden. Die meisten Metadatenfelder können `null` sein, je nachdem, wie die Upstream-Meldung kodiert wurde.

**Wichtig:** Hinweise mit `scope: "AERODROME"` betreffen den Flughafen direkt — zeigen Sie diese in Briefing-Panels gut sichtbar an. Hinweise mit `scope: "FIR"` sind Einträge zum Luftraum auf der Strecke, die ebenfalls in der Antwort erscheinen — zeigen Sie sie in einem separaten Abschnitt an oder klappen Sie sie standardmäßig ein. Behandeln Sie ebenso Hinweise mit `status: "FUTURE"` als bevorstehend und nicht als aktuell — die meisten Briefing-Oberflächen sollten sie getrennt von den heute aktiven Hinweisen auflisten.

## ICAO-Format [#icao-format]

`raw` enthält den Hinweis im ICAO-Standardlayout, das Piloten zu lesen gelernt haben — die Identifikationszeile, gefolgt von den mit Buchstaben gekennzeichneten Items. Stellen Sie ihn in einem Monospace-Block ohne erneuten Zeilenumbruch dar:

```text
A0373/26 NOTAMN
Q) KZNY/QMXLC/IV/M/A/000/999/4038N07346W005
A) KJFK
B) 2603241038
C) 2608311800
E) TWY D HLDG PSN MARKINGS FOR RWY 13L/31R NORTH SIDE NOT STD
```

| Item    | Bedeutung                                                                               | Zugehöriges Feld                  |
| ------- | --------------------------------------------------------------------------------------- | --------------------------------- |
| Q)      | Q-Zeile — FIR, Q-Code, Verkehrsart, Zweck, Geltungsbereich, Grenzen, Mittelpunkt/Radius | `qline`, `q_code`, `affected_fir` |
| A)      | Ort, für den der Hinweis gilt                                                           | `location`                        |
| B)      | Gültig ab (`YYMMDDHHMM`, UTC)                                                           | `effective`                       |
| C)      | Gültig bis oder `PERM`                                                                  | `expiration`                      |
| D)      | Aktivierungszeitplan, wenn der Hinweis nur zeitweise gilt                               | `schedule`                        |
| E)      | Der eigentliche Hinweistext                                                             | `body`                            |
| F) / G) | Untere und obere vertikale Grenze                                                       | `lower_limit`, `upper_limit`      |

Hat die herausgebende Behörde eine eigene ICAO-Übersetzung veröffentlicht, gibt `raw` diese Byte für Byte wieder; andernfalls wird der Text aus den oben genannten geparsten Items zusammengesetzt.

**Items erscheinen wie veröffentlicht.** Ein Item ist nur vorhanden, wenn der Herausgeber es angegeben hat:

* **Q)** — internationale Hinweise enthalten eine vollständige Q-Zeile. Viele **nationale US-Hinweise** werden ganz ohne Q-Code veröffentlicht, daher fehlen bei ihnen `Q)`, `q_code` und `qline`.
* **D)** — nur bei Hinweisen mit Aktivierungszeitplan; die meisten gelten durchgehend zwischen B) und C).
* **F)/G)** — nur bei Luftraum- und Navigationshinweisen, die ein vertikales Band angeben.

Parsen Sie `raw` für die Anzeige und die einzelnen Felder für die Logik — setzen Sie nicht voraus, dass jedes Item vorhanden ist.

## Client-Typen [#client-types]

<DocClientTypes id="v31/notams/notams-types" />

## Integration [#integration]

Fragen Sie aktive [NOTAMs](https://www.icao.int/safety/pages/notam-service-profiles.aspx) für einen Abflughafen regelmäßig ab und zeigen Sie in einer Briefing-Oberfläche eine kompakte Übersichtsliste an.

Das folgende Beispiel cacht [NOTAM](https://www.icao.int/safety/pages/notam-service-profiles.aspx)-Antworten 5 Minuten lang, da sich Hinweise in betrieblich aktiven Zeitfenstern häufig ändern können. Jede Anfrage verwendet ein Lese-Timeout von 30 s, um große [NOTAM](https://www.icao.int/safety/pages/notam-service-profiles.aspx)-Bestände an stark frequentierten Drehkreuzen zu bewältigen. Die Hilfsfunktion bildet Einträge für die Listendarstellung auf ein gekürztes `NotamSummary` ab und behält `raw` für Detailansichten bei.

<DocExample id="v31/notams/notams-fetch" />

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

**Caching mit kurzer TTL.** Verwenden Sie im Produktivbetrieb Cache-Zeitfenster von 2–5 Minuten; umgehen Sie den Cache innerhalb der letzten Stunde vor dem Abflug bei Workflows für die Allgemeine Luftfahrt und Charterflüge.

**Umgang mit Aufhebungen.** Einträge mit `type: "C"` heben ein früheres [NOTAM](https://www.icao.int/safety/pages/notam-service-profiles.aspx) auf — verfolgen Sie sie über `notam_id`, wenn Sie einen lokalen Zustand führen.

**Präfix für US-Codes.** Akzeptieren Sie `JFK` von Nutzern; die API löst den Code zu `KJFK` auf.

**Routenplanung über den heutigen Tag hinaus.** Für Flugplanungstools, die einen Flughafen Tage oder Wochen im Voraus prüfen, fragen Sie `?include_future=true` an und verzweigen Sie anhand von `status` — zeigen Sie `ACTIVE`-Hinweise als aktuelle Bedingungen und `FUTURE`-Hinweise als bevorstehende Änderungen an, die die Besatzung vor dem Flug kennen sollte.

## Fehlerantworten [#error-responses]

Gemeinsame Plattformfehler: [Fehlerbehandlung](/docs/errors). Endpoint-spezifisch:

### 422 — ungültige Länge des ICAO-Codes [#422--invalid-icao-length]

```json
{
  "detail": [
    {
      "type": "string_too_short",
      "loc": ["path", "icao"],
      "msg": "String should have at least 4 characters"
    }
  ]
}
```

Wird zurückgegeben, wenn der Pfadparameter kürzer als vier Zeichen ist und nicht normalisiert werden kann.

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

***

Siehe auch: [Flugbriefing](/docs/v31/flight-briefing) · [FAA-Verspätungen](/docs/v31/faa-delays) · [METAR](/docs/v31/weather-metar)
