# PIREPs (Pilotenmeldungen)

Pilotenmeldungen (PIREPs) in einer Bounding Box – von Piloten gemeldete Turbulenz, Vereisung und Wetter im Flug innerhalb eines Rückblickzeitraums.



[PIREPs (Pilotenmeldungen)](https://www.aviationweather.gov/help/data/#pirep) sind freiwillige Wetterbeobachtungen von Piloten während des Flugs, die Bedingungen erfassen, die automatische Sensoren nicht erkennen — Turbulenz, Vereisung, Wolkenobergrenzen, Sicht und Temperatur in der Höhe —, oft Minuten bevor sie in Vorhersagen auftauchen. Dieser Endpoint liefert jeden [PIREP](https://www.aviationweather.gov/help/data/#pirep), dessen Position innerhalb eines konfigurierbaren Zeitfensters in Ihrem Begrenzungsrahmen (Bounding Box) liegt. Verwenden Sie [PIREPs](https://www.aviationweather.gov/help/data/#pirep) zusammen mit [METAR](/docs/v31/weather-metar), [TAF](/docs/v31/weather-taf) und [AIRMET/SIGMET](/docs/v31/airsigmet), wenn Sie aktuelle, von Piloten beobachtete Gefahren entlang einer Route benötigen. Die Meldungen sind geografisch — übergeben Sie einen Begrenzungsrahmen um Ihre Flugroute, nicht den ICAO-Code eines einzelnen Flughafens. Die Abdeckung konzentriert sich auf die USA; Abfragen über Gebieten mit wenig Flugverkehr liefern oft leere `reports`-Arrays, selbst wenn die Bbox gültig ist.

Meldungstypen: **UA** (Routine-[PIREP](https://www.aviationweather.gov/help/data/#pirep)) und **UUA** (dringender [PIREP](https://www.aviationweather.gov/help/data/#pirep) — erhebliche Gefahr; in Ihrer UI priorisieren).

## Anfrage [#request]

<DocRequirements>
  <DocRequirementAuth />
</DocRequirements>

Senden Sie eine Anfrage per <HttpMethod>GET</HttpMethod> mit einem geografischen Begrenzungsrahmen und optionalem Rückblickzeitraum.

<DocApiPath method="GET" path="/weather/pireps" />

| Parameter | Typ     | Erforderlich | Standard | Beschreibung                                                                                                                |
| --------- | ------- | ------------ | -------- | --------------------------------------------------------------------------------------------------------------------------- |
| `bbox`    | string  | Ja           | -        | Begrenzungsrahmen als `lat1,lon1,lat2,lon2` — Südwestecke zuerst. Beispiel: `39,-78,42,-71` (Korridor im Nordosten der USA) |
| `hours`   | integer | Nein         | `2`      | Rückblickzeitraum in Stunden (`1`–`24`)                                                                                     |

**Tipps zum Begrenzungsrahmen.** Bemessen Sie den Rahmen nach Ihrem Streckenabschnitt plus Puffer — [PIREPs](https://www.aviationweather.gov/help/data/#pirep) sind außerhalb von stark beflogenem Luftraum spärlich. Ein leeres `reports`-Array ist eine normale Antwort, wenn in letzter Zeit keine Piloten Meldungen für das Gebiet abgegeben haben.

## Antwort [#response]

```json
{
  "bbox": "39.0,-78.0,42.0,-71.0",
  "hours": 3,
  "reports": [
    {
      "raw": "UA /OV JFK/TM 1845/FL085/TP B738/TB MOD/RM CONT MOD CHOP",
      "report_type": "UA",
      "location": "JFK",
      "time": "2025-01-15T18:45:00Z",
      "altitude": "FL085",
      "aircraft_type": "B738",
      "turbulence": "Moderate",
      "icing": null,
      "sky_conditions": null,
      "temperature": null,
      "wind": null,
      "remarks": "CONT MOD CHOP",
      "latitude": 40.64,
      "longitude": -73.78
    }
  ],
  "total": 1
}
```

Wenn keine Meldungen passen, liefert die API `"reports": []` und `"total": 0` — keinen Fehler.

| Feld      | Typ     | Erforderlich | Beschreibung                            |
| --------- | ------- | ------------ | --------------------------------------- |
| `bbox`    | string  | **Ja**       | Echo des abgefragten Begrenzungsrahmens |
| `hours`   | integer | **Ja**       | Angewendeter Rückblickzeitraum          |
| `reports` | array   | **Ja**       | Passende PIREPs (kann leer sein)        |
| `total`   | integer | **Ja**       | Anzahl der Einträge in `reports`        |

### Meldung [#report]

JSON-Pfad: `reports[]`. Nur `raw` ist garantiert nicht null. Alle dekodierten Felder sind `null`, wenn sie in der abgegebenen Meldung nicht enthalten sind — rechnen Sie mit spärlich befüllten Objekten, besonders bei älteren oder knappen [PIREPs](https://www.aviationweather.gov/help/data/#pirep).

| Feld             | Typ            | Erforderlich                       | Null?  | Beschreibung                                                        |
| ---------------- | -------------- | ---------------------------------- | ------ | ------------------------------------------------------------------- |
| `raw`            | string         | **Ja**                             | Nie    | Vollständiger PIREP-Text wie abgegeben                              |
| `report_type`    | string \| null | **Ja** (Schlüssel immer vorhanden) | **Ja** | `UA` (Routine) oder `UUA` (dringend)                                |
| `location`       | string \| null | **Ja** (Schlüssel immer vorhanden) | **Ja** | Ortskennung oder Peilung/Entfernung zu einer Funknavigationsanlage  |
| `time`           | string \| null | **Ja** (Schlüssel immer vorhanden) | **Ja** | Beobachtungszeit (UTC, ISO 8601)                                    |
| `altitude`       | string \| null | **Ja** (Schlüssel immer vorhanden) | **Ja** | Flugfläche oder Höhe, z. B. `FL085`                                 |
| `aircraft_type`  | string \| null | **Ja** (Schlüssel immer vorhanden) | **Ja** | Luftfahrzeugtypcode, z. B. `B738`                                   |
| `sky_conditions` | string \| null | **Ja** (Schlüssel immer vorhanden) | **Ja** | Himmelszustand bzw. Bewölkung                                       |
| `turbulence`     | string \| null | **Ja** (Schlüssel immer vorhanden) | **Ja** | Turbulenzintensität — siehe [Intensitätsskalen](#intensity-scales)  |
| `icing`          | string \| null | **Ja** (Schlüssel immer vorhanden) | **Ja** | Vereisungsintensität — siehe [Intensitätsskalen](#intensity-scales) |
| `temperature`    | string \| null | **Ja** (Schlüssel immer vorhanden) | **Ja** | Außenlufttemperatur                                                 |
| `wind`           | string \| null | **Ja** (Schlüssel immer vorhanden) | **Ja** | Windrichtung und -geschwindigkeit                                   |
| `remarks`        | string \| null | **Ja** (Schlüssel immer vorhanden) | **Ja** | Zusätzliche Bemerkungen                                             |
| `latitude`       | number \| null | **Ja** (Schlüssel immer vorhanden) | **Ja** | Breitengrad der Meldung, sofern geokodiert                          |
| `longitude`      | number \| null | **Ja** (Schlüssel immer vorhanden) | **Ja** | Längengrad der Meldung, sofern geokodiert                           |

### Objektschemas und Nullbarkeit [#object-schemas-and-nullability]

Jeder Schlüssel eines Meldungsobjekts ist immer vorhanden — nichts wird weggelassen, wenn ein Feld nicht gemeldet wurde. `null` steht für Abschnitte, die der Pilot nicht angegeben hat.

| Situation                                           | Was Sie erhalten                    | Nicht dies          |
| --------------------------------------------------- | ----------------------------------- | ------------------- |
| Pilot hat Turbulenz weggelassen                     | `turbulence: null`                  | Schlüssel fehlt     |
| Pilot hat Vereisung weggelassen                     | `icing: null`                       | Schlüssel fehlt     |
| Nur Position relativ zu einer Funknavigationsanlage | `latitude: null`, `longitude: null` | Schlüssel fehlt     |
| Keine Meldungen im Zeitfenster                      | `reports: []`, `total: 0`           | `null`, HTTP-Fehler |
| Routinemeldung                                      | `report_type: "UA"`                 | `null`              |
| Meldung einer dringenden Gefahr                     | `report_type: "UUA"`                | `"UA"`              |

<a id="intensity-scales" />

#### Intensitätsskalen [#intensity-scales]

Die dekodierten Zeichenketten in `turbulence` und `icing` folgen dem üblichen [PIREP](https://www.aviationweather.gov/help/data/#pirep)-Intensitätsvokabular. Die Werte sind dekodierter Text; die genaue Zeichenkette kann zwischen Meldungen leicht variieren.

| Turbulenz (Beispiele) | Bedeutung      |
| --------------------- | -------------- |
| `NEG` / `Negative`    | Keine gemeldet |
| `LGT` / `Light`       | Leicht         |
| `MOD` / `Moderate`    | Mäßig          |
| `SVR` / `Severe`      | Stark          |
| `EXTM` / `Extreme`    | Extrem         |

| Vereisung (Beispiele) | Bedeutung |
| --------------------- | --------- |
| `NEG` / `Negative`    | Keine     |
| `TRC` / `Trace`       | Spuren    |
| `LGT` / `Light`       | Leicht    |
| `MOD` / `Moderate`    | Mäßig     |
| `SVR` / `Severe`      | Stark     |

## Client-Typen [#client-types]

<DocClientTypes id="v31/weather/pirep-types" />

## Integration [#integration]

Fragen Sie [PIREPs](https://www.aviationweather.gov/help/data/#pirep) in einem Begrenzungsrahmen entlang einer Route ab und zeigen Sie dringende Meldungen zuerst an.

Das Beispiel fragt eine Korridor-Bbox ab, speichert die Ergebnisse 10 Minuten lang im Cache ([PIREPs](https://www.aviationweather.gov/help/data/#pirep) sind kurzlebig) und gibt nur dringende `UUA`-Meldungen sowie den höchsten beobachteten Turbulenzgrad zurück. **Ein leeres `reports`-Array ist auf ruhigen Routen normal** — zeigen Sie „keine aktuellen Pilotenmeldungen“ an, niemals einen Fehlerzustand. **Priorisieren Sie `UUA`-Meldungen** gegenüber routinemäßigen `UA`-Meldungen in Dispatch- oder EFB-UIs.

<DocExample id="v31/weather/pirep-fetch" />

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

**Spärliche Daten sind normal.** Anders als bei [METAR](https://en.wikipedia.org/wiki/METAR) hängen [PIREPs](https://www.aviationweather.gov/help/data/#pirep) davon ab, dass Piloten Meldungen abgeben. Vergrößern Sie die Bbox oder erhöhen Sie `hours`, bevor Sie annehmen, dass die API defekt ist.

**`UUA` priorisieren.** Dringende [PIREPs](https://www.aviationweather.gov/help/data/#pirep) weisen auf erhebliche Gefahren hin. Behandeln Sie jede `UUA`-Meldung mit `turbulence: "SVR"` oder `"EXTM"` als sofortige Warnung.

**Lücken bei der Geokodierung.** `latitude` und `longitude` sind `null`, wenn die Meldung nur eine Position relativ zu einer Funknavigationsanlage enthält (z. B. `25 SW of ORL`). Greifen Sie für die Anzeige auf das Parsen von `location` und `raw` zurück; verwerfen Sie diese Meldungen nicht.

**Nicht zu häufig abfragen.** Ein Aktualisierungsintervall von 5–15 Minuten reicht aus. Kombinieren Sie die Abfrage mit [AIRMET/SIGMET](/docs/v31/airsigmet) für gebietsweite Warnungen.

**`time` vs. Anfragezeitpunkt.** `time` ist die Beobachtungszeit aus dem [PIREP](https://www.aviationweather.gov/help/data/#pirep) — verwenden Sie sie für Anzeigen wie „vor X Minuten“. Für [PIREPs](https://www.aviationweather.gov/help/data/#pirep) gibt es keinen separaten Zeitstempel des API-Abrufs.

## Fehlerantworten [#error-responses]

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

### 400 — ungültiges bbox-Format [#400--invalid-bbox-format]

```json
{
  "detail": "Invalid bounding box format. Expected 'lat1,lon1,lat2,lon2'"
}
```

### 503 — Upstream nicht verfügbar [#503--upstream-unavailable]

```json
{
  "detail": "PIREP service temporarily unavailable"
}
```

Wiederholen Sie die Anfrage mit exponentiellem Backoff. Ein einzelner Wiederholungsversuch nach 5–10 Sekunden reicht meist aus.

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

***

Siehe auch: [Wetter-Übersicht](/docs/v31/weather) · [AIRMET/SIGMET](/docs/v31/airsigmet) · [METAR](/docs/v31/weather-metar) · [Anwendungsfall: dringende PIREPs](/docs/v31/weather-integration-enroute#8-urgent-pireps-along-the-route)
