# Выбросы CO₂

Оценки CO₂ по ICAO Doc 9988 для пары аэропортов или позывного — итоги на рейс и на пассажира с опциональным индексом радиационного воздействия.



Оценки выбросов CO₂ для отдельного рейса по &#x2A;*[методологии калькулятора выбросов углерода ICAO (Doc 9988)](https://www.icao.int/environmental-protection/CarbonOffset/Pages/default.aspx)** — стандарту расчёта CO₂ в авиации. Используйте этот эндпоинт для меток углеродного следа, которые видят путешественники, ESG-отчётности или сценариев оформления компенсации выбросов, где вместе с результатом нужны проверяемые входные данные (расстояние, категория ВС, число пассажиров).

Поддерживаются два режима запроса:

**По аэропортам** — укажите `departure_icao` + `arrival_icao`. По умолчанию используется [расстояние по ортодромии](https://en.wikipedia.org/wiki/Great-circle_distance) между координатами аэропортов.

**По позывному** — укажите `callsign` (например, `BAW117`). SkyLink автоматически определяет маршрут и предпочитает фактически пройденное расстояние недавнего подходящего рейса (за последние 7 дней), а при отсутствии трека использует [расстояние по ортодромии](https://en.wikipedia.org/wiki/Great-circle_distance).

Необязательные параметры `aircraft_type`, `passengers` и `include_rfi&#x60; уточняют оценку. &#x2A;*[RFI](https://en.wikipedia.org/wiki/Radiative_forcing)** ([индекс радиационного воздействия](https://en.wikipedia.org/wiki/Radiative_forcing)) учитывает не связанные с CO₂ эффекты потепления от инверсионных следов и озона с использованием [коэффициента IPCC](https://www.ipcc.ch/&#x29; 1.9×. При применении RFI результаты выражаются в &#x2A;*[CO₂e](https://en.wikipedia.org/wiki/Carbon_dioxide_equivalent)** (эквивалент CO₂ — полное климатическое воздействие с учётом RFI).

**Важно:** установите `include_rfi=true` для отчётности о полном климатическом воздействии, однако нормативные требования и правила информирования потребителей по-разному определяют, что показывать — CO₂ или [CO₂e](https://en.wikipedia.org/wiki/Carbon_dioxide_equivalent), — поэтому указывайте, какое значение вы отображаете.

## Запрос [#request]

<DocRequirements>
  <DocRequirementAuth />
</DocRequirements>

<DocApiPath method="GET" path="/carbon/estimate" />

| Параметр         | Тип     | Обязательный             | По умолчанию               | Описание                                                                                                                                     |
| ---------------- | ------- | ------------------------ | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `departure_icao` | string  | В режиме пары аэропортов | -                          | Код ICAO аэропорта вылета, например `EGLL`. Обязателен вместе с `arrival_icao`, если не задан `callsign`                                     |
| `arrival_icao`   | string  | В режиме пары аэропортов | -                          | Код ICAO аэропорта прибытия, например `KJFK`. Обязателен вместе с `departure_icao`, если не задан `callsign`                                 |
| `callsign`       | string  | В режиме позывного       | -                          | Позывной рейса, например `BAW117`. Маршрут и расстояние определяются автоматически                                                           |
| `aircraft_type`  | string  | Нет                      | определяется автоматически | Код типа ICAO, например `B77W`, `A320`. Не указывайте, чтобы тип был определён по позывному или использовалось среднее значение по категории |
| `passengers`     | integer | Нет                      | значение для категории     | Число пассажиров (1–900). Не указывайте, чтобы использовать типичное число кресел для категории ВС                                           |
| `include_rfi`    | boolean | Нет                      | `false`                    | Включить индекс радиационного воздействия в поля `co2_equivalent_kg_*`                                                                       |

Укажите **либо** (`departure_icao` + `arrival_icao`), **либо** `callsign`, не смешивая оба режима противоречивым образом.

## Ответ [#response]

```json
{
  "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."
}
```

### Объект оценки [#estimate-object]

| Поле                              | Тип            | Обязательный | Null?   | Описание                                                                                                                                                        |
| --------------------------------- | -------------- | ------------ | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `departure_icao`                  | string         | **Да**       | Никогда | Код ICAO аэропорта вылета                                                                                                                                       |
| `arrival_icao`                    | string         | **Да**       | Никогда | Код ICAO аэропорта прибытия                                                                                                                                     |
| `aircraft_type`                   | string \| null | Нет          | **Да**  | Использованный тип ICAO, если известен                                                                                                                          |
| `aircraft_category`               | string         | **Да**       | Никогда | Категория коэффициента выбросов — например, `wide_body_large` (дальнемагистральный широкофюзеляжный), `narrow_body_medium` (типичный узкофюзеляжный реактивный) |
| `distance_km`                     | number         | **Да**       | Никогда | Расстояние маршрута в километрах                                                                                                                                |
| `distance_nm`                     | number         | **Да**       | Никогда | Расстояние маршрута в морских милях                                                                                                                             |
| `passengers`                      | integer        | **Да**       | Никогда | Число пассажиров, использованное в расчёте                                                                                                                      |
| `passengers_source`               | string         | **Да**       | Никогда | `"provided"` или `"category_default"`                                                                                                                           |
| `co2_kg_total`                    | number         | **Да**       | Никогда | Общий CO₂ рейса в килограммах                                                                                                                                   |
| `co2_kg_per_passenger`            | number         | **Да**       | Никогда | CO₂ на пассажира в килограммах                                                                                                                                  |
| `rfi_applied`                     | boolean        | **Да**       | Никогда | Был ли RFI включён в поля эквивалента                                                                                                                           |
| `rfi_factor`                      | number         | **Да**       | Никогда | Множитель RFI (1.9 при применении)                                                                                                                              |
| `co2_equivalent_kg_total`         | number \| null | Нет          | **Да**  | Полное климатическое воздействие в кг при `include_rfi=true`                                                                                                    |
| `co2_equivalent_kg_per_passenger` | number \| null | Нет          | **Да**  | Климатическое воздействие на пассажира в кг при применении RFI                                                                                                  |
| `methodology`                     | string         | **Да**       | Никогда | Идентификатор методологии, например `ICAO-Doc9988`                                                                                                              |
| `confidence`                      | string         | **Да**       | Никогда | `high`, `medium` или `low` — отражает достоверность данных о расстоянии и ВС                                                                                    |
| `distance_source`                 | string         | **Да**       | Никогда | `haversine` или источник исторического трека, если в режиме позывного определена фактическая траектория                                                         |
| `notes`                           | string         | **Да**       | Никогда | Понятное человеку примечание о RFI и режиме расчёта                                                                                                             |
| `callsign`                        | string         | Нет          | **Да**  | Переданный позывной, если использовался режим позывного                                                                                                         |
| `callsign_resolved`               | boolean        | Нет          | **Да**  | Сопоставлен ли позывной с известным маршрутом                                                                                                                   |
| `route_confidence`                | string         | Нет          | **Да**  | Достоверность определения маршрута в режиме позывного                                                                                                           |

**Важно:** при `include_rfi=false` поля `co2_equivalent_kg_*` равны `null` — показывайте только значения CO₂. При `include_rfi=true` показывайте и CO₂, и [CO₂e](https://en.wikipedia.org/wiki/Carbon_dioxide_equivalent) и указывайте, какое значение является основным.

## Клиентские типы [#client-types]

<DocClientTypes id="v31/carbon/estimate-types" />

## Интеграция [#integration]

Метки углеродного следа в сценариях бронирования обычно запрашивают оценку один раз для каждого сегмента маршрута и кэшируют результаты на время сессии. Пример ниже запрашивает оценку для пары аэропортов с явно заданным числом пассажиров, преобразует итоговые значения в строки для отображения в тоннах/кг и обрабатывает `include_rfi` для панелей устойчивого развития, отражающих полное климатическое воздействие.

<DocExample id="v31/carbon/estimate-fetch" />

### Примечания по реализации [#implementation-notes]

**Важно:** значения API указаны в килограммах. Для текстов, адресованных пассажирам дальнемагистральных рейсов, переводите их в тонны (`÷ 1000`).

**Позывной или пара аэропортов.** Режим позывного может повысить точность расстояния, если есть недавний трек [ADS-B](https://www.faa.gov/air_traffic/technology/adsb); режим пары аэропортов проще для гипотетических бронирований.

**Раскрытие RFI.** При `include_rfi=true` показывайте и CO₂, и [CO₂e](https://en.wikipedia.org/wiki/Carbon_dioxide_equivalent) — нормативные требования по-разному определяют, нужно ли показывать RFI потребителям.

## Ответы с ошибками [#error-responses]

Общие ошибки платформы описаны в разделе [Обработка ошибок](/docs/errors). Поведение, специфичное для эндпоинта:

### 422 — отсутствуют данные маршрута [#422--missing-route-inputs]

Возвращается, если не указаны ни корректная пара аэропортов, ни `callsign`, либо если параметры не проходят валидацию.

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