Как получить статус рейса через REST API — примеры на Python и JavaScript
Если вам нужны актуальные данные о статусах рейсов из российских аэропортов (DME, SVO, VKO, LED, AER, KZN), REST API — самый надёжный способ интеграции. В этой статье — рабочие примеры на Python и JavaScript, которые можно запустить прямо сейчас.
Что нужно для начала
- API-ключ (запросите доступ на главной странице)
- 5 минут
Пример на Python
import requests
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.tabloapi.ru"
def get_flight_status(flight_number: str, airport: str, date: str) -> dict:
response = requests.get(
f"{BASE_URL}/v1/flights/{flight_number}",
headers={"X-API-Key": API_KEY},
params={"airport": airport, "date": date}
)
response.raise_for_status()
return response.json()
# Статус рейса SU100 в Шереметьево
flight = get_flight_status("SU100", "SVO", "2026-07-01")
print(flight["data"]["status"]) # → "LANDED"
print(flight["data"]["subStatus"]) # → "ARRIVED"
Пример на JavaScript
const API_KEY = "YOUR_API_KEY";
const BASE_URL = "https://api.tabloapi.ru";
async function getFlightStatus(flightNumber, airport, date) {
const params = new URLSearchParams({ airport, date });
const res = await fetch(`${BASE_URL}/v1/flights/${flightNumber}?${params}`, {
headers: { "X-API-Key": API_KEY }
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
return res.json();
}
const flight = await getFlightStatus("SU100", "SVO", "2026-07-01");
console.log(flight.data.status); // → "LANDED"
console.log(flight.data.subStatus); // → "ARRIVED"
Структура ответа
{
"data": {
"name": "SU100",
"airport_code": "SVO",
"status": "LANDED",
"subStatus": "ARRIVED",
"date_arrival_plan": "2026-07-01T10:30:00.000Z",
"date_arrival_fact": "2026-07-01T10:28:00.000Z",
"city_departure": "Санкт-Петербург",
"type_aircraft": "Airbus A320"
}
}
Справочник статусов
| status | subStatus | Значение |
|--------|-----------|---------|
| SCHEDULED | — | Рейс по расписанию |
| DELAYED | — | Задержан |
| DEPARTED | — | Вылетел |
| LANDED | ARRIVED | Приземлился |
| CANCELLED | — | Отменён |
Получить все рейсы за день
def get_all_arrivals(airport: str, date: str) -> list:
response = requests.get(
f"{BASE_URL}/v1/flights",
headers={"X-API-Key": API_KEY},
params={"airport": airport, "type": "arrival", "date": date}
)
response.raise_for_status()
return response.json()["data"]
arrivals = get_all_arrivals("SVO", "2026-07-01")
delayed = [f for f in arrivals if f["status"] == "DELAYED"]
print(f"Задержано рейсов: {len(delayed)}")
Актуальность данных
Данные обновляются каждые 15 минут. Поле data_freshness в ответе показывает время последнего обновления:
{
"data_freshness": {
"SVO": "2026-07-01T10:25:00.000Z"
}
}
Вебхуки: push вместо polling
Вместо периодических запросов можно настроить вебхук — API пришлёт POST-запрос на ваш эндпоинт при изменении статуса рейса. Подробнее в документации.
Tablo API покрывает 6 аэропортов России: DME, SVO, VKO, LED, AER, KZN. Запросить доступ →