# Аэропорты

Подробные данные аэропорта по коду ICAO или IATA: взлётно-посадочные полосы, радиочастоты и ближайшие радионавигационные средства.



Получайте полные сведения об аэропорте по коду **ICAO** (4-буквенный указатель местоположения, уникальный в мире) или **IATA** (3-буквенный пассажирский код — не всегда уникальный). Ответ включает взлётно-посадочные полосы, радиочастоты, ближайшие радионавигационные средства ([VOR](https://en.wikipedia.org/wiki/VHF_omnidirectional_range), [NDB](https://en.wikipedia.org/wiki/Non-directional_beacon), [ILS](https://en.wikipedia.org/wiki/Instrument_landing_system) и аналогичные средства радионавигации), а также разрешённые объекты страны и региона. Вызывайте этот эндпоинт после того, как пользователь выбрал аэропорт в [результатах поиска](/docs/v31/airport-search#search-by-text), или когда код у вас уже есть и нужны данные об объекте для экранов брифинга, анализа ВПП или меток на карте.

Передавайте **либо** `icao`, **либо** `iata` в качестве query-параметра — никогда оба сразу.

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

<DocRequirements>
  <DocRequirementAuth />
</DocRequirements>

<DocApiPath method="GET" path="/airports/search" />

| Параметр | Тип    | Обязательный            | По умолчанию | Описание                              |
| -------- | ------ | ----------------------- | ------------ | ------------------------------------- |
| `icao`   | string | Один из `icao` / `iata` | -            | 4-буквенный код ICAO, например `KJFK` |
| `iata`   | string | Один из `icao` / `iata` | -            | 3-буквенный код IATA, например `JFK`  |

## Ответ [#response]

API возвращает один объект аэропорта (не обёрнутый в список).

```json
{
  "id": 3622,
  "ident": "KJFK",
  "type": "large_airport",
  "name": "John F. Kennedy International Airport",
  "latitude_deg": 40.639447,
  "longitude_deg": -73.779317,
  "elevation_ft": 13.0,
  "municipality": "New York",
  "iso_country": "US",
  "iso_region": "US-NY",
  "icao_code": "KJFK",
  "iata_code": "JFK",
  "scheduled_service": "yes",
  "search_code": "KJFK",
  "search_type": "ICAO",
  "runways": [
    {
      "length_ft": 12079.0,
      "width_ft": 200.0,
      "surface": "PEM",
      "le_ident": "04L",
      "he_ident": "22R"
    }
  ],
  "frequencies": [
    {
      "type": "TWR",
      "description": "JFK TOWER",
      "frequency_mhz": 119.1
    }
  ],
  "navaids": [
    {
      "ident": "JFK",
      "name": "Kennedy",
      "type": "VOR-DME",
      "frequency_khz": 115900,
      "associated_airport": "KJFK"
    }
  ],
  "country": {
    "code": "US",
    "name": "United States"
  },
  "region": {
    "code": "US-NY",
    "name": "New York",
    "iso_country": "US"
  }
}
```

### Поля верхнего уровня [#top-level-fields]

| Поле                | Тип            | Обязательный | Может быть null? | Описание                                                        |
| ------------------- | -------------- | ------------ | ---------------- | --------------------------------------------------------------- |
| `id`                | integer        | **Да**       | Никогда          | Числовой идентификатор записи                                   |
| `ident`             | string         | **Да**       | Никогда          | Основной идентификатор (обычно ICAO)                            |
| `type`              | string         | **Да**       | Никогда          | Класс аэропорта — см. таблицу ниже                              |
| `name`              | string         | **Да**       | Никогда          | Официальное название аэропорта                                  |
| `latitude_deg`      | number         | **Да**       | Никогда          | Широта WGS-84                                                   |
| `longitude_deg`     | number         | **Да**       | Никогда          | Долгота WGS-84                                                  |
| `elevation_ft`      | number \| null | Нет          | **Да**           | Превышение аэродрома в футах над MSL (над средним уровнем моря) |
| `municipality`      | string \| null | Нет          | **Да**           | Обслуживаемый город или населённый пункт                        |
| `iso_country`       | string \| null | Нет          | **Да**           | Код страны ISO 3166-1 alpha-2                                   |
| `iso_region`        | string \| null | Нет          | **Да**           | Код региона ISO, например `US-NY`                               |
| `icao_code`         | string \| null | Нет          | **Да**           | Указатель местоположения ICAO                                   |
| `iata_code`         | string \| null | Нет          | **Да**           | Код местоположения IATA                                         |
| `scheduled_service` | string \| null | Нет          | **Да**           | `yes` / `no`, если известно                                     |
| `search_code`       | string \| null | Нет          | **Да**           | Запрошенный вами код (эхо)                                      |
| `search_type`       | string \| null | Нет          | **Да**           | `ICAO` или `IATA`                                               |
| `runways`           | array          | **Да**       | Никогда          | Записи о ВПП (может быть `[]`)                                  |
| `frequencies`       | array          | **Да**       | Никогда          | Радиочастоты (может быть `[]`)                                  |
| `navaids`           | array          | **Да**       | Никогда          | Ближайшие радионавигационные средства (может быть `[]`)         |
| `country`           | object \| null | Нет          | **Да**           | Разрешённые метаданные страны                                   |
| `region`            | object \| null | Нет          | **Да**           | Разрешённые метаданные региона                                  |

#### Значения `type` для аэропорта [#airport-type-values]

| Значение         | Что означает                                |
| ---------------- | ------------------------------------------- |
| `large_airport`  | Крупный коммерческий аэропорт               |
| `medium_airport` | Региональный коммерческий аэропорт          |
| `small_airport`  | Авиация общего назначения                   |
| `heliport`       | Вертодром                                   |
| `seaplane_base`  | База гидросамолётов                         |
| `closed`         | Закрытый объект (по-прежнему в базе данных) |
| `balloonport`    | Площадка для запуска аэростатов             |

### Объект ВПП (`runways[]`) [#runway-object-runways]

| Поле        | Тип             | Обязательный | Может быть null? | Описание                                                                         |
| ----------- | --------------- | ------------ | ---------------- | -------------------------------------------------------------------------------- |
| `length_ft` | number \| null  | Нет          | **Да**           | Длина ВПП в футах                                                                |
| `width_ft`  | number \| null  | Нет          | **Да**           | Ширина ВПП в футах                                                               |
| `surface`   | string \| null  | Нет          | **Да**           | Код покрытия — `ASP` (асфальт), `PEM` (твёрдое покрытие), `GRS` (гравий) и т. д. |
| `lighted`   | integer \| null | Нет          | **Да**           | `1`, если ВПП оборудована освещением                                             |
| `closed`    | integer \| null | Нет          | **Да**           | `1`, если ВПП закрыта                                                            |
| `le_ident`  | string \| null  | Нет          | **Да**           | Обозначение торца ВПП с меньшим номером (low end)                                |
| `he_ident`  | string \| null  | Нет          | **Да**           | Обозначение торца ВПП с большим номером (high end)                               |

### Объект частоты (`frequencies[]`) [#frequency-object-frequencies]

| Поле            | Тип            | Обязательный | Описание                                                                                                                             |
| --------------- | -------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------ |
| `type`          | string         | **Да**       | Тип службы — `ATIS` (автоматическая передача метеоинформации), `GND` (руление), `TWR` (вышка), `APP` (подход), `DEP` (вылет) и т. д. |
| `description`   | string \| null | Нет          | Понятная человеку метка                                                                                                              |
| `frequency_mhz` | number         | **Да**       | Частота в MHz                                                                                                                        |

### Объект радионавигационного средства (`navaids[]`) [#navaid-object-navaids]

| Поле                 | Тип             | Обязательный | Может быть null? | Описание                                     |
| -------------------- | --------------- | ------------ | ---------------- | -------------------------------------------- |
| `ident`              | string          | **Да**       | Никогда          | Идентификатор средства                       |
| `name`               | string          | **Да**       | Никогда          | Название средства                            |
| `type`               | string          | **Да**       | Никогда          | Например, `VOR`, `VOR-DME`, `NDB`            |
| `frequency_khz`      | integer \| null | Нет          | **Да**           | Частота в kHz                                |
| `latitude_deg`       | number          | **Да**       | Никогда          | Широта средства                              |
| `longitude_deg`      | number          | **Да**       | Никогда          | Долгота средства                             |
| `associated_airport` | string \| null  | Нет          | **Да**           | Код ICAO связанного аэропорта, если известен |

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

<DocClientTypes id="v31/airports/lookup-types" />

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

Найдите аэропорт по коду ICAO и верните готовые для интерфейса сводные поля, включая самую длинную ВПП.

В примере ниже каждый результат поиска кэшируется на 24 часа, поскольку метаданные аэропортов меняются редко. Каждый HTTP-вызов использует тайм-ауты на подключение и чтение, чтобы медленный вышестоящий сервис не заблокировал интерфейс брифинга.

<DocExample id="v31/airports/lookup-fetch" />

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

**Неполные данные.** У площадок авиации общего назначения и вертодромов часто нет данных о ВПП или частотах. Проверяйте длину массивов перед выводом таблиц ВПП.

**Связанные данные.** Определив здесь код ICAO, переходите с тем же кодом к [METAR](/docs/v31/weather-metar), [TAF](/docs/v31/weather-taf), [NOTAM](/docs/v31/notams) или [аэронавигационным картам](/docs/v31/charts).

**Слои радионавигационных средств.** Встроенные navaids охватывают окрестности аэропорта. Для фильтрации по bbox или по типу в пределах региона используйте [Радионавигационные средства](/docs/v31/navaids).

<DocDetails title="ICAO и IATA, закрытые аэропорты">
  **ICAO или IATA.** Для внутреннего хранения предпочтительнее ICAO — этот код уникален в мире. Поиск по IATA удобен для пассажирских кодов (`JFK` → полная запись), но такие коды могут совпадать в разных регионах.

  **Закрытые аэропорты.** Записи с `type: "closed"` остаются в базе данных для исторической справки. При необходимости отфильтровывайте их в списках выбора действующих аэропортов.
</DocDetails>

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

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

### 404 - аэропорт не найден [#404---airport-not-found]

```json
{
  "detail": "Airport not found for ICAO code: XXXX"
}
```

Такого кода нет в базе аэропортов SkyLink.

### 400 - указаны оба кода [#400---both-codes-provided]

```json
{
  "detail": "Provide either ICAO or IATA code, not both"
}
```

### 400 - не указан ни один код [#400---neither-code-provided]

```json
{
  "detail": "Either ICAO or IATA code must be provided"
}
```

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

***

См. также: [Поиск аэропортов](/docs/v31/airport-search) · [METAR](/docs/v31/weather-metar) · [NOTAM](/docs/v31/notams)
