Полётный брифинг
Формируйте предполётный брифинг (стандартизированную сводку погоды, NOTAM и операционных извещений для планируемого полёта) для пары аэропортов вылета и назначения по кодам ICAO. Эндпоинт объединяет METAR, TAF, NOTAM и (опционально) PIREP, а затем возвращает либо структурированный JSON, либо готовый к отображению текст.
Этот брифинг носит вспомогательный характер — он не заменяет официальное разрешение на вылет от службы диспетчеризации или публикации уполномоченных органов. Показывайте заметное предупреждение об этом в приложениях для пользователей.
ИИ-эндпоинты уровня Enterprise (включая этот брифинг) работают на инфраструктуре IBM Granite. Свяжитесь со SkyLink, чтобы узнать о вариантах корпоративного развёртывания помимо стандартных тарифов RapidAPI.
Запрос
Требования
x-api-key в каждом запросе (прямая подписка). Подробнее →https://data.skylinkapi.com/v3.1/briefing/flight| Параметр | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
origin | string | Да | - | ICAO-код аэропорта вылета, например KJFK |
destination | string | Да | - | ICAO-код аэропорта назначения, например EGLL |
include_weather | boolean | Нет | true | Включить METAR/TAF |
include_notams | boolean | Нет | true | Включить действующие NOTAM |
include_pireps | boolean | Нет | false | Включить недавние PIREP вдоль маршрута (увеличивает задержку) |
format | string | Нет | json | json, markdown, plain_text или html |
Хотя бы один из параметров include_weather, include_notams или include_pireps должен оставаться включённым.
Ответ
Структурированный JSON (format=json)
{
"origin": "KJFK",
"destination": "EGLL",
"summary": "VFR at KJFK, MVFR at EGLL with light rain and wet-runway delay risk.",
"critical_restrictions": [],
"origin_briefing": {
"icao": "KJFK",
"weather": {
"metar_raw": "KJFK 151856Z 31008KT 10SM FEW250 08/M06 A3012 RMK AO2 SLP204",
"taf_raw": "TAF KJFK 151730Z 1518/1624 30010KT P6SM FEW250"
},
"notams": []
},
"destination_briefing": {
"icao": "EGLL",
"weather": {
"metar_raw": "EGLL 151850Z 22012KT 4000 -RA BKN030 07/05 Q1009",
"taf_raw": "TAF EGLL 151658Z 1518/1624 22012KT 6000 -RA BKN030"
},
"notams": []
},
"pireps": []
}Текст и разметка (format=markdown|plain_text|html)
{
"origin": "KJFK",
"destination": "EGLL",
"briefing": "# Flight Briefing\n\n- Route: KJFK -> EGLL\n- Weather: ..."
}Основные поля
| Поле | Тип | Формат | Описание |
|---|---|---|---|
origin | string | все | ICAO-код аэропорта вылета |
destination | string | все | ICAO-код аэропорта назначения |
summary | string | json | Операционная сводка, сгенерированная ИИ |
critical_restrictions | string[] | json | Ограничения высокого приоритета из исходных данных |
origin_briefing | object | json | Раздел по аэропорту вылета |
destination_briefing | object | json | Раздел по аэропорту назначения |
pireps | array | json | PIREP, относящиеся к маршруту, если включены |
briefing | string | текст/html | Готовое к отображению содержимое |
Брифинг по аэропорту (origin_briefing / destination_briefing)
| Поле | Тип | Описание |
|---|---|---|
icao | string | ICAO-код аэропорта |
weather.metar_raw | string | null | Текст последней сводки METAR или null, если недоступен |
weather.taf_raw | string | null | Текст последнего TAF или null, если недоступен |
notams | array | Действующие записи NOTAM — та же структура, что и в NOTAM |
PIREP по маршруту (pireps[])
При include_pireps=true каждый элемент соответствует модели полей донесения PIREP. Массив пуст, если ни одно донесение не пересекает коридор маршрута.
Чтобы получить PDF для скачивания с теми же входными данными маршрута, используйте Брифинг в PDF (departure_icao / arrival_icao соответствуют здесь origin / destination).
Клиентские типы
"""Flight briefing models for /briefing/flight."""from __future__ import annotationsfrom dataclasses import dataclass, fieldfrom typing import Any@dataclassclass FlightBriefingRequest: origin: str destination: str include_weather: bool = True include_notams: bool = True include_pireps: bool = False format: str = "json"@dataclassclass FlightBriefingStructuredResponse: origin: str destination: str summary: str critical_restrictions: list[str] = field(default_factory=list) origin_briefing: dict[str, Any] = field(default_factory=dict) destination_briefing: dict[str, Any] = field(default_factory=dict) pireps: list[Any] = field(default_factory=list)@dataclassclass FlightBriefingTextResponse: origin: str destination: str briefing: strИнтеграция
Выполняйте вызов с format=json, задавайте явные тайм-ауты и преобразуйте результат в данные для карточки диспетчеризации.
import osimport requestsBASE = "https://data.skylinkapi.com/v3.1"HEADERS = { "x-api-key": os.getenv("SKYLINK_API_KEY", "YOUR_API_KEY")}def fetch_flight_briefing(origin: str, destination: str) -> dict: """Generate an AI-powered briefing for a route.""" r = requests.get( f"{BASE}/briefing/flight", headers=HEADERS, params={ "origin": origin, "destination": destination, "include_weather": "true", "include_notams": "true", "include_pireps": "false", "format": "json", }, timeout=(10, 25), ) r.raise_for_status() return r.json()if __name__ == "__main__": import json briefing = fetch_flight_briefing("KJFK", "KLAX") print(json.dumps(briefing, indent=2, default=str)[:4000])Примечания по реализации
Компромисс по задержке. include_pireps=true добавляет этап пространственного поиска и заметно увеличивает время ответа. Отключайте этот параметр в режимах интерфейса с быстрым обновлением.
Выбор формата. Используйте json для логики приложения и типизированной отрисовки. Используйте markdown / html только для экспорта в удобочитаемом виде.
Операционное предупреждение. Сводка ИИ носит вспомогательный характер и не является официальной документацией для диспетчеризации рейса — сообщайте об этом в своём продукте.
Ответы с ошибками
Общие ошибки см. в разделе Обработка ошибок. Ошибки, специфичные для эндпоинта:
422 - недопустимый код ICAO или неподдерживаемый формат
{
"detail": [
{
"type": "string_pattern_mismatch",
"loc": ["query", "format"],
"msg": "String should match pattern '^(json|markdown|plain_text|html)$'"
}
]
}Your SkyLink licence key, for keys bought direct from skylinkapi.com.
In: header
Query Parameters
Origin ICAO airport code (e.g. KJFK)
4 <= length <= 4Destination ICAO airport code (e.g. EGLL)
4 <= length <= 4Include METAR/TAF weather data
trueInclude NOTAMs
trueInclude PIREPs (pilot reports)
falseOutput format: 'json' (structured), 'markdown', 'plain_text', or 'html'
"json"^(json|markdown|plain_text|html)$Response Body
application/json
application/json
curl -X GET "https://data.skylinkapi.com/v3.1/briefing/flight?origin=stri&destination=stri"{
"origin": "KJFK",
"destination": "EGLL",
"summary": "VFR conditions at KJFK with clear skies and light winds. EGLL is MVFR with broken clouds at 3,000 feet and visibility 4 statute miles in light rain. No critical restrictions at either airport. Expect minor delays at EGLL due to wet runway conditions.",
"critical_restrictions": [],
"origin_briefing": {
"icao": "KJFK",
"weather": {
"metar_raw": "KJFK 151856Z 31008KT 10SM FEW250 08/M06 A3012 RMK AO2 SLP204",
"taf_raw": "TAF KJFK 151730Z 1518/1624 31010KT P6SM FEW250",
"conditions": "VFR. Visibility 10 statute miles. Few clouds at 25,000 feet. Wind from 310 degrees at 8 knots. Temperature 8°C, dewpoint -6°C. Altimeter 30.12 inHg."
},
"notams": [
{
"title": "Taxiway B closed",
"description": "Taxiway B between A and C is closed for maintenance. Use Taxiway D as alternate. Valid until Feb 20 at 18:00 UTC.",
"affected": "TWY B",
"notam_id": "01/234"
}
]
},
"destination_briefing": {
"icao": "EGLL",
"weather": {
"metar_raw": "EGLL 151850Z AUTO 24012KT 4000 -RA BKN030 06/04 Q1023",
"taf_raw": "TAF EGLL 151700Z 1518/1624 24015KT 5000 -RA BKN025",
"conditions": "MVFR. Visibility 4,000 meters (2.5 statute miles) in light rain. Broken clouds at 3,000 feet. Wind from 240 degrees at 12 knots. Temperature 6°C, dewpoint 4°C. Altimeter 1023 hPa."
},
"notams": []
},
"data_included": [
"metar",
"taf",
"notams"
],
"disclaimer": "This briefing is AI-generated and for informational purposes only. Always verify with official sources before flight operations."
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}См. также: Брифинг в PDF · METAR · NOTAM