Save up to 17% with yearly billing

See pricing

Аэронавигационные карты

Получайте ссылки на PDF-файлы аэронавигационных карт (схем аэродромов), разбитые по категориям (GEN, GND, SID, STAR, APP), для аэропортов 91 страны. Нужный национальный источник карт выбирается автоматически по префиксу ICAO - в большинстве интеграций переопределять source не требуется. Время ответа зависит от страны: одни отвечают менее чем за секунду, другим может требоваться 5–15 секунд.

Требования

Авторизация
x-api-key в каждом запросе (прямая подписка). Подробнее →
ЭндпоинтКогда использовать
GET /charts/sourcesУзнать поддерживаемые регионы карт и префиксы ICAO — ниже
GET /charts/{icao_code}Полный индекс карт по категориям — ниже
GET /charts/{icao_code}/{category}Одна категория — по категории

Выбор эндпоинта. Вызовите GET /charts/sources один раз при запуске, чтобы проверить покрытие. Используйте Получение карт для полного индекса для брифинга. Используйте Карты по категории, когда нужен только один тип схем (например, APP для панелей захода на посадку).

Категория без опубликованных карт возвращает пустой массив, а не 404; полностью неизвестный аэропорт возвращает 404.

Категории карт

КодСодержимое
GENСхема аэропорта и общая информация
GNDКарты наземного движения и руления
SIDСтандартные маршруты вылета по приборам
STARСтандартные маршруты прибытия
APPСхемы захода на посадку - ILS, RNAV, VOR и др.

Источники карт

Возвращает все поддерживаемые источники данных карт и префиксы ICAO, которые охватывает каждый из них. Вызовите один раз при запуске, чтобы заполнить список выбора источника или проверить покрытие перед получением карт.

Запрос

GEThttps://data.skylinkapi.com/v3.1/charts/sources

Query-параметров нет.

Ответ

{
  "sources": [
    {
      "source_id": "uk",
      "name": "United Kingdom",
      "icao_prefixes": ["EG"]
    }
  ],
  "total_count": 91
}
ПолеТипОбязательныйОписание
sourcesarrayДаПоддерживаемые национальные источники карт
total_countintegerДаКоличество возвращённых источников

Элемент источника (sources[])

ПолеТипОбязательныйОписание
source_idstringДаСлаг источника, передаваемый в необязательный query-параметр source для переопределения
namestringДаУдобочитаемое название источника
icao_prefixesarrayДаПрефиксы местоположения ICAO, обслуживаемые этим источником

Покрытие

Карты доступны для аэропортов в 91 стране и территории. Нужный источник карт выбирается автоматически по префиксу ICAO аэропорта.

Полный список покрытия по регионамРазвернуть раздел
РегионСтраны / территории
АфрикаАлжир, Кабо-Верде, Джибути, Марокко, Сомали, ЮАР, Южный Судан
Африка (Западная и Центральная - ASECNA)Бенин, Буркина-Фасо, Камерун, Центральноафриканская Республика, Чад, Коморы, Конго, Кот-д’Ивуар, Габон, Гвинея, Гвинея-Бисау, Мадагаскар, Мали, Мавритания, Нигер, Сенегал, Того
Америка - СевернаяКанада, США
Америка - ЦентральнаяБелиз, Коста-Рика, Сальвадор, Гватемала, Гондурас, Никарагуа, Панама
Америка - Карибский бассейнАруба, Каймановы острова, Куба, Доминиканская Республика, Гаити
Америка - ЮжнаяАргентина, Бразилия, Чили, Колумбия, Уругвай, Венесуэла
Азия - ВосточнаяКитай, Гонконг, Япония, Монголия, Южная Корея, Тайвань
Азия - ЮжнаяБангладеш, Бутан, Индия, Мальдивы, Непал, Пакистан, Шри-Ланка
Азия - Юго-ВосточнаяБруней, Малайзия, Мьянма, Сингапур, Таиланд
Азия - ЦентральнаяКазахстан, Киргизия, Таджикистан, Туркменистан, Узбекистан
Ближний ВостокБахрейн, Израиль, Кувейт, Оман, Катар, Саудовская Аравия, ОАЭ
Европа - ЗападнаяАвстрия, Бельгия, Франция, Германия, Исландия, Ирландия, Люксембург, Нидерланды, Норвегия, Португалия, Испания, Швеция, Великобритания
Европа - СевернаяДания, Эстония, Финляндия, Латвия, Литва
Европа - ВосточнаяБеларусь, Чехия, Венгрия, Польша, Румыния, Россия, Словакия, Украина
Европа - ЮжнаяКипр, Грузия, Греция, Мальта, Словения
Европа - БалканыАлбания, Босния и Герцеговина, Косово, Северная Македония, Сербия
ОкеанияАвстралия, Новая Зеландия

Для сопоставления префиксов ICAO со странами используйте поле icao_prefixes каждого элемента источника.

GET
/charts/sources
x-api-key<token>

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

In: header

Response Body

application/json

curl -X GET "https://data.skylinkapi.com/v3.1/charts/sources"
{
  "sources": [
    {
      "source_id": "string",
      "name": "string",
      "icao_prefixes": [
        "string"
      ]
    }
  ],
  "total_count": 0
}

Получение карт для аэродрома

Получает все ссылки на PDF-файлы карт, разбитые по категориям, для заданного кода ICAO. К трёхбуквенным кодам США автоматически добавляется префикс K (например, JFK → KJFK).

Запрос

GEThttps://data.skylinkapi.com/v3.1/charts/{icao_code}
ПараметрТипОбязательныйПо умолчаниюОписание
icao_codestringДа-Код аэропорта ICAO (3–4 символа)
sourcestringНетавтоПереопределение автоматически выбранного источника карт (например, faa, france, uk)

Для стран с более медленным хостингом карт закладывайте увеличенные таймауты чтения (30–60 с).

Ответ

{
  "icao_code": "KJFK",
  "source": "faa",
  "charts": {
    "GND": [
      {
        "name": "KJFK - Airport Diagram",
        "url": "https://...",
        "category": "GND"
      }
    ],
    "SID": [
      {
        "name": "KENNEDY TWO",
        "url": "https://...",
        "category": "SID"
      }
    ]
  },
  "total_count": 42,
  "fetched_at": "2026-02-11T12:00:00Z"
}
ПолеТипОбязательныйМожет быть null?Описание
icao_codestringДаНикогдаИтоговый код ICAO
sourcestringДаНикогдаПоставщик карт, использованный для этого запроса
chartsobjectНетДаКарты, сгруппированные по категориям (GEN, GND, SID, STAR, APP)
total_countintegerДаНикогдаОбщее количество карт во всех категориях
fetched_atstringНетДаМетка времени ISO-8601 получения карт

Элемент карты (charts[category][])

ПолеТипОбязательныйОписание
namestringДаНазвание карты в том виде, в каком его публикует источник
urlstringДаПрямой URL PDF-файла карты
categorystringДаОдно из значений GEN, GND, SID, STAR, APP - см. категории карт
GET
/charts/{icao_code}
x-api-key<token>

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

In: header

Path Parameters

icao_code*Icao Code

ICAO airport code (e.g., KJFK, EGLL, LFPG)

Length3 <= length <= 4

Query Parameters

source?|

Override auto-detected chart source (e.g., faa, france, uk)

Response Body

application/json

application/json

curl -X GET "https://data.skylinkapi.com/v3.1/charts/KJFK"
{
  "icao_code": "KJFK",
  "source": "faa",
  "charts": {
    "GND": [
      {
        "name": "KJFK - Airport Diagram",
        "url": "https://...",
        "category": "GND"
      }
    ],
    "SID": [
      {
        "name": "KENNEDY TWO",
        "url": "https://...",
        "category": "SID"
      }
    ]
  },
  "total_count": 42,
  "fetched_at": "2026-02-11T12:00:00Z"
}
Empty
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Карты по категории

Получает для заданного аэропорта карты, отфильтрованные по одной категории (GEN, GND, SID, STAR или APP). Структура ответа совпадает с эндпоинтом всех карт выше, но charts содержит только ключ запрошенной категории.

Запрос

GEThttps://data.skylinkapi.com/v3.1/charts/{icao_code}/{category}
ПараметрТипОбязательныйПо умолчаниюОписание
icao_codestringДа-Код аэропорта ICAO (3–4 символа)
categorystringДа-Категория карт: GEN, GND, SID, STAR или APP
sourcestringНетавтоПереопределение автоматически выбранного источника карт

Ответ

Та же форма, что и у ответа со всеми картами, но charts ограничен запрошенной категорией. Пустой массив категории — это обычный успешный ответ. Элементы карт описываются той же таблицей полей элемента карты.

Важно: отсутствующая категория → пустой массив в ответе 200. Неизвестный аэропорт → 404. Для стран с более медленным хостингом карт закладывайте увеличенные таймауты чтения (30–60 с).

GET
/charts/{icao_code}/{category}
x-api-key<token>

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

In: header

Path Parameters

icao_code*Icao Code

ICAO airport code

Length3 <= length <= 4
category*ChartCategory

Chart category to filter by

Value in"GEN" | "GND" | "SID" | "STAR" | "APP"

Query Parameters

source?|

Override auto-detected chart source

Response Body

application/json

application/json

curl -X GET "https://data.skylinkapi.com/v3.1/charts/KJFK/approach"
{
  "icao_code": "string",
  "source": "string",
  "charts": {
    "property1": [
      {
        "name": "string",
        "url": "string",
        "category": "GEN"
      }
    ],
    "property2": [
      {
        "name": "string",
        "url": "string",
        "category": "GEN"
      }
    ]
  },
  "total_count": 0,
  "fetched_at": "2019-08-24T14:15:22Z"
}
Empty
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Клиентские типы

"""Aerodrome chart response models for /charts/* endpoints."""from __future__ import annotationsfrom dataclasses import dataclassfrom typing import LiteralChartCategory = Literal["GEN", "GND", "SID", "STAR", "APP"]@dataclassclass Chart:    name: str    url: str    category: str@dataclassclass ChartsResponse:    icao_code: str    source: str    total_count: int    charts: dict[str, list[Chart]] | None = None    fetched_at: str | None = None@dataclassclass SourceInfo:    source_id: str    name: str    icao_prefixes: list[str]@dataclassclass SourcesResponse:    sources: list[SourceInfo]    total_count: int@dataclassclass ChartLink:    name: str    url: str    category: str

Интеграция

Получите карты захода на посадку для панели брифинга и преобразуйте их в плоский список ссылок для скачивания.

Пример ниже кэширует ответы с картами на 24 часа, поскольку публикации карт меняются нечасто. Таймауты чтения увеличены до 45 с, так как некоторые страны отвечают медленно. Вспомогательная функция возвращает плоский список ChartLink и трактует 404 как «нет доступных карт», а не как критическую ошибку.

import osimport timefrom dataclasses import dataclassimport requestsHEADERS = {    "x-api-key": os.getenv("SKYLINK_API_KEY", "YOUR_API_KEY")}BASE = "https://data.skylinkapi.com/v3.1"CACHE: dict[str, tuple[dict, float]] = {}CHARTS_TTL = 86_400  # 24 hChartCategory = str  # GEN | GND | SID | STAR | APP@dataclassclass ChartLink:    name: str    url: str    category: ChartCategorydef fetch_charts(icao: str, *, category: str | None = None) -> dict | None:    icao = icao.upper().strip()    if len(icao) == 3:        icao = f"K{icao}"    key = f"charts:{icao}:{category or 'all'}"    cached = CACHE.get(key)    if cached and time.time() < cached[1]:        return cached[0]    path = f"{BASE}/charts/{icao}"    if category:        path = f"{path}/{category.upper()}"    try:        r = requests.get(path, headers=HEADERS, timeout=(10, 45))    except requests.Timeout as exc:        raise RuntimeError(f"SkyLink timeout fetching charts for {icao}") from exc    if r.status_code == 404:        return None    r.raise_for_status()    data = r.json()    CACHE[key] = (data, time.time() + CHARTS_TTL)    return datadef chart_links(icao: str, *, category: str | None = None) -> list[ChartLink]:    data = fetch_charts(icao, category=category)    if not data:        return []    charts_by_cat: dict = data.get("charts") or {}    if category:        items = charts_by_cat.get(category.upper(), [])    else:        items = [c for group in charts_by_cat.values() for c in group]    return [        ChartLink(name=item["name"], url=item["url"], category=item["category"])        for item in items    ]if __name__ == "__main__":    import json    links = chart_links("KJFK", category="APP")    print(json.dumps(links[:5], indent=2, default=str))

Примечания по реализации

Префикс для кодов США. Передавайте JFK или KJFK - для аэропортов США оба варианта преобразуются в KJFK.

Фильтрация по категориям. Используйте Карты по категории с APP, когда вам нужны только схемы захода на посадку; так вы не загружаете метаданные SID/STAR, которые не будете отображать.

Доставка PDF. Значения url карт указывают на размещённые PDF-файлы. Открывайте их в новой вкладке или проксируйте через свой сервер, если вам нужно единообразное поведение CORS.

Пустой массив или 404. Отсутствующая категория → пустой массив в ответе 200. Неизвестный аэропорт → 404.

Ответы с ошибками

Общие ошибки платформы: Обработка ошибок. Ошибки, специфичные для эндпоинта:

422 - недопустимая категория или длина ICAO

{
  "detail": [
    {
      "type": "enum",
      "loc": ["path", "category"],
      "msg": "Input should be 'GEN', 'GND', 'SID', 'STAR' or 'APP'"
    }
  ]
}

404 - нет карт для аэропорта

Возвращается, когда Skylink не может найти карты для кода ICAO ни в одном из настроенных источников.


См. также: Аэропорты · Брифинг по полёту · PDF-брифинг