Статус рейса
Операционный статус отдельного рейса по расписанию в реальном времени. Передайте номер рейса IATA (2-буквенный префикс авиакомпании + цифры, например BA123) или префикс оператора ICAO (3-буквенный префикс, например BAW123). Ответ содержит время вылета и прилёта, терминал, гейт, стойку регистрации и багажную ленту, если они опубликованы.
Поля гейта, терминала, багажной ленты и стойки регистрации часто содержат пустые строки (""), пока авиакомпания или аэропорт их не опубликует, — не null. Отображайте пустые строки в интерфейсе как «неизвестно» и не выводите их как ошибки конфигурации.
Поиск по префиксу ICAO определяет коды операторов по справочным данным SkyLink. Если номер в формате IATA есть, используйте его: определение европейских операторов менее надёжно, чем поиск по IATA для крупных перевозчиков.
Запрос
Требования
x-api-key в каждом запросе (прямая подписка). Подробнее →https://data.skylinkapi.com/v3.1/flight_status/{flight_number}| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
flight_number | string | Да | Номер рейса в формате IATA (BA123) или префикс оператора ICAO + цифры (BAW123) |
Ответ
{
"flight_number": "BA 123",
"airline": "British Airways",
"status": "En Route",
"departure": {
"airport": "EGLL",
"airport_full": "London Heathrow Airport",
"scheduled_time": "10:30",
"scheduled_date": "11 Feb",
"actual_time": "10:35",
"actual_date": "11 Feb",
"terminal": "5",
"gate": "A12",
"checkin": ""
},
"arrival": {
"airport": "KJFK",
"airport_full": "John F Kennedy International Airport",
"scheduled_time": "14:45",
"scheduled_date": "11 Feb",
"estimated_time": "14:50",
"estimated_date": "11 Feb",
"terminal": "7",
"gate": "B15",
"baggage": ""
}
}Поля верхнего уровня
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
flight_number | string | Да | Номер рейса для отображения, например "BA 123" |
airline | string | Да | Название авиакомпании для отображения |
status | string | Да | Текущая метка статуса — воспринимайте её как текст для отображения, а не как фиксированный enum |
departure | object | Да | Информация об аэропорте вылета и гейте |
arrival | object | Да | Информация об аэропорте прилёта и гейте |
Объект departure
| Поле | Тип | Обязательный | Примечания |
|---|---|---|---|
airport | string | Да | Код аэропорта (IATA или ICAO) |
airport_full | string | Да | Полное название аэропорта |
scheduled_time | string | Да | Местное время вылета по расписанию |
scheduled_date | string | Да | Местная дата вылета по расписанию |
actual_time | string | Да | Фактическое или последнее известное время вылета |
actual_date | string | Да | Дата для actual_time |
terminal | string | Да | Может быть "", если не опубликован |
gate | string | Да | Может быть "", если неизвестен |
checkin | string | Да | Может быть "", если не указана |
Объект arrival
| Поле | Тип | Обязательный | Примечания |
|---|---|---|---|
airport | string | Да | Код аэропорта прилёта |
airport_full | string | Да | Полное название аэропорта |
scheduled_time | string | Да | Местное время прилёта по расписанию |
scheduled_date | string | Да | Местная дата прилёта по расписанию |
estimated_time | string | Да | Последнее расчётное время прилёта, когда рейс в пути |
estimated_date | string | Да | Дата для estimated_time |
terminal | string | Да | Может быть "", если недоступен |
gate | string | Да | Может быть "", если неизвестен |
baggage | string | Да | Багажная лента — может быть "", если не опубликована |
Клиентские типы
"""Flight status response models for /flight_status/{flight_number}."""from __future__ import annotationsfrom dataclasses import dataclass@dataclassclass FlightStatusRequest: """Request input for GET /flight_status/{flight_number}.""" flight_number: str@dataclassclass DepartureInfo: airport: str airport_full: str scheduled_time: str scheduled_date: str actual_time: str actual_date: str terminal: str gate: str checkin: str@dataclassclass ArrivalInfo: airport: str airport_full: str scheduled_time: str scheduled_date: str estimated_time: str estimated_date: str terminal: str gate: str baggage: str@dataclassclass FlightStatusResponse: flight_number: str airline: str status: str departure: DepartureInfo arrival: ArrivalInfoИнтеграция
Соберите компактную карточку статуса рейса на основе одной вспомогательной функции запроса.
Пример ниже нормализует введённый номер рейса для отображения, применяет тайм-ауты подключения и чтения и преобразует ответ в плоскую модель представления для UI-компонентов.
import osimport requestsBASE = "https://data.skylinkapi.com/v3.1"HEADERS = { "x-api-key": os.getenv("SKYLINK_API_KEY", "YOUR_API_KEY")}def fetch_flight_status(flight_number: str) -> dict: """Fetch a single flight status snapshot by flight number.""" r = requests.get( f"{BASE}/flight_status/{flight_number}", headers=HEADERS, timeout=(10, 15), ) r.raise_for_status() return r.json()if __name__ == "__main__": import json status = fetch_flight_status("AA100") print(json.dumps(status, indent=2, default=str))Примечания по реализации
Обработка отсутствующих данных о гейте и терминале. Поля гейта, терминала, багажной ленты и стойки регистрации часто остаются пустыми строками почти до самого вылета или прилёта. Скрывайте их или показывайте нейтральный плейсхолдер, а не баннер с ошибкой.
Метки статуса. Не зашивайте в код исчерпывающий enum статусов. Обрабатывайте отдельно только то, что нужно вашему интерфейсу (например, Cancelled и Landed для цветовой маркировки).
Частота опроса. Для потребительских табло рейсов опрашивайте каждые 2–5 минут. Для push-обновлений см. Вебхуки.
Ответы с ошибками
Общие ошибки платформы см. в разделе Обработка ошибок. Специфичные для эндпоинта:
404 — рейс не найден
{
"detail": "Flight not found for number: BA123"
}Обычно это означает, что рейс сегодня не выполняется, номер некорректен или источник данных ещё не опубликовал его. У этого эндпоинта нет параметра даты — день выполнения рейса проверяйте в разделе Расписания.
Your SkyLink licence key, for keys bought direct from skylinkapi.com.
In: header
Path Parameters
IATA flight number (BA123) or ATC callsign (BAW123, QTR31K, NOZ6PU)
2 <= length <= 10Response Body
application/json
application/json
curl -X GET "https://data.skylinkapi.com/v3.1/flight_status/UA100"{
"flight_number": "BA 123",
"airline": "British Airways",
"status": "En Route",
"departure": {
"airport": "EGLL",
"airport_full": "London Heathrow Airport",
"scheduled_time": "10:30",
"scheduled_date": "11 Feb",
"actual_time": "10:35",
"actual_date": "11 Feb",
"terminal": "5",
"gate": "A12",
"checkin": ""
},
"arrival": {
"airport": "KJFK",
"airport_full": "John F Kennedy International Airport",
"scheduled_time": "14:45",
"scheduled_date": "11 Feb",
"estimated_time": "14:50",
"estimated_date": "11 Feb",
"terminal": "7",
"gate": "B15",
"baggage": ""
}
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}См. также: Расписания · Брифинг полёта · Авиакомпании