Schedules
Endpoints для аэропортов, маршрутов и рейсов.
Базовый префикс: /api/v1/schedules/
Все endpoints требуют X-API-Key (любой тип — pk_* или sk_*).
Подробности в Authentication.
Catalog (read-only, доступно publishable key)
GET /airports
Поиск аэропортов для autocomplete.
Query параметры:
search— по IATA / city / name (мин. 2 символа)country— ISO country code (KGZ,KAZ,RUS, ...)limit— макс результатов (default 50, max 200)
curl -H "X-API-Key: $KEY" \
"https://api.nurcore.kg/api/v1/schedules/airports?search=BSZ"GET /routes
Маршруты по origin и destination IATA.
curl -H "X-API-Key: $KEY" \
"https://api.nurcore.kg/api/v1/schedules/routes?origin=BSZ&destination=OSS"GET /flights/{id}
Карточка одного рейса (route, расписание, статус, gate).
curl -H "X-API-Key: $KEY" \
"https://api.nurcore.kg/api/v1/schedules/flights/5c4ece6b-8193-41bf-95ea-ab3ff4a0a2e8"Response:
{
"flight_id": "uuid",
"flight_number": "MN-001",
"flight_date": "2026-05-10",
"scheduled_departure": "2026-05-10T08:00:00+00:00",
"scheduled_arrival": "2026-05-10T08:50:00+00:00",
"status": "scheduled",
"delay_minutes": 0,
"departure_gate": null,
"arrival_gate": null,
"route": {
"route_code": "BSZ-OSS",
"origin": { "iata": "BSZ", "city": "Бишкек" },
"destination": { "iata": "OSS", "city": "Ош" }
}
}GET /flights/
Список рейсов с пагинацией.
Query:
flight_date—YYYY-MM-DDflight_number— точное совпадениеstatus—scheduled | boarding | departed | arrived | cancelled | delayedroute_code—BSZ-OSS
POST /flights/search
Главный endpoint поиска для consumer-приложений: возвращает рейсы
вместе с тарифами (когда include_prices: true).
Request body:
{
"origin": "BSZ",
"destination": "OSS",
"departure_date": "2026-06-15",
"return_date": "2026-06-22",
"cabin_class": "economy",
"adults": 1,
"children": 0,
"infants": 0,
"include_prices": true,
"currency": "KGS"
}| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
origin | string | ✅ | IATA-код аэропорта вылета (BSZ, ALA, …) или UUID |
destination | string | ✅ | IATA-код или UUID аэропорта прилёта |
departure_date | string | ✅ | YYYY-MM-DD |
return_date | string | — | YYYY-MM-DD для round-trip; иначе omit |
cabin_class | string | — | economy, premium_economy, business, first. Если не задан — поиск по всем классам |
adults | int | — | 0–9 (по умолчанию 1) |
children | int | — | 0–9 (возраст 2–11) |
infants | int | — | 0–9 (возраст до 2, без места) |
include_prices | bool | — | Поставьте true — без него ответ не содержит fares[] |
currency | string | — | ISO-код для пересчёта (KGS, USD, EUR, RUB). По умолчанию USD |
Response 200:
{
"legs": [
{
"flight_id": "ecf9fd6c-6542-4b22-9643-ddef0c41dc80",
"flight_number": "NUR-101",
"departure_datetime": "2026-06-15T07:00:00Z",
"arrival_datetime": "2026-06-15T07:45:00Z",
"origin": { "iata": "BSZ", "city": "Бишкек", "name": "..." },
"destination": { "iata": "OSS", "city": "Ош", "name": "..." },
"duration_minutes": 45,
"status": "scheduled",
"booked_seats": 12,
"total_seats": 180,
"price": 4500.0,
"currency": "KGS",
"fare_plan_id": "...", "fare_rule_id": "...", "fare_price_id": "...",
"class_of_service": "economy",
"prices_by_type": { "adult": 4500, "child": 3375, "infant": 0 },
"fares": [
{
"class_of_service": "economy",
"fare_plan_id": "...", "fare_rule_id": "...", "fare_price_id": "...",
"price": 4500.0, "base_price": 3800, "taxes": 500, "fees": 200,
"currency": "KGS",
"prices_by_pax_type": { "adult": 4500, "child": 3375, "infant": 0 }
}
]
}
],
"return_legs": [],
"total": 1,
"total_return": 0
}Поле prices_by_type / prices_by_pax_type — источник правды для
цены за пассажира по типу. child не равен adult * 0.75 —
скидка зависит от FareRule. infant — 0 (политика lap-infant).
Для round-trip заполняются оба массива (legs + return_legs); итоговую
цену округлите через POST /fares/quote — он применит фактические правила
скидок и сборы за платных пассажиров (учитывая инфантов как бесплатных).
curl -X POST -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
-d '{
"origin": "BSZ",
"destination": "OSS",
"departure_date": "2026-06-15",
"adults": 1,
"include_prices": true
}' \
"https://api.nurcore.kg/api/v1/schedules/flights/search"Multi-city — отдельный endpoint
POST /flights/search-multiс массивомlegs: [{origin, destination, departure_date}, ...]. Возвращает массив результатов поиска по каждому сегменту.
GET /flights/calendar
Календарь дат с рейсами по направлению (для exchange wizards).
Для поиска по точной дате используйте POST /flights/search выше —
он возвращает рейсы + цены, а не только список доступных дат.
Query:
origin— IATAdestination— IATAdate_from,date_to— диапазон дат
Статусы рейсов
| status | Значение |
|---|---|
scheduled | Запланирован |
check_in_open | Регистрация открыта |
boarding | Идёт посадка |
gate_closed | Гейт закрыт |
departed | Вылетел |
arrived | Прибыл |
delayed | Задержан |
cancelled | Отменён |