Save up to 17% with yearly billing

See pricing

Статус рейса

Операционный статус отдельного рейса по расписанию в реальном времени. Передайте номер рейса IATA (2-буквенный префикс авиакомпании + цифры, например BA123) или префикс оператора ICAO (3-буквенный префикс, например BAW123). Ответ содержит время вылета и прилёта, терминал, гейт, стойку регистрации и багажную ленту, если они опубликованы.

Поля гейта, терминала, багажной ленты и стойки регистрации часто содержат пустые строки (""), пока авиакомпания или аэропорт их не опубликует, — не null. Отображайте пустые строки в интерфейсе как «неизвестно» и не выводите их как ошибки конфигурации.

Поиск по префиксу ICAO определяет коды операторов по справочным данным SkyLink. Если номер в формате IATA есть, используйте его: определение европейских операторов менее надёжно, чем поиск по IATA для крупных перевозчиков.

Запрос

Требования

Авторизация
x-api-key в каждом запросе (прямая подписка). Подробнее →
GEThttps://data.skylinkapi.com/v3.1/flight_status/{flight_number}
ПараметрТипОбязательныйОписание
flight_numberstringДаНомер рейса в формате 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_numberstringДаНомер рейса для отображения, например "BA 123"
airlinestringДаНазвание авиакомпании для отображения
statusstringДаТекущая метка статуса — воспринимайте её как текст для отображения, а не как фиксированный enum
departureobjectДаИнформация об аэропорте вылета и гейте
arrivalobjectДаИнформация об аэропорте прилёта и гейте

Объект departure

ПолеТипОбязательныйПримечания
airportstringДаКод аэропорта (IATA или ICAO)
airport_fullstringДаПолное название аэропорта
scheduled_timestringДаМестное время вылета по расписанию
scheduled_datestringДаМестная дата вылета по расписанию
actual_timestringДаФактическое или последнее известное время вылета
actual_datestringДаДата для actual_time
terminalstringДаМожет быть "", если не опубликован
gatestringДаМожет быть "", если неизвестен
checkinstringДаМожет быть "", если не указана

Объект arrival

ПолеТипОбязательныйПримечания
airportstringДаКод аэропорта прилёта
airport_fullstringДаПолное название аэропорта
scheduled_timestringДаМестное время прилёта по расписанию
scheduled_datestringДаМестная дата прилёта по расписанию
estimated_timestringДаПоследнее расчётное время прилёта, когда рейс в пути
estimated_datestringДаДата для estimated_time
terminalstringДаМожет быть "", если недоступен
gatestringДаМожет быть "", если неизвестен
baggagestringДаБагажная лента — может быть "", если не опубликована

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

"""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"
}

Обычно это означает, что рейс сегодня не выполняется, номер некорректен или источник данных ещё не опубликовал его. У этого эндпоинта нет параметра даты — день выполнения рейса проверяйте в разделе Расписания.

GET
/flight_status/{flight_number}
x-api-key<token>

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

In: header

Path Parameters

flight_number*Flight Number

IATA flight number (BA123) or ATC callsign (BAW123, QTR31K, NOZ6PU)

Length2 <= length <= 10

Response 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": {}
    }
  ]
}

См. также: Расписания · Брифинг полёта · Авиакомпании