# Details eines einzelnen Flugs

Vollständige archivierte Flugmetadaten per flight_id-UUID abrufen — Flughäfen, Zeiten, Entfernung und Routenkonfidenz aus dem ADS-B-Archiv.



Rufen Sie vollständige Metadaten und den kompletten Positions-Track eines bestimmten archivierten Flugs ab. Beide Endpoints erfordern eine `flight_id`-UUID aus der [Flughistorie-Suche](/docs/v31/historical-adsb-flight-search) — sie bilden Schritt 2 desselben Workflows. Tarifstufen: [Übersicht historische ADS-B-Daten](/docs/v31/historical-adsb).

<DocRequirements>
  <DocRequirementAuth />

  <DocRequirement label="Tarif" href="/docs/rate-limits#historical-adsb-path-tiers">
    <strong>Pro</strong>, <strong>Ultra</strong> oder <strong>Mega</strong> — verwenden Sie das Pfadpräfix, das dem benötigten Zeitfenster entspricht.
  </DocRequirement>
</DocRequirements>

<DocJumpNav>
  <DocJumpLink href="#flight-detail" icon="solar:document-bold-duotone">
    Flugdetails
  </DocJumpLink>

  <DocJumpLink href="#flight-track" icon="solar:route-bold-duotone">
    Flug-Track
  </DocJumpLink>
</DocJumpNav>

<a id="flight-detail" />

## Details eines einzelnen Flugs [#single-flight-detail]

Liefert über die Suchergebnisse hinausgehende angereicherte Metadaten — Off-Block-/On-Block-Zeiten, Nähe zum Zielflughafen und Audit-Zeitstempel. Die **Blockzeit** ist die Zeit von Gate zu Gate einschließlich Rollen; Off-Block = Abfahrt vom Gate, On-Block = Ankunft am Gate. **Start** und **Landung** sind die Ereignisse Abheben und Aufsetzen und unterscheiden sich von Off-Block/On-Block.

### Anfrage [#request]

<DocApiPath method="GET" path="/ultra/history/flight/{flight_id}" />

| Parameter   | Typ    | Erforderlich | Beschreibung                                                                    |
| ----------- | ------ | ------------ | ------------------------------------------------------------------------------- |
| `flight_id` | string | Ja           | Flug-UUID aus der [Flughistorie-Suche](/docs/v31/historical-adsb-flight-search) |

<DocDetails title="MEGA-Pfad (`/mega/history/...`)">
  <DocApiPath method="GET" path="/mega/history/flight/{flight_id}" />

  Gleiche Parameter und gleiche Antwortstruktur wie bei ULTRA. Erfordert den Tarif **Ultra** oder **Mega**. `flight_id`-Werte sind zwischen den Stufen austauschbar.
</DocDetails>

### Antwort [#response]

```json
{
  "flight_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "icao24": "40621d",
  "callsign": "BAW178",
  "flight_number": "BAW178",
  "tail_number": "G-XWBA",
  "aircraft_type_icao": "B77W",
  "aircraft_type_name": "Boeing 777-300ER",
  "airline_icao": "BAW",
  "airline_iata": "BA",
  "airline_name": "British Airways",
  "departure_airport_icao": "EGLL",
  "departure_airport_iata": "LHR",
  "departure_airport_name": "London Heathrow Airport",
  "arrival_airport_icao": "KJFK",
  "arrival_airport_iata": "JFK",
  "arrival_airport_name": "John F Kennedy International Airport",
  "flight_state": "ARCHIVED",
  "flight_start": "2026-05-12T19:42:05Z",
  "flight_end": "2026-05-13T03:11:10Z",
  "takeoff_time": "2026-05-12T19:45:00Z",
  "landing_time": "2026-05-13T03:08:00Z",
  "off_block_time": null,
  "on_block_time": null,
  "flight_duration_min": 443.0,
  "duration_source": "estimated",
  "distance_nm": 2998.4,
  "arrival_distance_nm": 2.1,
  "confidence": 1.0,
  "route_source": "vrs_confirmed",
  "gps_spoofing_suspected": false,
  "diversion_suspected": false,
  "created_at": "2026-05-12T19:40:00Z",
  "updated_at": "2026-05-13T03:15:00Z"
}
```

Liefert dieselben Kernfelder wie eine [Flugzusammenfassung](/docs/v31/historical-adsb-flight-search#flight-summary-flights) sowie, sofern verfügbar, zusätzliche Anreicherungen, die nur in den Details enthalten sind.

| Feld                                                                                                      | Typ            | Erforderlich | Null?  | Beschreibung                                                                                                                                                                                           |
| --------------------------------------------------------------------------------------------------------- | -------------- | ------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| *(alle Felder der [Flugzusammenfassung](/docs/v31/historical-adsb-flight-search#flight-summary-flights))* | -              | -            | -      | Gleiche Struktur wie die Suchergebnisse                                                                                                                                                                |
| `off_block_time`                                                                                          | string \| null | Nein         | **Ja** | Off-Block-Zeit, sofern bekannt (ISO 8601)                                                                                                                                                              |
| `on_block_time`                                                                                           | string \| null | Nein         | **Ja** | On-Block-Zeit, sofern bekannt (ISO 8601)                                                                                                                                                               |
| `duration_source`                                                                                         | string \| null | Nein         | **Ja** | Wie die Dauer berechnet wurde — bei `"estimated"` wurde die Blockzeit aus Positionsdaten abgeleitet statt aus aufgezeichneten Gate-Ereignissen (wichtig für ESG- oder Verspätungs-Reporting-Workflows) |
| `arrival_distance_nm`                                                                                     | number \| null | Nein         | **Ja** | Entfernung von der letzten Position zum Zielflughafen (nm)                                                                                                                                             |
| `created_at`                                                                                              | string \| null | Nein         | **Ja** | Zeitpunkt, zu dem der Archivdatensatz angelegt wurde (ISO 8601)                                                                                                                                        |
| `updated_at`                                                                                              | string \| null | Nein         | **Ja** | Zeitpunkt der letzten Aktualisierung des Archivdatensatzes (ISO 8601)                                                                                                                                  |

## Client-Typen [#client-types]

<DocClientTypes id="v31/historical-adsb/history-types" />

## Integration [#integration]

Rufen Sie angereicherte Metadaten für einen einzelnen archivierten Flug ab — Off-Block-/On-Block-Zeiten, Nähe zum Zielflughafen und Audit-Zeitstempel. Das folgende Beispiel knüpft an ein Ergebnis der Flugsuche an: Es nimmt die erste `flight_id`, ruft die vollständigen Details ab und bildet die Gate-Zeiten anschließend auf ein Anzeigeobjekt ab, mit einem Fallback, wenn die Blockzeiten `null` sind.

<DocExample id="v31/historical-adsb/detail-fetch" />

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

**An die Suche anknüpfen.** Ermitteln Sie die `flight_id` immer zuerst über die [Flughistorie-Suche](/docs/v31/historical-adsb-flight-search) — geratene UUIDs liefern `404`. Details und Suche verwenden denselben Stufenpfad (`/ultra/...` oder `/mega/...`).

**Blockzeiten vs. Start/Landung.** `off_block_time` und `on_block_time` sind Gate-Ereignisse; `takeoff_time` und `landing_time` bezeichnen Abheben und Aufsetzen. Beide können `null` sein, wenn die [ADS-B](https://www.faa.gov/air_traffic/technology/adsb)-Abdeckung in der Nähe des Gates unvollständig war.

**Rohe Positionshistorie.** Für eine zeitlich begrenzte Zeitleiste ohne Flugsegmentierung siehe [Positionshistorie](/docs/v31/historical-adsb-positions).

## Fehlerantworten [#error-responses]

Tarifbedingte `401`/`403`: [Übersicht historische ADS-B-Daten](/docs/v31/historical-adsb#error-responses). Endpoint-spezifisch:

### 404 — Flug nicht gefunden [#404--flight-not-found]

```json
{
  "detail": "Flight not found"
}
```

Wird zurückgegeben, wenn die `flight_id` nicht im Archiv vorhanden ist (unbekannte UUID, außerhalb der Aufbewahrungsfrist oder Tippfehler). Suchen Sie erneut mit einem engeren Zeitfenster — siehe [Flughistorie-Suche](/docs/v31/historical-adsb-flight-search).

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

<a id="flight-track" />

## Flug-Track [#flight-track]

Liefert den vollständigen [ADS-B](https://www.faa.gov/air_traffic/technology/adsb)-Positions-Track eines bestimmten Flugs, automatisch auf das Zeitfenster von Start → Landung begrenzt (mit 5 Minuten Puffer auf jeder Seite). Verwenden Sie diesen Endpoint, wenn Sie eine `flight_id` aus der Suche haben und den Flugweg erhalten möchten, ohne das Zeitfenster selbst zu berechnen.

### Anfrage [#request-1]

<DocApiPath method="GET" path="/ultra/history/flight/{flight_id}/track" />

| Parameter   | Typ     | Erforderlich | Standard | Beschreibung                                                    |
| ----------- | ------- | ------------ | -------- | --------------------------------------------------------------- |
| `flight_id` | string  | Ja           | -        | Flug-UUID aus der Suche                                         |
| `limit`     | integer | Nein         | `2000`   | Max. Anzahl Positionszeilen (max. **5.000** auf dem ULTRA-Pfad) |

<DocDetails title="MEGA-Pfad (`/mega/history/...`)">
  <DocApiPath method="GET" path="/mega/history/flight/{flight_id}/track" />

  | Parameter   | Typ     | Erforderlich | Standard | Beschreibung                                               |
  | ----------- | ------- | ------------ | -------- | ---------------------------------------------------------- |
  | `flight_id` | string  | Ja           | -        | Flug-UUID                                                  |
  | `limit`     | integer | Nein         | `5000`   | Max. Anzahl Positionen (max. **10.000** auf dem MEGA-Pfad) |

  Erfordert den Tarif **Ultra** oder **Mega**. Gleiche Antwortstruktur wie bei ULTRA.
</DocDetails>

### Antwort [#response-1]

```json
{
  "flight_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "icao24": "40621d",
  "callsign": "BAW178",
  "registration": "G-XWBA",
  "aircraft_type_icao": "B77W",
  "departure_airport_icao": "EGLL",
  "departure_airport_iata": "LHR",
  "arrival_airport_icao": "KJFK",
  "arrival_airport_iata": "JFK",
  "takeoff_time": "2026-05-12T19:45:00Z",
  "landing_time": "2026-05-13T03:08:00Z",
  "count": 1287,
  "positions": [
    {
      "timestamp": "2026-05-13T03:08:05Z",
      "icao24": "40621d",
      "latitude": 40.6413,
      "longitude": -73.7781,
      "altitude_baro": 0,
      "ground_speed": 12,
      "track": 90,
      "vertical_rate": 0,
      "callsign": "BAW178",
      "is_on_ground": true,
      "registration": "G-XWBA",
      "aircraft_type": "B77W",
      "gps_spoofed": false
    }
  ]
}
```

| Feld                     | Typ            | Erforderlich | Null?  | Beschreibung                                 |
| ------------------------ | -------------- | ------------ | ------ | -------------------------------------------- |
| `flight_id`              | string         | **Ja**       | Nie    | Flug-UUID                                    |
| `icao24`                 | string \| null | Nein         | **Ja** | Hexcode des Luftfahrzeugs                    |
| `callsign`               | string \| null | Nein         | **Ja** | ADS-B-Rufzeichen                             |
| `registration`           | string \| null | Nein         | **Ja** | Kennzeichen, sofern bekannt                  |
| `aircraft_type_icao`     | string \| null | Nein         | **Ja** | ICAO-Typcode                                 |
| `departure_airport_icao` | string \| null | Nein         | **Ja** | ICAO-Code des Abflughafens                   |
| `departure_airport_iata` | string \| null | Nein         | **Ja** | IATA-Code des Abflughafens                   |
| `arrival_airport_icao`   | string \| null | Nein         | **Ja** | ICAO-Code des Zielflughafens                 |
| `arrival_airport_iata`   | string \| null | Nein         | **Ja** | IATA-Code des Zielflughafens                 |
| `takeoff_time`           | string \| null | Nein         | **Ja** | Startzeit, die den Track begrenzt (ISO 8601) |
| `landing_time`           | string \| null | Nein         | **Ja** | Landezeit, die den Track begrenzt (ISO 8601) |
| `count`                  | integer        | **Ja**       | Nie    | Anzahl der Einträge in `positions`           |
| `positions`              | array          | **Ja**       | Nie    | Positions-Snapshots (neueste zuerst)         |

<a id="position-snapshot-positions" />

#### Positions-Snapshot (`positions[]`) [#position-snapshot-positions]

Gleiche Feldnamen wie bei [Live-ADS-B](/docs/v31/adsb)-Positionen. JSON-Pfad: `positions[]`.

| Feld            | Typ             | Erforderlich | Null?  | Beschreibung                                       |
| --------------- | --------------- | ------------ | ------ | -------------------------------------------------- |
| `timestamp`     | string          | **Ja**       | Nie    | Beobachtungszeitpunkt (ISO 8601)                   |
| `icao24`        | string          | **Ja**       | Nie    | Hexcode des Luftfahrzeugs                          |
| `latitude`      | number          | **Ja**       | Nie    | WGS-84-Breitengrad (Dezimalgrad)                   |
| `longitude`     | number          | **Ja**       | Nie    | WGS-84-Längengrad (Dezimalgrad)                    |
| `altitude_baro` | number \| null  | Nein         | **Ja** | Barometrische Höhe in Fuß MSL                      |
| `ground_speed`  | number \| null  | Nein         | **Ja** | Geschwindigkeit über Grund in Knoten               |
| `track`         | number \| null  | Nein         | **Ja** | Kurs über Grund in Grad rechtweisend               |
| `vertical_rate` | number \| null  | Nein         | **Ja** | Vertikalrate in Fuß pro Minute                     |
| `callsign`      | string \| null  | Nein         | **Ja** | ADS-B-Rufzeichen zum Zeitpunkt dieses Snapshots    |
| `is_on_ground`  | boolean         | **Ja**       | Nie    | `true`, wenn sich das Luftfahrzeug am Boden befand |
| `registration`  | string \| null  | Nein         | **Ja** | Kennzeichen, sofern bekannt                        |
| `aircraft_type` | string \| null  | Nein         | **Ja** | ICAO-Typcode, sofern bekannt                       |
| `gps_spoofed`   | boolean \| null | Nein         | **Ja** | Ob dieser Snapshot als GPS-Spoofing markiert wurde |

### Track-Integration [#track-integration]

Spielen Sie einen Positions-Track von Gate zu Gate für die Kartenanzeige ab. Das folgende Beispiel knüpft an ein Suchergebnis an: Es nimmt eine `flight_id`, ruft den Track mit einem Lese-Timeout von 45 Sekunden ab (große Tracks können langsam sein), dünnt für eine bessere Performance von Webkarten auf jede 5. Position aus und behandelt `404`, wenn ein Flug außerhalb der Aufbewahrungsfrist liegt.

<DocExample id="v31/historical-adsb/track-fetch" />

**Wichtig:** Track und Positionshistorie liefern `positions` mit den neuesten Einträgen zuerst. Kehren Sie die Reihenfolge für die Wiedergabe auf der Karte chronologisch um. Bei einer Abtastung alle 5 Sekunden umfasst ein 10-stündiger Flug \~7.200 Punkte — dünnen Sie die Daten für Webkarten aus.

<APIPage document="&#x22;https://api.skylinkapi.com/v3.1/openapi.json&#x22;" operations="[{&#x22;path&#x22;:&#x22;/ultra/history/flight/{flight_id}/track&#x22;,&#x22;method&#x22;:&#x22;get&#x22;},{&#x22;path&#x22;:&#x22;/mega/history/flight/{flight_id}/track&#x22;,&#x22;method&#x22;:&#x22;get&#x22;}]" />
