Save up to 17% with yearly billing

See pricing

Страны

Справочные данные о странах по ISO 3166-1 alpha-2 для форм выбора аэропортов, фильтров по континенту и проверки поля iso_country в записях аэропортов. Две операции: получение списка всех стран (с необязательной фильтрацией по континенту) и получение одной страны по коду. Если в списке нет совпадений, возвращается countries: [] с HTTP 200.

ЭндпоинтКогда использовать
GET /countriesЗаполнение списков выбора страны или фильтрация списков аэропортов по континенту
GET /countries/{code}Преобразование одного кода ISO в каноническое название

Список стран

Возвращает все страны с необязательной фильтрацией по коду континента (AF, AN, AS, EU, NA, OC, SA).

Запрос

Требования

Авторизация
x-api-key в каждом запросе (прямая подписка). Подробнее →
GEThttps://data.skylinkapi.com/v3.1/countries
ПараметрТипОбязательныйПо умолчаниюОписание
continentstringНетвсе континентыКод континента (AF, AN, AS, EU, NA, OC, SA)

Ответ

{
  "countries": [
    {
      "id": 302755,
      "code": "US",
      "name": "United States",
      "continent": null,
      "wikipedia_link": "https://en.wikipedia.org/wiki/United_States",
      "keywords": "American airports"
    }
  ],
  "total": 1
}
ПолеТипОбязательныйNull?Описание
countriesarrayДаНикогдаПодходящие записи о странах
totalintegerДаНикогдаКоличество возвращённых записей

Элемент страны (countries[])

ПолеТипОбязательныйNull?Описание
idintegerДаНикогдаЧисловой идентификатор записи
codestringДаНикогдаКод ISO 3166-1 alpha-2
namestringДаНикогдаНазвание страны
continentstring | nullНетДаКод континента, если назначен
wikipedia_linkstring | nullНетДаСправочный URL
keywordsstring | nullНетДаПроизвольные текстовые теги

Получение страны по коду

Получите одну страну по коду ISO 3166-1 alpha-2 (например, US, GB). Возвращает 404, если код не найден.

Запрос

GEThttps://data.skylinkapi.com/v3.1/countries/{code}
ПараметрТипОбязательныйОписание
codestringДаКод страны в параметре пути (alpha-2)

Ответ

{
  "id": 302755,
  "code": "US",
  "name": "United States",
  "continent": null,
  "wikipedia_link": "https://en.wikipedia.org/wiki/United_States",
  "keywords": "American airports"
}

Структура объекта та же, что и у элементов списка. continent, wikipedia_link и keywords могут быть null.

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

"""Country reference models for /countries endpoints."""from __future__ import annotationsfrom dataclasses import dataclass@dataclassclass CountriesListRequest:    continent: str | None = None@dataclassclass CountryByCodeRequest:    code: str@dataclassclass CountryRecord:    id: int    code: str    name: str    continent: str | None    wikipedia_link: str | None    keywords: str | None@dataclassclass CountriesResponse:    countries: list[CountryRecord]    total: int

Интеграция

Сформируйте проверенный список стран для фильтров аэропортов или маршрутов.

Пример ниже кэширует справочные данные о странах на 24 часа и использует явные тайм-ауты, чтобы формы отрисовывались без задержек.

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]] = {}COUNTRIES_TTL = 86_400  # 24 h@dataclassclass CountryOption:    code: str    label: strdef fetch_countries(*, continent: str | None = None) -> list[dict]:    key = f"countries:{continent or 'all'}"    cached = CACHE.get(key)    if cached and time.time() < cached[1]:        return cached[0]["countries"]    params = {"continent": continent} if continent else None    try:        r = requests.get(f"{BASE}/countries", headers=HEADERS, params=params, timeout=(10, 15))    except requests.Timeout as exc:        raise RuntimeError("SkyLink timeout fetching countries") from exc    r.raise_for_status()    data = r.json()    CACHE[key] = (data, time.time() + COUNTRIES_TTL)    return data.get("countries", [])def get_country_by_code(code: str) -> dict | None:    code = code.upper()    try:        r = requests.get(f"{BASE}/countries/{code}", headers=HEADERS, timeout=(10, 15))    except requests.Timeout as exc:        raise RuntimeError(f"SkyLink timeout fetching country {code}") from exc    if r.status_code == 404:        return None    r.raise_for_status()    return r.json()def country_options(continent: str | None = None) -> list[CountryOption]:    items = fetch_countries(continent=continent)    return [CountryOption(code=item["code"], label=item["name"]) for item in items]if __name__ == "__main__":    import json    us = get_country_by_code("US")    print(json.dumps(us, indent=2, default=str))

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

Фильтрация по континенту. Передавайте continent, чтобы уменьшить объём данных в продуктах для конкретных регионов (например, только NA и EU).

Нормализация кода. Переводите пользовательский ввод в верхний регистр перед поиском (us → US), чтобы избежать ложных ошибок 404.

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

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

404 - страна не найдена

{
  "detail": "Country 'XX' not found"
}

400 - недопустимый фильтр континента

{
  "detail": "Invalid continent 'XX'. Valid values: AF, AN, AS, EU, NA, OC, SA"
}
GET
/countries
x-api-key<token>

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

In: header

Query Parameters

continent?|

Filter by continent code: AF (Africa), AN (Antarctica), AS (Asia), EU (Europe), NA (North America), OC (Oceania), SA (South America)

Response Body

application/json

application/json

curl -X GET "https://data.skylinkapi.com/v3.1/countries"
{
  "countries": [
    {
      "id": 0,
      "code": "string",
      "name": "string",
      "continent": "string",
      "wikipedia_link": "string",
      "keywords": "string"
    }
  ],
  "total": 0
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}
GET
/countries/{code}
x-api-key<token>

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

In: header

Path Parameters

code*Code

ISO 3166-1 alpha-2 country code (e.g. US, GB, DE)

Response Body

application/json

application/json

curl -X GET "https://data.skylinkapi.com/v3.1/countries/US"
{
  "id": 0,
  "code": "string",
  "name": "string",
  "continent": "string",
  "wikipedia_link": "string",
  "keywords": "string"
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

См. также: Регионы · Аэропорты · Поиск аэропортов