# Начало работы

Подайте заявку на FREE Trial или оформите подписку — учётные данные, защита ключа, публичные эндпоинты и первый запрос к SkyLink API.



SkyLink API продаётся по двум каналам: **напрямую у нас** (оплата через наш собственный портал) и через **маркетплейс RapidAPI**. Оба отдают одни и те же данные — различаются только базовый URL и заголовок аутентификации. Вы оформляете подписку (или подаёте заявку на пробный период), копируете ключ и отправляете HTTPS-запросы; каждый ответ приходит в формате JSON.

## Выберите канал [#choose-your-channel]

Выберите тот, через который вы совершили покупку. Все базовые URL, заголовки и примеры кода в этой документации следуют этому переключателю, а ваш выбор запоминается на всех страницах.

<ApiProviderToggle />

|                | Direct API                                                                                        | RapidAPI                                                                                             |
| -------------- | ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| Базовый URL    | `https://data.skylinkapi.com&#x60; &#x2A;*+ `/v3.1`, `/v3` или `/v2`**                            | `https://skylink-api.p.rapidapi.com` (без сегмента версии)                                           |
| Аутентификация | `x-api-key`                                                                                       | `X-RapidAPI-Key` **и** `X-RapidAPI-Host`                                                             |
| Где купить     | [наша страница оплаты](https://buy.polar.sh/polar_cl_ELkXgbbG4kqTfypfbxTmPpoz8cb4sHCVgvZOo1zvPmk) | [страница на RapidAPI](https://rapidapi.com/skylink-api-skylink-api-default/api/skylink-api/pricing) |
| Оплата         | Polar (merchant of record)                                                                        | RapidAPI                                                                                             |

<a id="step-1--subscribe-and-get-your-credentials" />

## Шаг 1 — оформите подписку и получите учётные данные [#step-1--subscribe-and-get-your-credentials]

### FREE Trial [#free-trial]

**FREE Trial** (1000 запросов в месяц) **не** оформляется самостоятельно. [Подайте заявку на FREE Trial SkyLink API](https://skylinkapi.com/apply/) — заявки рассматриваются еженедельно; большинство команд получают ответ в течение 3–5 рабочих дней.

### Платные тарифы [#paid-plans]

<ForProvider only="direct">
  1. Откройте [страницу оплаты SkyLink API](https://buy.polar.sh/polar_cl_ELkXgbbG4kqTfypfbxTmPpoz8cb4sHCVgvZOo1zvPmk) и выберите Basic или Pro с ежемесячной или ежегодной оплатой ([сравнить тарифы](/docs/rate-limits#plans)).
  2. После оплаты ваш **лицензионный ключ** отображается на странице подтверждения и отправляется вам по электронной почте; он всегда доступен в вашем [клиентском портале Polar](https://polar.sh/skylink-api/portal/).

  Каждый аутентифицированный запрос содержит один заголовок:

  | Заголовок   | Значение              |
  | ----------- | --------------------- |
  | `x-api-key` | Ваш лицензионный ключ |

  Заголовок — единственный допустимый способ передачи: ключ никогда не считывается из query-параметра. Отсутствующий или неизвестный ключ возвращает `401`.

  **Версия указывается в пути.** `https://data.skylinkapi.com/v3.1/...` для v3.1, `/v3/...` и `/v2/...` для более старых поколений.
</ForProvider>

<ForProvider only="rapidapi">
  1. Откройте [RapidAPI → SkyLink API](https://rapidapi.com/skylink-api-skylink-api-default/api/skylink-api/pricing) и оформите подписку Basic или Pro ([сравнить тарифы](/docs/rate-limits#plans)).
  2. После оформления подписки перейдите на вкладку **Endpoints** и скопируйте ваш `X-RapidAPI-Key` из фрагмента кода справа.

  Каждый аутентифицированный запрос требует **оба** этих заголовка:

  | Заголовок         | Значение                                                           |
  | ----------------- | ------------------------------------------------------------------ |
  | `X-RapidAPI-Key`  | Ваш ключ подписки из панели управления RapidAPI                    |
  | `X-RapidAPI-Host` | `skylink-api.p.rapidapi.com` (фиксированное — всегда это значение) |

  Если любой из заголовков отсутствует, шлюз RapidAPI возвращает `401` ещё до того, как запрос достигнет SkyLink.

  **Без сегмента версии.** Хост шлюза обслуживает все поколения по пути без префикса — `https://skylink-api.p.rapidapi.com/weather/metar/KJFK`.
</ForProvider>

<a id="key-security" />

### Защита ключа [#key-security]

* **Никогда не встраивайте ключ** в мобильные приложения, браузерный JavaScript или публичные репозитории — он даёт полный доступ к API в рамках квоты вашей подписки.
* **Храните его в переменной окружения** (например, `SKYLINK_API_KEY`) и подставляйте на стороне сервера во время выполнения.
* **Смените ключ** в панели управления оплатой, если он когда-либо был раскрыт.

### Публичные эндпоинты (ключ не требуется) [#public-endpoints-no-key-required]

Спецификации OpenAPI и проверка работоспособности upstream-сервиса отдаются с `api.skylinkapi.com` — отдельно и от хоста данных, и от прокси RapidAPI — и не требуют ключа:

| Эндпоинт                                           | Описание                                    |
| -------------------------------------------------- | ------------------------------------------- |
| `GET https://api.skylinkapi.com/health`            | Проверка работоспособности upstream-сервиса |
| `GET https://api.skylinkapi.com/v2/openapi.json`   | Спецификация OpenAPI v2                     |
| `GET https://api.skylinkapi.com/v3/openapi.json`   | Спецификация OpenAPI v3                     |
| `GET https://api.skylinkapi.com/v3.1/openapi.json` | Спецификация OpenAPI v3.1                   |

**Важно:** вызов `/health` или `/` на хосте данных возвращает `404`. Используйте `api.skylinkapi.com` только для спецификаций без аутентификации и проверок работоспособности.

<a id="step-2--make-your-first-request" />

## Шаг 2 — отправьте первый запрос [#step-2--make-your-first-request]

<DocApiPath method="GET" path="/weather/metar/{icao}" />

Пример: `?parsed=true` для `/weather/metar/KJFK`.

Заголовки: [Шаг 1](#step-1--subscribe-and-get-your-credentials).

<DocExample id="getting-started/first-request" />

## Официальные SDK [#official-sdks]

Предпочитаете типизированный клиент вместо «сырого» HTTP? Оба официальных SDK опубликованы под именем `skylink-api`, оборачивают одни и те же эндпоинты, считывают ваш ключ из окружения и возвращают типизированные модели.

| Язык       | Реестр                                                           | Установка                 |
| ---------- | ---------------------------------------------------------------- | ------------------------- |
| Python     | [PyPI → `skylink-api`](https://pypi.org/project/skylink-api/)    | `pip install skylink-api` |
| TypeScript | [npm → `skylink-api`](https://www.npmjs.com/package/skylink-api) | `npm install skylink-api` |

```python
from skylink_api import SkyLink

with SkyLink() as sky:
    metar = sky.weather.metar("KJFK")
    traffic = sky.adsb.aircraft(lat=51.47, lon=-0.46, radius=75)
    status = sky.flight_status("BA117")
```

```typescript
import { SkyLink } from "skylink-api";

// Direct channel — omit `provider` to use RapidAPI, the SDK's default.
const sky = new SkyLink({ provider: "direct", apiKey: process.env.SKYLINK_API_KEY });

const metar = await sky.weather.metar("KJFK", { parsed: true });
const flight = await sky.flightStatus("BA117");
```

Оба канала предоставляют идентичный набор методов — `provider` определяет лишь базовый URL и то, какие заголовки аутентификации отправляются.

Клиент для Python требует Python 3.10+ и зависит от `httpx` и `pydantic` v2. Клиент для TypeScript требует Node 20+ (или любую среду выполнения с глобальным `fetch` — Bun, Deno, Cloudflare Workers, Vercel Edge), не имеет зависимостей во время выполнения и включает встроенные повторные попытки и учёт квоты. Клиент для TypeScript считывает `RAPIDAPI_KEY` или `SKYLINK_API_KEY` из окружения, если ключ не передан явно.

## Что вы получаете в ответ [#what-you-get-back]

Успешный ответ [METAR](https://en.wikipedia.org/wiki/METAR) с `parsed=true` выглядит так:

```json
{
  "raw": "METAR KJFK 062251Z 24017G23KT 10SM FEW060 FEW075 SCT110 BKN180 BKN250 28/17 A2974 RMK AO2 SLP072 T02830167 $",
  "icao": "KJFK",
  "airport_name": "John F. Kennedy International Airport",
  "timestamp": "2026-06-06T23:09:37Z",
  "parsed": {
    "time": "2026-06-07T00:51:00+02:00",
    "wind": { "direction": 240, "speed": 17, "gust": 23, "variable": [] },
    "visibility": { "value": 10, "repr": "10" },
    "flight_rules": "VFR",
    "temperature": 28,
    "dewpoint": 17,
    "altimeter": 29.74
  }
}
```

`parsed.flight_rules` — это **категория полётных условий**, определяемая по высоте нижней границы облаков и видимости: `VFR` (правила визуальных полётов), `MVFR` (пограничные VFR), `IFR` (правила полётов по приборам) или `LIFR` (низкие IFR). Полные таблицы полей и правила допустимости значения null: [справочник по METAR](/docs/v31/weather-metar#parsed-parsedtrue).

При `parsed=false` (или если параметр не указан) ключ `parsed` отсутствует — вы получаете только `raw`, `icao`, `airport_name` и `timestamp`.

## Дальнейшие шаги [#next-steps]

* [Справочник API v3.1](/docs/v31/overview&#x29; — полный перечень эндпоинтов &#x2A;(начните отсюда)*
* [Обработка ошибок](/docs/errors) — формат ошибок, коды статуса, правила повторных попыток
* [Ограничения частоты запросов](/docs/rate-limits) — тарифы, заголовки квоты, уровни путей исторических данных [ADS-B](https://www.faa.gov/air_traffic/technology/adsb)
* [Справочник API v3](/docs/v3/overview) — стабильная версия
* [Справочник API v2](/docs/v2/overview) — устаревшая версия
* [Python SDK](https://pypi.org/project/skylink-api/) · [TypeScript SDK](https://www.npmjs.com/package/skylink-api) — типизированные клиенты
