Аэронавигационные карты
Получайте ссылки на 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, которые охватывает каждый из них. Вызовите один раз при запуске, чтобы заполнить список выбора источника или проверить покрытие перед получением карт.
Запрос
https://data.skylinkapi.com/v3.1/charts/sourcesQuery-параметров нет.
Ответ
{
"sources": [
{
"source_id": "uk",
"name": "United Kingdom",
"icao_prefixes": ["EG"]
}
],
"total_count": 91
}| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
sources | array | Да | Поддерживаемые национальные источники карт |
total_count | integer | Да | Количество возвращённых источников |
Элемент источника (sources[])
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
source_id | string | Да | Слаг источника, передаваемый в необязательный query-параметр source для переопределения |
name | string | Да | Удобочитаемое название источника |
icao_prefixes | array | Да | Префиксы местоположения ICAO, обслуживаемые этим источником |
Покрытие
Карты доступны для аэропортов в 91 стране и территории. Нужный источник карт выбирается автоматически по префиксу ICAO аэропорта.
Полный список покрытия по регионамРазвернуть раздел
| Регион | Страны / территории |
|---|---|
| Африка | Алжир, Кабо-Верде, Джибути, Марокко, Сомали, ЮАР, Южный Судан |
| Африка (Западная и Центральная - ASECNA) | Бенин, Буркина-Фасо, Камерун, Центральноафриканская Республика, Чад, Коморы, Конго, Кот-д’Ивуар, Габон, Гвинея, Гвинея-Бисау, Мадагаскар, Мали, Мавритания, Нигер, Сенегал, Того |
| Америка - Северная | Канада, США |
| Америка - Центральная | Белиз, Коста-Рика, Сальвадор, Гватемала, Гондурас, Никарагуа, Панама |
| Америка - Карибский бассейн | Аруба, Каймановы острова, Куба, Доминиканская Республика, Гаити |
| Америка - Южная | Аргентина, Бразилия, Чили, Колумбия, Уругвай, Венесуэла |
| Азия - Восточная | Китай, Гонконг, Япония, Монголия, Южная Корея, Тайвань |
| Азия - Южная | Бангладеш, Бутан, Индия, Мальдивы, Непал, Пакистан, Шри-Ланка |
| Азия - Юго-Восточная | Бруней, Малайзия, Мьянма, Сингапур, Таиланд |
| Азия - Центральная | Казахстан, Киргизия, Таджикистан, Туркменистан, Узбекистан |
| Ближний Восток | Бахрейн, Израиль, Кувейт, Оман, Катар, Саудовская Аравия, ОАЭ |
| Европа - Западная | Австрия, Бельгия, Франция, Германия, Исландия, Ирландия, Люксембург, Нидерланды, Норвегия, Португалия, Испания, Швеция, Великобритания |
| Европа - Северная | Дания, Эстония, Финляндия, Латвия, Литва |
| Европа - Восточная | Беларусь, Чехия, Венгрия, Польша, Румыния, Россия, Словакия, Украина |
| Европа - Южная | Кипр, Грузия, Греция, Мальта, Словения |
| Европа - Балканы | Албания, Босния и Герцеговина, Косово, Северная Македония, Сербия |
| Океания | Австралия, Новая Зеландия |
Для сопоставления префиксов ICAO со странами используйте поле icao_prefixes каждого элемента источника.
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).
Запрос
https://data.skylinkapi.com/v3.1/charts/{icao_code}| Параметр | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
icao_code | string | Да | - | Код аэропорта ICAO (3–4 символа) |
source | string | Нет | авто | Переопределение автоматически выбранного источника карт (например, 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_code | string | Да | Никогда | Итоговый код ICAO |
source | string | Да | Никогда | Поставщик карт, использованный для этого запроса |
charts | object | Нет | Да | Карты, сгруппированные по категориям (GEN, GND, SID, STAR, APP) |
total_count | integer | Да | Никогда | Общее количество карт во всех категориях |
fetched_at | string | Нет | Да | Метка времени ISO-8601 получения карт |
Элемент карты (charts[category][])
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
name | string | Да | Название карты в том виде, в каком его публикует источник |
url | string | Да | Прямой URL PDF-файла карты |
category | string | Да | Одно из значений GEN, GND, SID, STAR, APP - см. категории карт |
Your SkyLink licence key, for keys bought direct from skylinkapi.com.
In: header
Path Parameters
ICAO airport code (e.g., KJFK, EGLL, LFPG)
3 <= length <= 4Query Parameters
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"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}Карты по категории
Получает для заданного аэропорта карты, отфильтрованные по одной категории (GEN, GND, SID, STAR или APP). Структура ответа совпадает с эндпоинтом всех карт выше, но charts содержит только ключ запрошенной категории.
Запрос
https://data.skylinkapi.com/v3.1/charts/{icao_code}/{category}| Параметр | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
icao_code | string | Да | - | Код аэропорта ICAO (3–4 символа) |
category | string | Да | - | Категория карт: GEN, GND, SID, STAR или APP |
source | string | Нет | авто | Переопределение автоматически выбранного источника карт |
Ответ
Та же форма, что и у ответа со всеми картами, но charts ограничен запрошенной категорией. Пустой массив категории — это обычный успешный ответ. Элементы карт описываются той же таблицей полей элемента карты.
Важно: отсутствующая категория → пустой массив в ответе 200. Неизвестный аэропорт → 404. Для стран с более медленным хостингом карт закладывайте увеличенные таймауты чтения (30–60 с).
Your SkyLink licence key, for keys bought direct from skylinkapi.com.
In: header
Path Parameters
ICAO airport code
3 <= length <= 4Chart category to filter by
"GEN" | "GND" | "SID" | "STAR" | "APP"Query Parameters
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"
}{
"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-брифинг