NurCore API
API Reference

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_dateYYYY-MM-DD
  • flight_number — точное совпадение
  • statusscheduled | boarding | departed | arrived | cancelled | delayed
  • route_codeBSZ-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"
}
ПолеТипОбяз.Описание
originstringIATA-код аэропорта вылета (BSZ, ALA, …) или UUID
destinationstringIATA-код или UUID аэропорта прилёта
departure_datestringYYYY-MM-DD
return_datestringYYYY-MM-DD для round-trip; иначе omit
cabin_classstringeconomy, premium_economy, business, first. Если не задан — поиск по всем классам
adultsint0–9 (по умолчанию 1)
childrenint0–9 (возраст 2–11)
infantsint0–9 (возраст до 2, без места)
include_pricesboolПоставьте true — без него ответ не содержит fares[]
currencystringISO-код для пересчёта (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. infant0 (политика 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 — IATA
  • destination — IATA
  • date_from, date_to — диапазон дат

Статусы рейсов

statusЗначение
scheduledЗапланирован
check_in_openРегистрация открыта
boardingИдёт посадка
gate_closedГейт закрыт
departedВылетел
arrivedПрибыл
delayedЗадержан
cancelledОтменён

On this page