API для разработчиков
Открытый API только для чтения: JSON, без ключей, CORS разрешён. Данные онлайна обновляются раз в 5 секунд — не запрашивайте их чаще.
| Запрос | Что возвращает |
|---|---|
| GET /api/v1/status | Название сети, адрес FSD-сервера, состояние данных |
| GET /api/v1/online | Пилоты (позиция, высота, скорость, курс, план) и диспетчеры (частота, рейтинг, позиция) |
| GET /api/v1/stats | Участники, онлайн, число подключений |
| GET /api/v1/members/{cid} | Профиль участника: имя, диспетчерский, пилотский и военный рейтинги, часы пилотом и диспетчером |
| GET /api/v1/members/{cid}/sessions | Последние 50 подключений |
| GET /api/v1/events[?lang=en] | Ближайшие мероприятия |
| GET /api/v1/events/{id}[?lang=en] | Мероприятие |
| GET /api/v1/bookings | Бронирование позиций |
| GET /api/v1/news[?lang=en] | Новости |
| GET /api/v1/pilots/{callsign}/route | Маршрут пилота в сети точками (из SimBrief или восстановленный по плану полёта), пройденный путь, а для планов из SimBrief — бортовой номер и ступенчатый набор |
| GET /api/v1/routes/decode?departure=UUEE&destination=EDDF&route=… | Текст маршрута точками: пункты, раскрытые трассы, координаты; ненайденные элементы |
| GET /api/v1/airports/{icao}/layout | Схема аэропорта: ВПП, рулёжки, перроны, стоянки (OpenStreetMap) |
| GET /api/v1/metar/{icao} | Текущий METAR |
| POST /api/v1/auth/pilot | Проверяет CID и пароль участника для SkyPilot и возвращает имя и рейтинг; 401 при ошибке, 403 для заблокированных |
| GET /api/flightplans/latest?cid={cid} | Последний поданный план участника (формат SkyPilot); 404, если плана нет |
Пример
curl https://sky-network.online/api/v1/online
Время везде — UTC в формате ISO 8601. Сырой поток FSD-сервера доступен и напрямую: /data.json на HTTP-порту сервера.
SkyNetwork Connect
Вход через SkyNetwork для сайтов дивизионов и других сайтов сети (OAuth 2.0, authorization code, поддерживается PKCE). Участник входит на сайте сети и один раз даёт согласие; пароль сайт не видит. Администратор сети регистрирует сайт и выдаёт ему client ID и секрет.
- Отправьте участника на GET https://sky-network.online/oauth/authorize?response_type=code&client_id=…&redirect_uri=…&scope=profile&state=… (по желанию code_challenge и code_challenge_method=S256).
- Участник вернётся на redirect_uri с code и state (или error=access_denied).
- Обменяйте код в течение 5 минут: POST https://sky-network.online/oauth/token (форма: grant_type=authorization_code, code, redirect_uri, client_id, client_secret, code_verifier) → access_token на 1 час.
- GET https://sky-network.online/oauth/userinfo с заголовком Authorization: Bearer access_token → cid, name, rating, staffRank, pilotRating, militaryRating, country; email — при scope email.
API дивизионов
Для сайтов дивизионов. В каждом запросе передаётся ключ дивизиона, который выдаёт администратор сети: заголовок Authorization: Bearer (или X-Api-Key). Ответы в JSON; ошибки приходят как { "error": код, "message": текст }.
| Запрос | Что возвращает |
|---|---|
| GET /api/division/v1/members/{cid} | Участник и его рейтинги: проверить CID перед экзаменом |
| POST /api/division/v1/rating-requests | Ученик сдал экзамен: запросить рейтинг. Заявку одобряет супервайзер |
| GET /api/division/v1/rating-requests[?status=&cid=] | Ваши заявки на рейтинг и их статус: pending, approved, declined, withdrawn |
| GET /api/division/v1/rating-requests/{id} | Заявка на рейтинг |
| DELETE /api/division/v1/rating-requests/{id} | Отозвать заявку, которая ещё на рассмотрении |
Заявка на рейтинг
curl -X POST https://sky-network.online/api/division/v1/rating-requests \
-H "Authorization: Bearer skd_..." -H "Content-Type: application/json" \
-d '{
"cid": 25,
"track": "atc",
"rating": "S2",
"examinerCid": 7,
"examinerName": "Ivan Petrov",
"examDate": "2026-09-20",
"score": "92%",
"reportUrl": "https://academy.example/exams/1841",
"comment": "Practical exam at UUEE_TWR",
"externalId": "exam-1841"
}'
- track — atc, pilot или military; rating — краткое название рейтинга (S1…I3, PPL…FE, M1…M4).
- У участника ещё не должно быть этого рейтинга. На рассмотрении может быть только одна заявка на участника по каждому направлению.
- externalId делает повторы безопасными: с тем же значением вернётся уже созданная заявка, а не новая.
- Ответы: 201 — создана, 200 — уже отправлялась, 401 — неверный ключ, 404 — нет такого участника, 409 — уже есть заявка на рассмотрении, 422 — нельзя, 429 — слишком много запросов.
- Супервайзеры одобряют диспетчерские рейтинги до C3 и все пилотские и военные; инструкторские рейтинги (I1–I3) одобряют администраторы.