Save up to 17% with yearly billing

See pricing

CO₂-Emissionen

CO₂-Schätzungen pro Flug nach der Methodik des ICAO Carbon Emissions Calculator (Doc 9988) — dem Standard für die CO₂-Berechnung in der Luftfahrt. Verwenden Sie diesen Endpoint für CO₂-Labels für Reisende, ESG-Reporting oder Kompensations-Checkouts, bei denen Sie neben dem Ergebnis nachprüfbare Eingabewerte (Entfernung, Flugzeugkategorie, Passagierzahl) benötigen.

Es werden zwei Abfragemodi unterstützt:

Nach Flughäfen — geben Sie departure_icao + arrival_icao an. Als Entfernung wird standardmäßig die Großkreisentfernung zwischen den Flughafenkoordinaten verwendet.

Nach Rufzeichen — geben Sie callsign an (z. B. BAW117). SkyLink löst die Route automatisch auf und bevorzugt die tatsächlich geflogene Entfernung eines kürzlich passenden Flugs (letzte 7 Tage); ist kein Track verfügbar, wird auf die Großkreisentfernung zurückgegriffen.

Die optionalen Parameter aircraft_type, passengers und include_rfi verfeinern die Schätzung. Der RFI (Radiative Forcing Index) berücksichtigt Erwärmungseffekte von Kondensstreifen und Ozon, die nicht auf CO₂ zurückgehen, mit einem IPCC-Faktor von 1,9×. Wird der RFI angewendet, werden die Ergebnisse als CO₂e angegeben (CO₂-Äquivalent — gesamte Klimawirkung einschließlich RFI).

Wichtig: Setzen Sie include_rfi=true für eine vollständige Berichterstattung über die Klimawirkung. Regulatorische und verbraucherbezogene Offenlegungsnormen unterscheiden sich jedoch darin, ob CO₂ oder CO₂e angezeigt werden soll — geben Sie an, welchen Wert Sie anzeigen.

Anfrage

Voraussetzungen

Auth
x-api-key bei jeder Anfrage (Direktabonnement). Mehr erfahren →
GEThttps://data.skylinkapi.com/v3.1/carbon/estimate
ParameterTypErforderlichStandardBeschreibung
departure_icaostringPaarmodus-ICAO-Code des Abflughafens, z. B. EGLL. Zusammen mit arrival_icao erforderlich, sofern callsign nicht gesetzt ist
arrival_icaostringPaarmodus-ICAO-Code des Zielflughafens, z. B. KJFK. Zusammen mit departure_icao erforderlich, sofern callsign nicht gesetzt ist
callsignstringRufzeichenmodus-Rufzeichen des Flugs, z. B. BAW117. Löst Route und Entfernung automatisch auf
aircraft_typestringNeinabgeleitetICAO-Typcode, z. B. B77W, A320. Weglassen, um ihn aus dem Rufzeichen abzuleiten oder den Kategoriedurchschnitt zu verwenden
passengersintegerNeinKategoriestandardPassagierzahl (1–900). Weglassen, um die typische Sitzplatzzahl der Flugzeugkategorie zu verwenden
include_rfibooleanNeinfalseRadiative Forcing Index in die Felder co2_equivalent_kg_* einbeziehen

Geben Sie entweder (departure_icao + arrival_icao) oder callsign an — kombinieren Sie die beiden Modi nicht auf widersprüchliche Weise.

Antwort

{
  "departure_icao": "EGLL",
  "arrival_icao": "KJFK",
  "aircraft_type": "B77W",
  "aircraft_category": "wide_body_large",
  "distance_km": 5539.8,
  "distance_nm": 2991.3,
  "passengers": 280,
  "passengers_source": "provided",
  "co2_kg_total": 271451.4,
  "co2_kg_per_passenger": 847.3,
  "rfi_applied": false,
  "rfi_factor": 1.9,
  "co2_equivalent_kg_total": null,
  "co2_equivalent_kg_per_passenger": null,
  "methodology": "ICAO-Doc9988",
  "confidence": "high",
  "distance_source": "haversine",
  "notes": "CO2 only. Add include_rfi=true for total climate impact estimate."
}

Schätzungsobjekt

FeldTypErforderlichNull?Beschreibung
departure_icaostringJaNieICAO-Code des Abflughafens
arrival_icaostringJaNieICAO-Code des Zielflughafens
aircraft_typestring | nullNeinJaVerwendeter ICAO-Typ, sofern bekannt
aircraft_categorystringJaNieEmissionsfaktor-Kategorie — z. B. wide_body_large (Großraumflugzeug für die Langstrecke), narrow_body_medium (typischer Single-Aisle-Jet)
distance_kmnumberJaNieRoutenentfernung in Kilometern
distance_nmnumberJaNieRoutenentfernung in Seemeilen
passengersintegerJaNieIn der Berechnung verwendete Passagierzahl
passengers_sourcestringJaNie"provided" oder "category_default"
co2_kg_totalnumberJaNieGesamt-CO₂ des Flugs in Kilogramm
co2_kg_per_passengernumberJaNieCO₂ pro Passagier in Kilogramm
rfi_appliedbooleanJaNieOb der RFI in die Äquivalenzfelder einbezogen wurde
rfi_factornumberJaNieRFI-Multiplikator (1,9, wenn angewendet)
co2_equivalent_kg_totalnumber | nullNeinJaGesamte Klimawirkung in kg bei include_rfi=true
co2_equivalent_kg_per_passengernumber | nullNeinJaKlimawirkung pro Passagier in kg, wenn der RFI angewendet wurde
methodologystringJaNieBezeichner der Methodik, z. B. ICAO-Doc9988
confidencestringJaNiehigh, medium oder low — spiegelt die Sicherheit von Entfernung und Flugzeugangaben wider
distance_sourcestringJaNiehaversine oder historische Track-Quelle, wenn der Rufzeichenmodus einen geflogenen Weg auflöst
notesstringJaNieLesbarer Hinweis zum RFI und zum Berechnungsmodus
callsignstringNeinJaEcho des Rufzeichens, wenn der Rufzeichenmodus verwendet wurde
callsign_resolvedbooleanNeinJaOb das Rufzeichen einer bekannten Route zugeordnet werden konnte
route_confidencestringNeinJaKonfidenz der Routenauflösung im Rufzeichenmodus

Wichtig: Bei include_rfi=false sind die Felder co2_equivalent_kg_* null — zeigen Sie nur CO₂-Werte an. Bei include_rfi=true zeigen Sie sowohl CO₂ als auch CO₂e an und kennzeichnen Sie, welcher Wert die primäre Angabe ist.

Client-Typen

"""Carbon estimate response models for /carbon/estimate."""from __future__ import annotationsfrom dataclasses import dataclass@dataclassclass CarbonEstimateResponse:    departure_icao: str    arrival_icao: str    aircraft_type: str | None    aircraft_category: str    distance_km: float    distance_nm: float    passengers: int    passengers_source: str    co2_kg_total: float    co2_kg_per_passenger: float    rfi_applied: bool    rfi_factor: float    co2_equivalent_kg_total: float | None    co2_equivalent_kg_per_passenger: float | None    methodology: str    confidence: str    distance_source: str    notes: str    callsign: str | None = None    callsign_resolved: bool | None = None    route_confidence: str | None = None

Integration

CO₂-Labels in Buchungsabläufen rufen die Schätzung in der Regel einmal pro Reiseabschnitt auf und speichern die Ergebnisse für die Dauer der Sitzung im Cache. Das folgende Beispiel fragt eine Schätzung für ein Flughafenpaar mit expliziter Passagierzahl ab, wandelt die Gesamtwerte in Anzeigetexte in Tonnen/kg um und behandelt include_rfi für Nachhaltigkeits-Dashboards, die die gesamte Klimawirkung ausweisen.

import osfrom dataclasses import dataclassimport requestsBASE = "https://data.skylinkapi.com/v3.1"HEADERS = {    "x-api-key": os.getenv("SKYLINK_API_KEY", "YOUR_API_KEY")}@dataclassclass CarbonLabel:    route: str    co2_kg_total: float    co2_kg_per_passenger: float    passengers: int    methodology: str    rfi_applied: booldef fetch_carbon_estimate(    *,    departure_icao: str | None = None,    arrival_icao: str | None = None,    callsign: str | None = None,    aircraft_type: str | None = None,    passengers: int | None = None,    include_rfi: bool = False,) -> dict:    """Estimate flight CO2 using ICAO methodology."""    params: dict[str, str | int | bool] = {}    if departure_icao and arrival_icao:        params["departure_icao"] = departure_icao.upper()        params["arrival_icao"] = arrival_icao.upper()    elif callsign:        params["callsign"] = callsign.upper()    else:        raise ValueError("Provide departure_icao+arrival_icao or callsign")    if aircraft_type:        params["aircraft_type"] = aircraft_type.upper()    if passengers is not None:        params["passengers"] = passengers    if include_rfi:        params["include_rfi"] = True    r = requests.get(f"{BASE}/carbon/estimate", headers=HEADERS, params=params, timeout=(10, 20))    r.raise_for_status()    return r.json()def carbon_label(    departure_icao: str,    arrival_icao: str,    *,    passengers: int | None = None,    aircraft_type: str | None = None,) -> CarbonLabel:    data = fetch_carbon_estimate(        departure_icao=departure_icao,        arrival_icao=arrival_icao,        passengers=passengers,        aircraft_type=aircraft_type,    )    return CarbonLabel(        route=f"{data['departure_icao']} → {data['arrival_icao']}",        co2_kg_total=float(data["co2_kg_total"]),        co2_kg_per_passenger=float(data["co2_kg_per_passenger"]),        passengers=int(data["passengers"]),        methodology=data["methodology"],        rfi_applied=bool(data["rfi_applied"]),    )if __name__ == "__main__":    import json    from dataclasses import asdict    label = carbon_label("KJFK", "KLAX", passengers=180, aircraft_type="B738")    print(json.dumps(asdict(label), indent=2))

Hinweise zur Implementierung

Wichtig: Die API-Werte sind in Kilogramm angegeben. Rechnen Sie für Texte, die sich an Passagiere richten, bei Langstrecken in Tonnen um (÷ 1000).

Rufzeichen vs. Flughafenpaar. Der Rufzeichenmodus kann die Genauigkeit der Entfernung verbessern, wenn ein aktueller ADS-B-Track vorliegt; der Flughafenpaar-Modus ist für hypothetische Buchungen einfacher.

Offenlegung des RFI. Zeigen Sie bei include_rfi=true sowohl CO₂- als auch CO₂e-Werte an — regulatorische Rahmenbedingungen unterscheiden sich darin, ob der RFI Verbrauchern angezeigt werden sollte.

Fehlerantworten

Gemeinsame Plattformfehler finden Sie unter Fehlerbehandlung. Endpoint-spezifisches Verhalten:

422 — fehlende Routenangaben

Wird zurückgegeben, wenn weder ein gültiges Flughafenpaar noch callsign angegeben wurde oder wenn Parameter die Validierung nicht bestehen.

GET
/carbon/estimate
x-api-key<token>

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

In: header

Query Parameters

departure_icao?|

Departure airport ICAO code (e.g. 'EGLL'). Required unless callsign is provided.

arrival_icao?|

Arrival airport ICAO code (e.g. 'KJFK'). Required unless callsign is provided.

callsign?|

Flight callsign (e.g. 'BAW123'). Resolves route and distance automatically.

aircraft_type?|

ICAO aircraft type code (e.g. 'B77W', 'A320'). Omit to infer from callsign or use category average.

passengers?|

Number of passengers. Omit to use the aircraft category's typical seat count.

include_rfi?Include Rfi

Include Radiative Forcing Index (total climate impact, not just CO2)

Defaultfalse

Response Body

application/json

application/json

curl -X GET "https://data.skylinkapi.com/v3.1/carbon/estimate"
null
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}