API аэропортов России 2026: DME, SVO, VKO, LED, AER, KZN — полный обзор
Tablo API предоставляет реалтайм данные о рейсах из шести крупнейших аэропортов России через единый REST API. Один ключ — все аэропорты.
Покрытие аэропортов
| Код | Аэропорт | Город | |-----|----------|-------| | DME | Домодедово | Москва | | SVO | Шереметьево | Москва | | VKO | Внуково | Москва | | LED | Пулково | Санкт-Петербург | | AER | Сочи | Сочи | | KZN | Казань | Казань |
Данные обновляются каждые 15 минут.
Единый эндпоинт для всех аэропортов
# Прилёты в Домодедово
curl -H "X-API-Key: YOUR_KEY" \
"https://api.tabloapi.ru/v1/flights?airport=DME&type=arrival&date=2026-07-01"
# Вылеты из Пулково
curl -H "X-API-Key: YOUR_KEY" \
"https://api.tabloapi.ru/v1/flights?airport=LED&type=departure&date=2026-07-01"
# Конкретный рейс в Шереметьево
curl -H "X-API-Key: YOUR_KEY" \
"https://api.tabloapi.ru/v1/flights/SU100?airport=SVO"
Параметры запроса
| Параметр | Тип | Описание |
|----------|-----|---------|
| airport | string | Код аэропорта: DME, SVO, VKO, LED, AER, KZN |
| type | string | arrival или departure |
| date | string | Дата в формате YYYY-MM-DD |
Пример ответа
{
"data": [
{
"id": 1,
"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_arrival": "Москва",
"city_departure": "Санкт-Петербург",
"type_aircraft": "Airbus A320",
"timezone_offset": 180
}
],
"data_freshness": {
"SVO": "2026-07-01T10:25:00.000Z"
}
}
Проверка нескольких аэропортов одним скриптом
import requests
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.tabloapi.ru"
AIRPORTS = ["DME", "SVO", "VKO", "LED", "AER", "KZN"]
def get_delayed_flights(date: str) -> dict:
delayed = {}
for code in AIRPORTS:
r = requests.get(
f"{BASE_URL}/v1/flights",
headers={"X-API-Key": API_KEY},
params={"airport": code, "type": "arrival", "date": date}
)
flights = r.json().get("data", [])
delayed[code] = [f for f in flights if f["status"] == "DELAYED"]
return delayed
result = get_delayed_flights("2026-07-01")
for airport, flights in result.items():
print(f"{airport}: {len(flights)} задержанных рейсов")
Актуальность и кэширование
Поле data_freshness показывает время последнего обновления данных по каждому аэропорту. Рекомендуемая стратегия: обновляйте данные не чаще раза в 10–15 минут и храните data_freshness как метку последней синхронизации.
Вебхуки вместо polling
Для получения уведомлений об изменении статуса рейса настройте вебхук через /v1/webhooks. API пришлёт POST на ваш URL при каждом изменении статуса.
Подробнее — в документации.