Frontend API: различия между версиями

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
(Авторизация (orders))
 
(не показано 8 промежуточных версий 2 участников)
Строка 185: Строка 185:
  
 
* Request  
 
* Request  
** URI /api/hotels/search/request/{searchId}  (получение данных запроса поиска с идентификатором {searchId})
+
** URI /api/hotels/search/request/{searchId?}  (получение данных запроса поиска с идентификатором {searchId} или создание нового запроса на поиск)
 
** POST request="[[#hotels.search.request|hotels.search.request]]" (Параметры запроса поиска)
 
** POST request="[[#hotels.search.request|hotels.search.request]]" (Параметры запроса поиска)
 
* Response:
 
* Response:
Строка 343: Строка 343:
 
== Модуль Заказов (order) ==
 
== Модуль Заказов (order) ==
  
=== Модуль авторизации ===
+
=== Модуль аутентификации ===
  
 
Внимание, для сохранения статуса авторизованного пользователя запросы должны быть отправлены с поддержкой cookie
 
Внимание, для сохранения статуса авторизованного пользователя запросы должны быть отправлены с поддержкой cookie
Строка 349: Строка 349:
 
(Параметр withCredentials = true у объекта XmlHttpRequest в случае использования JS)
 
(Параметр withCredentials = true у объекта XmlHttpRequest в случае использования JS)
  
==== Запрос авторизации пользователя====
+
==== Запрос аутентификации пользователя====
  
 
* Request  
 
* Request  
 
** URI /api/order/auth/request
 
** URI /api/order/auth/request
** POST request="[[#order.auth.request|order.auth.request]]" (Параметры запроса авторизации)
+
** POST request="[[#order.auth.request|order.auth.request]]" (Параметры запроса аутентификации)
 
* Response:  
 
* Response:  
** [[#order.auth.response|order.auth.response]] (Результат авторизации)
+
** [[#order.auth.response|order.auth.response]] (Результат аутентификации)
 
** [[#system.info|system.info]] (Служебная информация)
 
** [[#system.info|system.info]] (Служебная информация)
  
Строка 362: Строка 362:
 
* Request  
 
* Request  
 
** URI /api/order/auth/sendPasswordLink
 
** URI /api/order/auth/sendPasswordLink
 +
** POST request="[[#order.auth.sendPasswordLink|order.auth.sendPasswordLink]]" (Параметры запроса восстановления пароля)
 
* Response:  
 
* Response:  
 
** [[#order.auth.sendPasswordLinkResponse|order.auth.sendPasswordLinkResponse]] (Информация о результате операции)
 
** [[#order.auth.sendPasswordLinkResponse|order.auth.sendPasswordLinkResponse]] (Информация о результате операции)
Строка 370: Строка 371:
 
* Request  
 
* Request  
 
** URI /api/order/auth/registration
 
** URI /api/order/auth/registration
 +
** POST request="[[#order.auth.registration|order.auth.registration]]" (Параметры запроса регистрации)
 
* Response:  
 
* Response:  
 
** [[#order.auth.registrationResponse|order.auth.registrationResponse]] (Информация о результате регистрации)
 
** [[#order.auth.registrationResponse|order.auth.registrationResponse]] (Информация о результате регистрации)
Строка 386: Строка 388:
 
* Request  
 
* Request  
 
** URI /api/order/auth/status
 
** URI /api/order/auth/status
 +
** POST request="[[#order.auth.status|order.auth.status]]" (Параметры запроса проверки состояния заказа)
 
* Response:  
 
* Response:  
 
** [[#order.auth.statusResponse|order.auth.statusResponse]] (Информация о состоянии заказа)
 
** [[#order.auth.statusResponse|order.auth.statusResponse]] (Информация о состоянии заказа)
Строка 4854: Строка 4857:
 
== Заказы (order) ==
 
== Заказы (order) ==
  
=== Авторизация (auth) ===
+
=== Аутентификация (auth) ===
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
==== Данные результата авторизации(response) ====
+
==== Данные запроса аутентификации(request) ====
<pre id="order.auth.response">order.auth.response = </pre>
+
<pre id="order.auth.request">order.auth.request = </pre>
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
  
 
<pre>
 
<pre>
 
{
 
{
    "success": true,
+
    "login": "test",
 +
    "password": "test"
 
}
 
}
 
</pre>
 
</pre>
Строка 4872: Строка 4876:
 
!Значения
 
!Значения
 
|-
 
|-
|success
+
|login
|Результат авторизации
+
|Логин пользователя
|Boolean
+
|string
|Логический тип
+
|строка
 +
|-
 +
|password
 +
|Пароль пользователя
 +
|string
 +
|строка
 
|-
 
|-
 
|}
 
|}
Строка 4882: Строка 4891:
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
 
+
==== Данные результата аутентификации(response) ====
==== Восстановление пароля(sendPasswordLink) ====
+
<pre id="order.auth.response">order.auth.response = </pre>
<pre id="order.auth.sendPasswordLinkResponse">order.auth.sendPasswordLinkResponse = </pre>
 
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
  
 
<pre>
 
<pre>
 
{
 
{
     "success": true,
+
     "success": true
    "message": "Письмо со ссылкой на восстановление пароля отправлено вам на почту"
 
 
}
 
}
 
</pre>
 
</pre>
Строка 4900: Строка 4907:
 
|-
 
|-
 
|success
 
|success
|Результат авторизации
+
|Результат аутентификации
 
|Boolean
 
|Boolean
 
|Логический тип
 
|Логический тип
|-
 
|message
 
|Сообщение
 
|string
 
|строка
 
 
|-
 
|-
 
|}
 
|}
Строка 4914: Строка 4916:
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
==== Регистрация пользователя(registration) ====
+
==== Данные запроса восстановления пароля(sendPasswordLink) ====
<pre id="order.auth.registrationResponse">order.auth.registrationResponse = </pre>
+
<pre id="order.auth.sendPasswordLink">order.auth.sendPasswordLink = </pre>
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
  
 
<pre>
 
<pre>
 
{
 
{
    "success": true,
+
    "login": "test"
    "message": "Письмо с регистрационными данными отправлено на Ваш электронный адрес. Для подтверждения
 
регистрации перейдите, пожалуйста, по ссылке в письме.",
 
    "redirectUrl": null
 
 
}
 
}
 
</pre>
 
</pre>
Строка 4932: Строка 4931:
 
!Значения
 
!Значения
 
|-
 
|-
|success
+
|login
|Результат регистрации
+
|Логин пользователя
|Boolean
 
|Логический тип
 
|-
 
|message
 
|Сообщение
 
|string
 
|строка
 
|-
 
|redirectUrl
 
|Ссылка для перехода
 
 
|string
 
|string
 
|строка
 
|строка
Строка 4952: Строка 4941:
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
==== Информация о параметрах капчи(captchaParams) ====
+
==== Результат запроса восстановления пароля(sendPasswordLinkResponse) ====
<pre id="order.auth.captchaParamsResponse">order.auth.captchaParamsResponse = </pre>
+
<pre id="order.auth.sendPasswordLinkResponse">order.auth.sendPasswordLinkResponse = </pre>
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
  
 
<pre>
 
<pre>
 
{
 
{
     "image": "data:image/jpeg;base64,JBJ435346...."
+
     "success": true,
 +
    "message": "Письмо со ссылкой на восстановление пароля отправлено вам на почту"
 
}
 
}
 
</pre>
 
</pre>
Строка 4967: Строка 4957:
 
!Значения
 
!Значения
 
|-
 
|-
|image
+
|success
 +
|Результат аутентификации
 +
|Boolean
 +
|Логический тип
 +
|-
 +
|message
 +
|Сообщение
 +
|string
 +
|строка
 +
|-
 +
|}
 +
</div>
 +
</div>
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
 +
==== Данные запроса регистрации пользователя(registration) ====
 +
<pre id="order.auth.registration">order.auth.registration = </pre>
 +
<div class="mw-collapsible-content">
 +
 
 +
<pre>
 +
{
 +
    "booking_name": "tst",
 +
    "booking_lastname": "tst",
 +
    "registration_email": "tst@mute-lab.com",
 +
    "registration_password": "tst",
 +
    "booking_phone": "89271111111",
 +
    "subscribe": true,
 +
    "capture": "tst"
 +
}
 +
</pre>
 +
{| border="1" cellpadding="10" cellspacing="0"
 +
!Параметр
 +
!Описание
 +
!Тип
 +
!Значения
 +
|-
 +
|booking_name
 +
|Имя пользователя
 +
|string
 +
|строка
 +
|-
 +
|booking_lastname
 +
|Фамилия пользователя
 +
|string
 +
|строка
 +
|-
 +
|registration_email
 +
|Адрес электронной почты пользователя
 +
|string
 +
|строка
 +
|-
 +
|registration_password
 +
|Пароль
 +
|string
 +
|строка
 +
|-
 +
|booking_phone
 +
|Телефон пользователя
 +
|string
 +
|строка
 +
|-
 +
|subscribe
 +
|Признак согласия на получение информации о лучших предложениях
 +
|Boolean
 +
|Логический тип
 +
|-
 +
|capture
 +
|Код проверки с контрольного изображения
 +
|string
 +
|строка
 +
|-
 +
|}
 +
</div>
 +
</div>
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
 +
==== Результат запроса регистрации пользователя(registrationResponse) ====
 +
<pre id="order.auth.registrationResponse">order.auth.registrationResponse = </pre>
 +
<div class="mw-collapsible-content">
 +
 
 +
<pre>
 +
{
 +
    "success": true,
 +
    "message": "Письмо с регистрационными данными отправлено на Ваш электронный адрес. Для подтверждения
 +
регистрации перейдите, пожалуйста, по ссылке в письме.",
 +
    "redirectUrl": null
 +
}
 +
</pre>
 +
{| border="1" cellpadding="10" cellspacing="0"
 +
!Параметр
 +
!Описание
 +
!Тип
 +
!Значения
 +
|-
 +
|success
 +
|Результат регистрации
 +
|Boolean
 +
|Логический тип
 +
|-
 +
|message
 +
|Сообщение
 +
|string
 +
|строка
 +
|-
 +
|redirectUrl
 +
|Ссылка для перехода
 +
|string
 +
|строка
 +
|-
 +
|}
 +
</div>
 +
</div>
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
 +
==== Данные результата запроса о параметрах капчи(captchaParamsResponse) ====
 +
<pre id="order.auth.captchaParamsResponse">order.auth.captchaParamsResponse = </pre>
 +
<div class="mw-collapsible-content">
 +
 
 +
<pre>
 +
{
 +
    "image": "data:image/jpeg;base64,JBJ435346...."
 +
}
 +
</pre>
 +
{| border="1" cellpadding="10" cellspacing="0"
 +
!Параметр
 +
!Описание
 +
!Тип
 +
!Значения
 +
|-
 +
|image
 
|Ссылка на изображение
 
|Ссылка на изображение
 
|string
 
|string
Строка 4977: Строка 5096:
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
==== Информация о состоянии заказа(status) ====
+
==== Данные запроса о состоянии заказа(status) ====
 +
<pre id="order.auth.status">order.auth.status = </pre>
 +
<div class="mw-collapsible-content">
 +
 
 +
<pre>
 +
{
 +
    "booking_id": 445469,
 +
    "passenger_lastname": "Ivanov",
 +
    "access_code": "8Z273L"
 +
}
 +
</pre>
 +
{| border="1" cellpadding="10" cellspacing="0"
 +
!Параметр
 +
!Описание
 +
!Тип
 +
!Значения
 +
|-
 +
|booking_id
 +
|Идентификатор заказа
 +
|string
 +
|строка, может содержать цифры от 0 до 9 и дефис
 +
|-
 +
|passenger_lastname
 +
|Фамилия одного из пассажиров
 +
|string
 +
|строка
 +
|-
 +
|access_code
 +
|Код доступа к заказу
 +
|string
 +
|строка
 +
|-
 +
|}
 +
</div>
 +
</div>
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
 +
==== Данные результата запроса о состоянии заказа(statusResponse) ====
 
<pre id="order.auth.statusResponse">order.auth.statusResponse = </pre>
 
<pre id="order.auth.statusResponse">order.auth.statusResponse = </pre>
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">

Текущая версия на 14:14, 27 февраля 2019


Содержание

Общее описание

JSON сервис, доступный по адресу HOST/api/...

Предоставляет унифицированный формат для разработки фронтэнд приложения на основе системы nemo.travel

Данные доступны как кроссдоменные запросы XMLHTTPRequest

Формат запросов имеет вид

http(s)://host/api/{component}/{module}/{action} + /{parameter1}/{parameter2}... (где параметры необязательны)

Пример: http://demo.nemo.travel/api/flights/search/formData

Примечание: для изменения языка в ответах запросов нужно использовать GET параметр apilang=xx, где xx это 2-х буквенный код языка.

Пример: http://demo.nemo.travel/api/flights/utils/sunInfo/RTW/2016-06-28T15:00:00/DME/2016-06-28T20:30:00?apilang=en

Описание запросов

Модуль Авиабилеты (flights)

Модуль Поиск (search)

Получение параметров поиска "по умолчанию"

Получение параметров поиска с идентификатором Х

Запрос поиска авиабилетов (request)

  • Request
    • URI /api/flights/search/request/{searchId} (получение данных запроса поиска с идентификатором {searchId})
    • POST request="flights.search.request" (Параметры запроса поиска)
  • Response:

примечание: /api/flights/search/request?test : тестовый скрипт


Запрос поиска расписания авиаперелетов (scheduleRequest)

примечание: /api/flights/search/scheduleRequest?test : тестовый скрипт

Запрос получения результатов поиска

Запрос получения результатов дочернего поиска из матрицы окружных дат

  • Request
    • URI /api/flights/search/results/{searchId}/{depDate} (для перелета в одну сторону)
      • Пример: /api/flights/search/results/53159/2015-07-09
    • URI /api/flights/search/results/{searchId}/{depDate}/{depDateBack} (для перелета туда и обратно)
      • Пример: /api/flights/search/results/53159/2015-07-09/2015-07-14

Запрос получения истории поиска по текущему пользователю

  • Request
    • URI /api/flights/search/history

Запрос получения информации о перелёте

  • Request
    • URI /api/flights/search/flightInfo/{flightId}

Модуль Вспомогательных Функций (utils)

Запрос определения солнечной стороны

  • Request
    • URI /api/flights/utils/sunInfo/{dep_airport}/{depDateTimeLocal}/{arr_airport}/{arrDateTimeLocal}
      • Пример: /api/flights/utils/sunInfo/RTW/2016-06-28T15:00:00/DME/2016-06-28T20:30:00

Модуль Отели (hotels)

Модуль Поиск (search)

Получение параметров поиска "по умолчанию"

Получение параметров поиска с идентификатором Х

  • Request
    • URI /api/hotels/search/formData/{searchId} (получение параметров поиска с идентификатором {searchId})
  • Response:

Запрос поиска отелей (request)

  • Request
    • URI /api/hotels/search/request/{searchId?} (получение данных запроса поиска с идентификатором {searchId} или создание нового запроса на поиск)
    • POST request="hotels.search.request" (Параметры запроса поиска)
  • Response:

примечание: /api/hotels/search/request?test : тестовый скрипт

Запрос получения результатов поиска(results)

Модуль Автокомплит (autocomplete)

Автокомплит отелей и городов

  • Request
    • URI api/hotels/autocomplete/request/{query} :
  • Response:

примеры:

  1. /api/hotels/autocomplete/request/mos : поиск "mos.."

Внимание! Язык, используемый в запросе, зависит от языка, установленного для пользователя. Английский используется для следующих языков:

'en' => 'English',

'de' => 'Deutsch',

'it' => 'Italiano',

'bg' => 'Български',

'es' => 'Español',

'nl' => 'Nederlands',

'tr' => 'Türkçe',

'il' => 'עברית',

'pt' => 'Português',

'tr' => 'Türk',

'fr' => 'Français',

'pl' => 'Polski'

Модуль Путеводитель (guide)

Модуль Autocomplete (autocomplete)

Автокомплит по IATA локациям

Аэропорты / Города имеющие IATA-совместимый код

примеры:

  1. /api/guide/autocomplete/iata/mo : поиск "mo.."
  2. /api/guide/autocomplete/iata/le/noAltLayout : поиск "le.." без исправления раскладки

Автокомплит по городам

примеры:

  1. /api/guide/autocomplete/cities/мос : поиск "мос.."
  2. /api/guide/autocomplete/cities/мос/RU : поиск "мос.." в стране с кодом countryCode

Получение информации о воздушном судне(aircraft)

Получение информации о авиакомпании(airline)

Получение информации об аэропорте(airport)

Получение информации о городе(city)

Получение информации о стране(country)

Получение информации об отеле(hotel)

Получение информации об отелях в выбранном городе

Модуль Заказов (order)

Модуль аутентификации

Внимание, для сохранения статуса авторизованного пользователя запросы должны быть отправлены с поддержкой cookie

(Параметр withCredentials = true у объекта XmlHttpRequest в случае использования JS)

Запрос аутентификации пользователя

  • Request
    • URI /api/order/auth/request
    • POST request="order.auth.request" (Параметры запроса аутентификации)
  • Response:

Запрос восстановления пароля

Запрос регистрации

Запрос на получение параметров капчи

Запрос проверки состояния заказа

  • Request
    • URI /api/order/auth/status
    • POST request="order.auth.status" (Параметры запроса проверки состояния заказа)
  • Response:

Модуль Протокорзина (reminder)

Получение истории заказов пользователя

Модуль информации о системе (system)

Модуль служебной информации (info)

Получение данных о валютах

Объединение запросов

Есть возможность добавить в один запрос контент от дополнительных запросов, чтобы сэкономить время загрузки фротэнд-приложения. Для этого нужно отправлять в запросе POST-параметр "resources", содержащий объект данных по дополнительным запросам в формате JSON:

  • POST resources="JSON",

где JSON имеет формат:

{
    "guide/airports/LON": {},
    "guide/airports/PAR": {}
}

пример: /api/flights/search/formData?test (тестовый скрипт)

Структуры данных

Авиабилеты (flights)

Поиск (search)

Данные формы поиска (formData)

flights.search.formData = 
{
    "maxLimits": {
        "passengerCount": {
            "ADT": "6",
            "SRC": "6",
            "YTH": "6",
            "CLD": "4",
            "INF": "2",
            "INS": "2"
        },
        "totalPassengers": "9",
        "flightSegments": "5"
    },
    "dateOptions": {
        "minOffset": 2,
        "maxOffset": 365,
        "incorrectDatesBlock": "on",
        "aroundDatesValues": [
             0,
             1,
             3
        ]
    },
    "useURLParams": "false",
    "showCitySwapBtn": "false",
    "passengersSelect": {
         "extendedPassengersSelect": "false",
         "fastPassengersSelect": [
               {
                   "label": "singleAdult",
                   "set": {
                       "ADT": 1
                    }
               },
               {
                    "label": "twoAdults",
                    "set": {
                       "ADT": 2
                    }
               },
               {
                    "label": "twoAdultsWithChild",
                    "set": {
                       "ADT": 2,
                       "CLD": 1
                    }
               }
          ]
     },
     "id": 49825,
     "uri": "/api/flights/search/formData/49825"
}
Параметр Описание Тип Значения
maxLimits Ограничения на максимальные значения параметров {} ...
passengerCount
Ограничения на максимальные значения кол-ва пассажиров по параметрам {} ...
ADT
Максимальное количество взрослых (больше 12 лет) пассажиров number Целое положительное число
SRC
Максимальное количество пожилых пассажиров number Целое положительное число
YTH
Максимальное количество молодых пассажиров number Целое положительное число
CLD
Максимальное количество детей (младше 10 лет) number Целое положительное число
INF
Максимальное количество младенцев number Целое положительное число
INS
Максимальное количество младенцев с местом number Целое положительное число
totalPassengers
Максимальное количество пассажиров number Целое положительное число
flightSegments
Максимальное количество плеч сложного перелета number Целое положительное число
dateOptions Ограничения на разрешенные даты для поиска билетов {} ...
minOffset
Ближайшая разрешенная дата для поиска билетов (дней от текущего числа) number Целое положительное число
maxOffset
Самая дальняя разрешенная дата для поиска билетов (дней от текущего числа) number Целое положительное число
incorrectDatesBlock
Включить блокировку некорректных дат boolean Логический тип
aroundDatesValues
Допустимые значения радиусов для поиска по окружным датам [] Массив
useURLParams Использовать параметры из URL, записанные в «чистом виде» boolean Логический тип
showCitySwapBtn Отображение кнопки, меняющей местами города вылета и прилета boolean Логический тип
passengersSelect Настройки выбора пассажиров {} ...
extendedPassengersSelect
Включить расширенный поиск пассажиров boolean Логический тип
fastPassengersSelect
Комбинации пассажиров для быстрого поиска [] ...
label
Название комбинации String Строка
set
Набор пар "тип пассажира":количество {} Тип пассажира имеет одно из следующих значений:
ADT - взрослый,
SRC - пожилой,
YTH - молодой,
CLD - ребёнок,
INF - младенец без места в самолёте,
INS - младенец с местом в самолёте

Количество - неотрицательное целое число

id Идентификатор поиска number Целое положительное число
uri URI поиска String Строка вида "/api/flights/search/formData/id"

Данные запроса поиска (request)

flights.search.request = 
{
    "segments": [
        {
            "departure": {
                "IATA": "MOW",
                "isCity": true
            },
            "arrival": {
                "IATA": "BER",
                "isCity": true
            },
            "departureDate": "2015-05-10T00:00:00"
        }
    ],
    "passengers": [
        {
            "type": "ADT",
            "count": 1
        }
    ],
    "parameters": {
        "searchType": "OW",
        "direct": false,
        "aroundDates": 0,
        "serviceClass": "All",
        "airlines": ["UT"],
        "delayed": false
        "priceRefundType": null
    }
}
Параметр Описание Тип Значения
segments Информация о сегментах перелета [] ...
departure
Информация об аэропорте отправления {} ...
arrival
Информация об аэропорте назначения {} ...
IATA
IATA код аэропорта string Строка из 3-х заглавных латинских букв
isCity
Признак, что в качестве точки отправления указан код города-агрегатора аэропортов boolean Логический тип
departureDate
Дата отправления string Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)
passengers Информация о пассажирах, для которых требуется найти перелёт [] ...
type
Тип пассажира string Одно из следующих значений:
ADT - взрослый,
SRC - пожилой,
YTH - молодой,
CLD - ребёнок,
INF - младенец без места в самолёте,
INS - младенец с местом в самолёте
count
Число пассажиров данного типа number Целое положительное число
parameters Параметры поиска {} ...
searchType
Тип поиска string Строка, принимающая одно из значений:
OW (One-Way)
RT (RoundTrip)
CR (Complex Route)
direct
Признак поиска только прямых перелетов boolean Логический тип
aroundDates
Поиск по окружным датам – ±X дней к выбранной дате вылета number Положительное число
serviceClass
Тип предпочитаемого класса обслуживания string Строка, принимающая одно из значений:
Economy
PremiumEconomy
Business
First
All
airlines
Предпочитаемые авиакомпании [] Массив IATA кодов авиакомпании
delayed
Признак отложенного поиска. Если delayed=true,

то поиск не запускается, а сохраняется в базу. Поиск запустится при отправке запроса на получение его результатов.

boolean Логический тип
priceRefundType
Признак возвратности тарифа, где
AnyLowest - наименьшие цены (по умолчанию)
Refundable - наименьшие цены с возможностью безвозмездного возврата
Both - совокупность поисковых выдач поиска для минимальных и минимальных возвратных цен
string Строка, принимающая одно из значений:
AnyLowest
Refundable
Both
Null

Данные запроса поиска перелетов по расписанию (scheduleRequest)

flights.search.scheduleRequest = 
{
"scheduleRequest": {
	"id": 84880,
	"uri": "/api/flights/search/scheduleRequest/84880",
	"departure": {
		"IATA": "MOW",
		"isCity": true,
		"cityId": 58165
	},
	"arrival": {
		"IATA": "LED",
		"isCity": false,
		"cityId": 58166
	},
	"datePeriodBegin": "2016-02-07",
	"datePeriodEnd": "2016-04-10",
	"direct": true
},
Параметр Описание Тип Значения
scheduleRequest Информация о параметрах запроса поиска расписания перелетов {} ...
id
Номер поиска number ...
uri
Адрес на получение результатов поиска string ...
departure
Информация об аэропорте отправления {} ...
arrival
Информация об аэропорте назначения {} ...
IATA
IATA код аэропорта string Строка из 3-х заглавных латинских букв
isCity
Признак, что в качестве точки отправления указан код города-агрегатора аэропортов boolean Логический тип
cityId
Номер города из путеводителя number ...
datePeriodBegin
Дата начиная с которой будет расписание перелетов string Дата в формате ГГГГ-ММ-дд
datePeriodBegin
Дата по которую будет найдено расписание string Дата в формате ГГГГ-ММ-дд
direct
Признак поиска только прямых перелетов boolean Логический тип

Данные результатов поиска (results)

flights.search.results =
"results": {
                "flightGroups": [
                    {
                        "segments": [
                            "S1",
                            "S2"
                        ],
                        "flights": [
                            {
                                "id": 601010001,
                                "price": "P1"
                            }
                        ]
                    }
                ],
                "groupsData": {
                    "prices": {
                        "P1": {
                            "flightPrice": {
                                "amount": 119.01888888889,
                                "currency": "USD"
                            },
                            "agencyCharge": {
                                "amount": -2.9711111111111,
                                "currency": "USD"
                            },
                            "totalPrice": {
                                "amount": 119.01888888889,
                                "currency": "USD"
                            },
                            "priceWithoutPromocode": {
                                "amount": 110.01888888889,
                                "currency": "USD"
                            },
                            "validatingCompany": "PS",
                            "refundable": false,
                            "privateFareInd": false,
                            "ticketTimeLimit": "2015-05-27T23:59:59",
                            "service": "SABRE",
                            "avlSeatsMin": 6,
                            "pricingDebug": {
                                "link": "index.php?go=debug/pricing&flight_id=601010001",
                                "text": "Комиссия: Нет"
                            },
                            "warnings": {
                                "insBookingNotAllowedBySupplier": "Бронирование отдельного сидячего места для младенца не допускается перевозчиком"
                            },
                            "passengerFares": [
                                {
                                    "type": "ADT",
                                    "count": 1,
                                    "baseFare": {
                                        "amount": 50,
                                        "currency": "EUR"
                                    },
                                    "equivFare": {
                                        "amount": 55,
                                        "currency": "USD"
                                    },
                                    "totalFare": {
                                        "amount": 121.99,
                                        "currency": "USD"
                                    },
                                    "taxes": [
                                        {
                                            "YQF": {
                                                "amount": 16.5,
                                                "currency": "USD"
                                            }
                                        },
                                        {
                                            "YQI": {
                                                "amount": 1,
                                                "currency": "USD"
                                            }
                                        },
                                        {
                                            "YRI": {
                                                "amount": 10,
                                                "currency": "USD"
                                            }
                                        },
                                        {
                                            "YRI": {
                                                "amount": 10,
                                                "currency": "USD"
                                            }
                                        },
                                        {
                                            "RI": {
                                                "amount": 8.69,
                                                "currency": "USD"
                                            }
                                        },
                                        {
                                            "UH": {
                                                "amount": 6.3,
                                                "currency": "USD"
                                            }
                                        },
                                        {
                                            "UA": {
                                                "amount": 4,
                                                "currency": "USD"
                                            }
                                        },
                                        {
                                            "UD": {
                                                "amount": 2,
                                                "currency": "USD"
                                            }
                                        },
                                        {
                                            "YK": {
                                                "amount": 8.5,
                                                "currency": "USD"
                                            }
                                        }
                                    ],
                                    "tariffs": [
                                        {
                                            "code": "JAPOWPS4",
                                            "segNum": 0,
                                            "routeNumber": 0
                                        },
                                        {
                                            "code": "JAPOWPS4",
                                            "segNum": 1,
                                            "routeNumber": 0
                                        }
                                    ]
                                }
                            ],
                            "segmentInfo": [
                                {
                                    "segNum": 0,
                                    "bookingClass": "J",
                                    "serviceClass": "Economy",
                                    "avlSeats": 6,
                                    "freeBaggage": [
                                        {
                                             "passtype": "ADT",
                                             "value": 1,
                                             "measurement": "pc"
                                        }
                                    ]
                                },
                                {
                                    "segNum": 1,
                                    "bookingClass": "J",
                                    "serviceClass": "Economy"
                                    "avlSeats": 8,                                          
                                    "freeBaggage": [
                                         {
                                               "passtype": "ADT",
                                               "value": 1,
                                               "measurement": "pc"
                                         }
                                    ]
                                }
                            ],
                            "id": "P1"
                        }
                    },
                    "segments": {
                        "S1": {
                            "id": "S1",
                            "depAirp": "DME",
                            "arrAirp": "KBP",
                            "routeNumber": 0,
                            "operatingCompany": "PS",
                            "marketingCompany": "PS",
                            "flightNumber": "576",
                            "aircraftType": "73H",
                            "depDateTime": "2015-07-06T06:35:00",
                            "arrDateTime": "2015-07-06T08:05:00",
                            "depTerminal": "",
                            "arrTerminal": "",
                            "flightTime": 90,
                            "eTicket": true,
                            "stopPoints": [
                                 {
                                      "airportCode": "DME",
                                      "cityCode": "MOW",
                                      "utc" => null,
                                      "terminal": "A",
                                      "depDateTime": "2015-07-06T07:35:00",
                                      "arrDateTime": "2015-07-06T07:55:00",
                                      "passengerLanding": null,
                                 }
                             ]
                        },
                        "S2": {
                            "id": "S2",
                            "depAirp": "KBP",
                            "arrAirp": "CDG",
                            "routeNumber": 0,
                            "operatingCompany": "PS",
                            "marketingCompany": "PS",
                            "flightNumber": "127",
                            "aircraftType": "73J",
                            "depDateTime": "2015-07-06T12:50:00",
                            "arrDateTime": "2015-07-06T09:20:00",
                            "depTerminal": "",
                            "arrTerminal": "",
                            "flightTime": 210,
                            "eTicket": true,
                            "stopPoints": null
                        }
                    }
                },
                "info": {
                    "errorCode": null,
                    "errorMessageEng": null
                },
                "id": 49825,
                "uri": "/api/flights/search/results/49825",
                "matrixUri": "/api/flights/search/results/49821",
            }


Параметр Описание Тип Значения
flightGroups Группа перелетов [] Массив пуст, если
нет результатов поиска
поиск не найден
поиск был сделан по окружным датам
segments
Сегмент перелета [] Массив пуст, если поиск был сделан по окружным датам
flights
Массив перелетов [] ..
id
Идентификатор перелета number Число
price
Код цены string Строка
groupsData Информация о группах перелетов {} ...
prices
Информация о ценах {} или [] Пуст, если
нет результатов поиска
поиск не найден
поиск был сделан по окружным датам
flightPrice
Цена перелета по тарифу {} ...
amount
Сумма number Дробное число
currency
Код валюты string Строка в формате ISO 4217(трёхбуквенный алфавитный код)
agencyCharge
Агентский сбор {} ...
totalPrice
Итоговая цена {} ...
priceWithoutPromocode
Цена без промокода {} Если промокод не введен, null
validatingCompany
Код валидирующего перевозчика, предоставляющего данную цену string Строка из 2 знаков (букв латинского алфавита и цифр)
refundable
Тип возвратности билета по перелёту с данной ценой boolean логический тип
privateFareInd
Признак наличия приватных тарифов в данной цене boolean логический тип
ticketTimeLimit
Тайм-лимит данной цены (цена действительная до) string Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)
avlSeatsMin
Минимальное кол-во доступных мест number Целое положительное число
pricingDebug
Данные о ссылке на ценообразование {} ...
link
Ссылка на ценообразование для данного перелета string Строка вида "index.php?go=debug/pricing&flight_id={id}"
text
Текст ссылки string Строка может иметь вид:
Комиссия: нет
Комиссия: validatingCompany(XagencyCurrency), если комиссия задана в валюте
Комиссия: validatingCompany(X%), если комиссия задана в процентах
service
Тип ГДС string Строка
warnings
Массив предупреждений {} Объект
passengerFares
Массив ценовых составляющих по типам пассажиров [] ...
type
Тип пассажира string Одно из следующих значений:
ADT - взрослый,
SRC - пожилой,
YTH - молодой,
CLD - ребёнок,
INF - младенец без места в самолёте,
INS - младенец с местом в самолёте
count
Количество пассажиров данного типа number Целое положительное число
baseFare
Базовая цена (только тарифы без такс) для 1 пассажира данного типа {} ...
equivFare
Базовая цена в эквивалентной валюте для 1 пассажира данного типа. {} Формат элемента аналогичен элементу BaseFare
totalFare
Полная цена (тарифы + таксы) для 1 пассажира данного типа в эквивалентной валюте. {} Формат элемента аналогичен элементу BaseFare.
taxes
Контейнер для такс для данной ценовой составляющей [] ...
tariffs
Контейнер для тарифов данной ценовой составляющей [] ...
code
Код тарифа string Строка
segNum
Номер сегмента, для которого применяется данный тариф number Целое число
routeNumber
Соответствие сегментам из SRO(номер плеча) number Целое число
freeBaggage
Допустимая мера бесплатного провоза багажа [] ...
passtype
Тип пассажира, для которого определена мера string Аналогично type
value
Количественно значение для допустимого количества багаж number Целое число
measurement
Мера количества багажа string Строка
segmentInfo
Информация о сегментах [] ...
segNum
Номер сегмента number Целое число
bookingClass
Класс бронирования string Строка, состоящая из 1 латинской буквы
serviceClass
Класс обслуживания string Строка, принимающая одно из значений:
Economy
PremiumEconomy
Business
First
All
avlSeats
Число доступных мест на сегменте number Целое положительное число
id
Идентификатор цены string Строка
segments
Подробное описание сегментов перелетов {} или [], если нет результатов поиска или поиск не найден ...
id
Идентификатор сегмента string Строка
depAirp
IATA код аэропорта отправления string Строка из 3 букв латинского алфавита
arrAirp
IATA код аэропорта прибытия string Строка из 3 букв латинского алфавита
routeNumber
Соответствие сегментам из SRO(номер плеча) number Целое число
operatingCompany
(IATA)Код оперирующего перевозчика string Строка из 2 знаков (букв латинского алфавита и цифр)
marketingCompany
Код маркетингого перевозчика string Строка из 2 знаков (букв латинского алфавита и цифр)
flightNumber
Номер рейса для данного сегмента перелёта number Целое число
flightTime
Время перелета на сегменте number/null Целое число или null
aircraftType
Код типа самолёта string Строка
depDateTime
Дата и время отправления string Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)
arrDateTime
Дата и время прибытия string Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)
depTerminal
Код терминала отправления string Строка
arrTerminal
Код терминала прибытия string Строка
flightTime
Время в пути в минутах number Целое положительное число
eTicket
Признак возможности выписки электронного билета на данном сегменте boolean логический тип
stopPoints
Информация о технических остановках [] Массив объектов или null, если остановок нет
airportCode
IATA код аэропорта точки остановки string Строка из 3 букв латинского алфавита
cityCode
Код города точки остановки string Строка из 3 букв латинского алфавита
utc
Часовой пояс точки остановки string логический тип
terminal
Терминал в аэропорте string логический тип
depDateTime
Признак возможности выписки электронного билета на данном сегменте string логический тип
arrDateTime
Признак возможности выписки электронного билета на данном сегменте string Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)
passengerLanding
Флаг ожидания в самолете boolean или null Логический тип, есть только у брони, у результатов поиска нет, на данный момент парсится только для Галилео
info
Информация об успешности/неуспешности поиска {}
errorCode
Код ошибки number Число, может иметь следующие значения:
404 ('No results')
410 ('Invalid SearchId')
500 ('System Error')
null
errorMessageEng
Сообщение об ошибке string Строка, принимающая следующие значения:
'No results'
'Invalid SearchId'
'System Error'
null
id Идентификатор поиска number Число
uri URI поиска string Строка вида /api/flights/search/results/id
matrixUri URI поиска c матрицей окружных дат(параметр присутствует только если поиск сделан из матрицы) string Строка вида /api/flights/search/results/matrixSearchId

Формирование перелета из сгруппированных данных


Структура перелета

flight:{
     id,
     typeInfo: {
          directionType
     }
     segments:[
          segment: {
               id,
               depAirp:{
                    airportCode,
                    cityCode,
                    UTC,
                    terminal
               },
               arrAirp:{...},
               flightNumber,
               flightTime,
               opAirline,
               markAirline,
               aircraftType,
               depDateTime,
               arrDateTime,
               bookingClass:{
                    baseClass,
                    bookingClassCode,
                    freeSeatCount				
               },
               eTicket,
          }
     ],
     priceInfo:[
          price:{
               id,
               validatingCompany,
               refundable,
               privateFareInd,
               ticketTimeLimit,
               service,
               passengerFares:[
                    passengerFare:{
                         type,
                         quantity,
                         baseFare:{
                              amount,
                              currency
                         },
                         equivFare:{...},
                         totalFare:{...},
                         taxes:[
                              tax:{
                                   amount,
                                   currency,
                                   taxCode
                              },
                              ...
                         ],
                         tariffs:[
                              tariff:{
                                   code,
                                   segNum,
                                   freeBaggage:{
                                        passtype,
                                        value,
                                        measure
                                   }  
                              },
                              ...
                         ]                        
                    }
               ]
          }
     ]	
}

Из flightGroups берем коды сегментов перелета, по ним получаем информацию о сегментах из groupsData.segments По flights.price в groupsData.prices ищем код цены, получаем информацию о цене перелета

По groupsData.prices.CODE.validatingCompany получаем информацию о валидирующем переводчике из guide.airlines
Связываем тариф и сегмент, для которого он применяется, по segNum в тарифе и коду сегмента
Из segmentInfo берем класс обслуживания и класс бронирования и связываем с сегментом по segNum
По groupsData.segments.depAirp и groupsData.segments.arrAirp получаем информацию из guide.airports
По groupsData.segments.operatingCompany и groupsData.segments.marketingCompany получаем информацию из guide.airlines
По groupsData.segments.aircraftType получаем информацию из guide.aircrafts

Данные результатов поиска расписания перелетов (scheduleResults)

flights.search.scheduleResults =
"scheduleResults": {
	"flights": {
		"F1": [{
				"id": null,
				"depAirp": "DME",
				"arrAirp": "LED",
				"routeNumber": 1,
				"operatingCompany": "YC",
				"marketingCompany": "YC",
				"aircraftType": "320",
				"flightNumber": "6",
				"depTerminal": "A",
				"arrTerminal": "1",
				"flightTime": 80,
				"eTicket": true,
				"depTime": "01:30",
				"arrTime": "02:50",
				"depDateShift": 0,
				"arrDateShift": 0,
				"serviceClasses": ["Business", "Economy"],
				"schedulePeriod": {
					"startDate": "2015-09-23",
					"endDate": "2016-12-29",
					"daysOfWeek": [1, 2, 3, 4, 5, 6, 0]
				}
			}],
		"F2": [{
				"id": null,
				"depAirp": "VKO",
				"arrAirp": "LED",
				"routeNumber": 1,
				"operatingCompany": "YC",
				"marketingCompany": "YC",
				"aircraftType": "CRJ",
				"flightNumber": "5",
				"depTerminal": "A",
				"arrTerminal": "1",
				"flightTime": 60,
				"eTicket": true,
				"depTime": "03:00",
				"arrTime": "04:00",
				"depDateShift": 0,
				"arrDateShift": 0,
				"serviceClasses": ["Economy"],
				"schedulePeriod": {
					"startDate": "2015-10-06",
					"endDate": "2017-02-19",
					"daysOfWeek": [2, 0]
				}
			}]
	},
	"dates": {
		"2016-02-07": ["F1", "F2", "F3"],
		"2016-02-08": ["F1", "F3", "F4"],
	},
	"info": {
		"errorCode": null,
		"errorMessageEng": null
	},
	"id": 84880,
	"uri": "/api/flights/search/scheduleResults/84880"
}


Параметр Описание Тип Значения
scheduleResults Информация о результатах поиска {} ...
flights
Массив найденных перелетов [] ...
id
Идентификатор перелета number Число
depAirp
Код аэропорта вылета string Трех-буквенный код аэропорта
arrAirp
Код аэропорта прилета string Трех-буквенный код аэропорта
routeNumber
Соответствие сегментам из SRO(номер плеча) number Целое число
operatingCompany
(IATA)Код оперирующего перевозчика string Строка из 2 знаков (букв латинского алфавита и цифр)
marketingCompany
Код маркетингого перевозчика string Строка из 2 знаков (букв латинского алфавита и цифр)
aircraftType
Код типа самолёта string Строка
flightNumber
Номер рейса для данного сегмента перелёта number Целое число
depTerminal
Код терминала отправления string Строка
arrTerminal
Код терминала прибытия string Строка
flightTime
Время перелета на сегменте number/null Целое число или null
eTicket
Признак возможности выписки электронного билета на данном сегменте boolean логический тип
depTime
Время отправки string Время в формате чч:мм
arrTime
Время прибытия string Время в формате чч:мм
depDateShift
Смещение дня вылета относительно даты вылета первого сегмента всего перелёта number целое число
arrDateShift
Смещение дня прибытия относительно даты вылета первого сегмента всего перелёта number целое число
serviceClasses
Массив доступных классов перелетов [] Возможные типы классы (Business, Economy, First)
schedulePeriod
Расписание, по которому совершается перелет {} ...
startDate
Дата с которой совершается полет string Дата в формате гггг-ММ-дд
endDate
Дата после которой данные перелеты прекратятся string Дата в формате гггг-ММ-дд
daysOfWeek
Дни недели по которым совершается перелет [] Цифровые обозначения дней недели (1 - понедельник, ..., 6 - суббота, 0 - воскресение)
dates
Расписание перелетов по дням {} Каждой дате соответствует список перелетов, который совершаются в этот день
info
Информация об успешности/неуспешности поиска {}
errorCode
Код ошибки number Число, может иметь следующие значения:
404 ('No results')
410 ('Invalid SearchId')
500 ('System Error')
null
errorMessageEng
Сообщение об ошибке string Строка, принимающая следующие значения:
'No results'
'Invalid SearchId'
'System Error'
null
id
Номер поиска number ...
uri
Адрес для получения результатов string Ссылка вида /api/flights/search/scheduleResults/{$id}

Настройки выдачи результатов (resultData)

flights.search.resultData = 
{
     "postFilters": {
           "postFiltersSort": {
                  "transfersCount",
                  "departureAirport",
                  "arrivalAirport",
                  "departureTime",
                  "arrivalTime",
                  "timeEnRoute",
                  "transfersDuration",
                  "carrier",
                  "price"
           },
           "showPostFilterHint": false
       },
       "defaultSort": "durationOnLeg",
       "defaultShowVariants": 100,
       "useHintOverlay": true,
       "showBlocks": {
           "useShowCase": true,
           "showBestOffers": true,
           "showHotelOffer": true,
           "useFlightCompareTable": true
       },
       "searchTimeout": {
            "useSearchTimeout": true,
            "warningBeforeSearchTimeout": 600,
            "searchTimeout": 720
       }
}
Параметр Описание Тип Значения
postFilters Настройки постфильтров {} ...
postFiltersSort
Порядок постфильтров [] Упорядоченные названия постфильтров. Возможные названия:
transfersCount (Количество пересадок)
departureTime (Время вылета)
arrivalTime (Время прилёта)
departureAirport (Аэропорт вылета)
arrivalAirport (Аэропорт прилёта)
price (Цена перелёта)
carrier (Авиакомпании)
transfersDuration (Длительность пересадки)
timeEnRoute (Время перелёта)
showPostFilterHint
Показать подсказку к постфильтрам boolean Логический тип
defaultSort Тип выбранной по умолчанию сортировки string Строка, принимающая следующие значения:
price - цена
durationOnLeg - время перелета
rating - рейтинг
carrierRating - рейтинг перевозчика
defaultShowVariants Количество показанных изначально вариантов в блоке “Все варианты” number Целое положительное число
useHintOverlay Показать оверлей “подсказки” boolean Логический тип
showBlocks Настройки отображения дополнительных блоков {} ...
useShowCase
Показать витрину boolean Логический тип
showBestOffers
Показать блок с предложениями от лучших авиакомпаний boolean Логический тип
showHotelOffer
Показать блок с предложением отелей boolean Логический тип
useFlightCompareTable
Использовать сравнительную таблицу перелетов boolean Логический тип
searchTimeout Настройки устаревания результатов поиска {} ...
useSearchTimeout
Использовать таймер устаревания результатов поиска boolean Логический тип
warningBeforeSearchTimeout
Время в секундах, после которого появится предупреждение, что поиск устаревает number Целое положительное число
searchTimeout
Время в секундах, через которое поиск устаревает number Целое положительное число

Матрица окружных дат (resultMatrix)

flights.search.resultMatrix = 

Например, если опция поиска по окружным датам предполагает поиск при ±3 дня, то пользователю отображается матрица дат размером 7x1 ячеек для маршрута «В одну сторону» или 7x7 ячеек для маршрута «Туда и обратно». В каждой ячейке матрицы указана минимальная стоимость перевозки, ячейки с наиболее дешевыми вариантами выделены другим цветом. При нажатии на стоимость в таблице пользователь переходит на страницу результатов поиска на выбранную дату для выбора конкретного варианта перелета.

{
     "rangeData": [
          {
               "uri": "/api/flights/search/results/53159/2015-06-12/2015-06-17",
               "flightDate": "2015-06-12",
               "flightDateBack": "2015-06-17",
               "minPriceFlight": {
                    "minPrice": {
                         "amount": "16851",
                         "currency": "RUB"
                    },
                    "carrier": "OS",
                    "segments": [
                         {
                              "routeNumber": 0,
                              "serviceClass": "economy",
                              "depDateTime": "2015-06-12T14:40:00",
                              "arrDateTime": "2015-06-12T17:20:00",
                              "depAirp": "DME",
                              "arrAirp": "CDG"
                         },
                         {
                              "routeNumber": 1,
                              "serviceClass": "economy",
                              "depDateTime": "2015-06-17T07:15:00",
                              "arrDateTime": "2015-06-17T10:00:00",
                              "depAirp": "CDG",
                              "arrAirp": "DME"
                          }
                    ]
               }
          },
          {
               "uri": "/api/flights/search/results/53159/2015-06-12/2015-06-18",
               "flightDate": "2015-06-12",
               "flightDateBack": "2015-06-18",
               "minPriceFlight": {
                    "minPrice": {
                         "amount": "16222",
                         "currency": "RUB"
                    },
                    "carrier": "OS",
                    "segments": [
                         {
                              "routeNumber": 0,
                              "serviceClass": "economy",
                              "depDateTime": "2015-06-12T14:40:00",
                              "arrDateTime": "2015-06-12T17:20:00",
                              "depAirp": "DME",
                              "arrAirp": "CDG"
                         },
                         {
                              "routeNumber": 1,
                              "serviceClass": "economy",
                              "depDateTime": "2015-06-18T17:25:00",
                              "arrDateTime": "2015-06-18T20:40:00",
                              "depAirp": "CDG",
                              "arrAirp": "DME"
                         }
                    ]
               }
          }
     ] 
}
Параметр Описание Тип Значения
rangeData Массив данных о каждой ячейке матрицы [] ...
uri
Cсылка получения результатов на один день string Строка вида /api/flights/search/results/matrixSearchId/flightDate/flightDateBack
flightDate
Дата перелета string Строка в формате yyyy-MM-dd
flightDateBack
Дата обратного перелета string Строка в формате yyyy-MM-dd для RT, null для OW
minPriceFlight
Информация о самом дешевом перелете для выбранных дат {} ...
minPrice
Информация о минимальной цене {} ...
amount
Сумма string Вещественное число
currency
Код валюты string Строка в формате ISO 4217(трёхбуквенный алфавитный код)
carrier
IATA код перевозчика string Строка из 2 знаков (букв латинского алфавита и цифр)
segments
Массив сегментов самого дешевого перелета [] ...
routeNumber
Соответствие сегментам из SRO number Целое число
serviceClass
Класс обслуживания string Строка, принимающая одно из значений:
economy
premiumEconomy
business
first
all
depDateTime
Дата и время отправления string Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)
arrDateTime
Дата и время прибытия string Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)
depAirp
IATA код аэропорта отправления string Строка из 3 букв латинского алфавита
arrAirp
IATA код аэропорта прибытия string Строка из 3 букв латинского алфавита

Выдача истории поиска по текущему пользователю (history)

flights.search.history = 
[
     {
          "request": {
               "id": 59673,
               "uri": "/api/flights/search/request/59673",
               "segments": [
                    {
                         "departure": {
                              "IATA": "MOW",
                              "isCity": true,
                              "cityId": 58165
                         },
                         "arrival": {
                              "IATA": "BER",
                              "isCity": true,
                              "cityId": 22046
                         },
                         "departureDate": "2015-09-10T00:00:00"
                    }
               ],
               "passengers": [
                    {
                         "type": "ADT",
                         "count": 1
                    }
               ],
               "parameters": {
                    "searchType": "OW",
                    "direct": false,
                    "aroundDates": 0,
                    "serviceClass": "Economy",
                    "airlines": [],
                    "delayed": true
               }
          },
          "formData": {
               "maxLimits": {
                    "passengerCount": {
                         "ADT": "5",
                         "SRC": "5",
                         "YTH": "5",
                         "CLD": "5",
                         "INF": "1",
                         "INS": "3"
                    },
                    "totalPassengers": "6",
                    "flightSegments": "6"
               },
               "dateOptions": {
                    "minOffset": 0,
                    "maxOffset": 365,
                    "incorrectDatesBlock": true,
                    "aroundDatesValues": [
                         0,
                         1,
                         3
                    ]
               },
               "useURLParams": true,
               "showCitySwapBtn": false,
               "passengersSelect": {
                    "extendedPassengersSelect": true,
                    "fastPassengersSelect": [
                         {
                              "label": "singleAdult",
                              "set": {
                                   "ADT": 1
                              }
                         },
                         {
                              "label": "twoAdults",
                              "set": {
                                    "ADT": 2
                              }
                         }
                    ]
               },
               "id": 59673,
               "uri": "/api/flights/search/formData/59673"
          },
          "hasResults": true,
          "resultsCount": 125,
          "isDateRange": false
     }
]

Названия и значения полей аналогичны flights.search.request (параметры запроса поиска) и flights.search.formData (параметры формы поиска)

Получение информации о перелёте(flightInfo)

flights.search.flightInfo = 
{
                "isAvail": true,
                "priceStatus": {
                    "changed": false,
                    "oldValue": {
                        "amount": 89752,
                        "currency": "RUB"
                    },
                    "newValue": {
                        "amount": 89752,
                        "currency": "RUB"
                    }
                },
                "tariffRules": {
                    "BNOW": [
                        {
                            "name": "RULE APPLICATION AND OTHER CONDITIONS",
                            "text": "NOTE - THE FOLLOWING TEXT IS INFORMATIONAL AND NOT\nVALIDATED FOR AUTOPRICING...",
                            "code": "50"
                        },
                        {
                            "name": "ELIGIBILITY",
                            "text": "NO ELIGIBILITY REQUIREMENTS APPLY.",
                            "code": "01"
                        }                        
                    ],
                    "QNCOW": [
                        {
                            "name": "RULE APPLICATION AND OTHER CONDITIONS",
                            "text": "NOTE - THE FOLLOWING TEXT IS INFORMATIONAL AND NOT\nVALIDATED FOR AUTOPRICING...",
                            "code": "50"
                        },
                        {
                            "name": "ELIGIBILITY",
                            "text": "NO ELIGIBILITY REQUIREMENTS APPLY.",
                            "code": "01"
                        }
                    ]
                },
                "createOrderLink": "/create__order?flightId=767910178"
            }
        }
    }
Параметр Описание Тип Значения
isAvail Флаг доступности перелёта boolean логический тип
priceStatus Информация о статусе цены {} ...
changed
Флаг, показывающий, была ли изменена цена boolean логический тип
oldValue
Старое значение цены {} ...
amount
Сумма string Вещественное число
currency
Код валюты string Строка в формате ISO 4217(трёхбуквенный алфавитный код)
newValue
Новое значение цены {} аналогичен oldValue
tariffRules Информация о тарифных правилах {} ...
name
Название правила string Строка
text
Описание правила string Строка
code
Код правила string Строка
createOrderLink Ссылка на создание заказа string Строка

Вспомогательные функции (utils)

Получение данных по солнечной стороне (sunInfo)

flights.utils.sunInfo = 
{                
     "info": {
          "sunPercentLeft": 0,
          "sunPercentRight": 0
          },
      "message": "Солнце не будет мешать во время полета"
}
Параметр Описание Тип Значения
sunPercentLeft Процент времени от общей длительности перелета нахождения солнца с левой стороны борта самолета number Целое положительно число не большее 100
sunPercentRight Процент времени от общей длительности перелета нахождения солнца с правой стороны борта самолета number Целое положительно число не большее 100
message Сообщение с информацией о проценте времени нахождения солнца с определенной стороны string Строка

Отели (hotels)

Поиск (search)

Данные формы поиска (formData)

hotels.search.formData = 
{
     "citySuggestions": [
          58165,
          15777
     ],
     "maxLimits": {
          "guestsCountInRoom": {
               "ADT": 4,
               "CLD": 4,
               "total": 6
          },
          "roomsCount": 4,
          "childrenAge": 17
     },
     "dateOptions": {
          "minOffset": 0,
          "maxOffset": 3695,
          "maxStayDays": 21
     },
     "roomsSelectionTemplates": {
          "useExtendedSelect": true,
          "fastSelect": [
               {
                    "ADT": 1,
                    "CLD": 0,
                    "childAges": [],
                    "label": "singleAdult"
               },
               {
                    "ADT": 2,
                    "CLD": 0,
                    "childAges": [],
                    "label": "twoAdults"
               }
          ]
     },
     "id": 49825,
     "uri": "/api/hotels/search/formData/49825"
}
Параметр Описание Тип Значения
citySuggestions Массив идентификаторов городов, которые выводятся для примера на форме поиска [] ...
maxLimits Ограничения на максимальные значения параметров {} ...
guestsCountInRoom
Ограничения на максимальные значения кол-ва человек в комнате {} ...
ADT
Максимальное количество взрослых number Целое положительное число
CLD
Максимальное количество детей number Целое положительное число
total
Максимальное количество человек в комнате number Целое положительное число
roomsCount
Количество комнат number Целое положительное число
childrenAge
Максимальный возраст, при котором гость считается ребенком number Целое положительное число
dateOptions Ограничения на разрешенные даты для поиска отелей {} ...
minOffset
Ближайшая разрешенная дата для поиска отеля (дней от текущего числа) number Целое положительное число
maxOffset
Самая дальняя разрешенная дата для поиска отеля (дней от текущего числа) number Целое положительное число
maxStayDays
Максимальное количество ночей, проведенных в отеле number Целое положительное число
roomsSelectionTemplates Настройки выбора гостей {} ...
useExtendedSelect
Включить расширенный поиск пассажиров boolean Логический тип
fastSelect
Комбинации для быстрого поиска [] ...
ADT
Максимальное количество взрослых number Целое положительное число
CLD
Максимальное количество детей number Целое положительное число
childAges
массив возрастов детей number Целое положительное число
label
Название комбинации String Строка
id Идентификатор поиска number Целое положительное число
uri URI поиска String Строка вида "/api/hotels/search/formData/id"

Данные запроса поиска (request)

hotels.search.request = 
{
     "cityId": 63052,
     "hotelId": 50778,
     "checkInDate": "2015-12-16T00:00:00",
     "checkOutDate": "2015-12-23T00:00:00",
     "isDelayed": false,
     "rooms": [
          {
               "ADT": 1,
               "CLD": 1,
               "childAges": [
                    10
               ]
          }
     ],
     "id": 49825,
     "uri": "/api/hotels/search/request/49825"
}
Параметр Описание Тип Значения
cityId Идентификатор города, в котором расположен отель int Целое число
hotelId Идентификатор отеля(необязательный параметр) int Целое число
checkInDate Дата прибытия в отель String Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)
checkOutDate Дата выселения из отеля String Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)
isDelayed Признак отложенного поиска boolean Логический тип
rooms Информация о номерах [] ...
ADT
Количество взрослых в номере int Целое число
CLD
Количество детей в номере (необязательный параметр, если в номере нет детей) int Целое число
childAges
Массив возрастов детей (необязательный параметр, если в номере нет детей) [] ...
id Идентификатор поиска number Целое положительное число
uri URI поиска String Строка вида "/api/hotels/search/request/id"

Данные ответа на запрос поиска (response)

hotels.search.response = 
{
  "id": 20898
}
Параметр Описание Тип Значения
id Идентификатор поиска, полученный от поставщика int Целое число

Настройки выдачи результатов (resultData)

hotels.search.resultData = 
{
     "showPostFilterHint": true,
     "defaultSort": "price",
     "showBlocks": {
          "useShowCase": true,
          "showFlightsOffer": true,
          "showMap": true,
          "showHotelsWatched": true
     },
     "defaultShowVariants": 100,
     "showSupplier": true,
     "searchTimeout": {
          "useSearchTimeout": true,
          "warningBeforeSearchTimeout": 540,
          "searchTimeout": 600
     },
     "promotionalHotels": [
         50216654,
         33961705
     ]
}
Параметр Описание Тип Значения
showPostFilterHint Показать подсказку к постфильтрам boolean Логический тип
defaultSort Тип выбранной по умолчанию сортировки string Строка, принимающая следующие значения:...
showBlocks Настройки отображения дополнительных блоков {} ...
useShowCase
Показать витрину boolean Логический тип
showFlightsOffer
Показать блок с предложением перелетов boolean Логический тип
showMap
Показать карту boolean Логический тип
showHotelsWatched
Показать блок с просмотренными отелями из данных результатов boolean Логический тип
defaultShowVariants Число вариантов, показанных по умолчанию number Целое положительное число
showSupplier Показывать поставщика в результатах поиска boolean Логический тип
searchTimeout Настройки устаревания результатов поиска {} ...
useSearchTimeout
Использовать таймер устаревания результатов поиска boolean Логический тип
warningBeforeSearchTimeout
Время в секундах, после которого появится предупреждение, что поиск устаревает number Целое положительное число
searchTimeout
Время в секундах, через которое поиск устаревает number Целое положительное число
promotionalHotels Массив идентификаторов отелей, которые будут рекламироваться [] Массив

Данные результатов поиска (results)

hotels.search.results = 
{
     "isFinished": true,
     "roomTypes": [
          {
               "id": 0,
               "name": "Superior Double",
               "commonName": "Superior Double"
          },
          {
               "id": 1,
               "name": "Superior Twin conventionalized",
               "commonName": "Superior Twin"
          },
          {
               "id": 2,
               "name": "Junior Suite conventionalized",
               "commonName": "Junior Suite"
          },
          {
               "id": 3,
               "name": "Economy (without windows) Single ",
               "commonName": "Economy Single"
          }
     ],
     "roomMeals": [
          {
               "id": 0,
               "code": "BB",
               "name": "Continental Breakfast"
          },
          {
               "id": 1,
               "code": "BB",
               "name": "Buffet Breakfast"
          },
          {
               "id": 2,
               "code": "BB",
               "name": "Breakfast"
          }
     ],
     "roomRates": [
          {
               "id": 0,
               "price": {
                    "amount": 246.86,
                    "currency": "EUR"
               },
               "isSpecialOffer": false,
               "visaSupportProvided": false,
               "isNonRefundable": false,
               "bookingRemarks": "",
               "cancellationRules": []
          },
          {
               "id": 1,
               "price": {
                    "amount": 246.86,
                    "currency": "EUR"
               },
               "isSpecialOffer": false,
               "visaSupportProvided": false,
               "isNonRefundable": false,
               "bookingRemarks": "",
               "cancellationRules": []
          },
          {
               "id": 2,
               "price": {
                    "amount": 299.75,
                    "currency": "EUR"
               },
               "isSpecialOffer": false,
               "visaSupportProvided": false,
               "isNonRefundable": false,
               "bookingRemarks": "",
               "cancellationRules": []
          },
          {
               "id": 3,
               "price": {
                    "amount": 170.75,
                    "currency": "EUR"
               },
               "isSpecialOffer": false,
               "visaSupportProvided": false,
               "isNonRefundable": false,
               "bookingRemarks": "",
               "cancellationRules": []
          }
     ],
     "roomsGroup": [
          {
               "id": 0,
               "typeId": 0,
               "mealId": 0,
               "rateId": 0
          },
          {
               "id": 1,
               "typeId": 1,
               "mealId": 0,
               "rateId": 1
          },
          {
               "id": 2,
               "typeId": 2,
               "mealId": 0,
               "rateId": 2
          }
     ],
     "cancellationRules": [],
     "hotels": {
          "50236286": {
               "id": 50236286,
               "name": "Danilovskaya",               
               "roomGroups": [
                    {
                         "searchRoomId": 0,
                         "roomVariants": [
                              0,
                              1,
                              2
                         ]
                    }
               ]
          }
     },
     "info": {
          "warnings": [],
          "errorCode": null,
          "errorMessageEng": null
     },
     "id": "167",
     "uri": "/api/hotels/search/results/167"
}
Параметр Описание Тип Значения
isFinished Признак полностью завершенного поиска boolean Логический тип
roomTypes Информация о найденных типах комнат [] ...
id
Идентификатор типа комнаты в рамках данного поиска number Целое положительное число
name
Название типа комнаты string Строка
commonName
Распространенное название комнаты string Строка
roomMeals Информация о возможных типах питания [] ...
id
Идентификатор типа питания в рамках этого результата поиска number Целое положительное число
name
Название типа питания string Строка
code
Код типа питания string Строка
roomRates Информация о стоимости комнат [] ...
id
Идентификатор тарифа в рамках этого результата поиска number Целое положительное число
price
Контейнер с информацией о валюте {} ...
amount
Сумма базовый цены number Дробное число
currency
Код валюты базовой цены string Строка
isSpecialOffer
является ли данный тариф специальным предложением boolean Логический тип
visaSupportProvided
Признак визовой поддержки отеля boolean Логический тип
isNonRefundable
Признак возможности возврата boolean Логический тип
bookingRemarks
Текст ремарок string Строка
cancellationRules
Набор идентификаторов правил отмены [] Массив целых положительных чисел
roomsGroup Информация о различных вариантах комнат {} ...
id
Идентификатор комнаты number Целое положительное число
typeId
Идентификатор типа комнаты number Целое положительное число
mealId
Идентификатор типа питания number Целое положительное число
rateId
Идентификатор тарифа number Целое положительное число
cancellationRules Информация о правилах отмены [] ...
id
Идентификатор правила отмены в рамках результата данного поиска number Целое положительное число
deadLine
Время, до которого действует данное правило string Строка
percentValue
... number Число
absoluteValue
... number Число
hotels Информация об отелях {} ...
id
Идентификатор отеля number Целое положительное число
name
Название отеля string Строка
roomGroups
Информация о комнатах в отеле [] ...
searchRoomId
Идентификатор комнаты в отеле в рамках данного поиска number Целое число
roomVariants
Массив идентификаторов комнат - ссылки на roomsGroup []
info Информация об успешности/неуспешности поиска {}
errorCode
Код ошибки number Число, может иметь следующие значения:
404 ('No results')
410 ('Invalid SearchId')
500 ('System Error')
null
errorMessageEng
Сообщение об ошибке string Строка, принимающая следующие значения:
'No results'
'Invalid SearchId'
'System Error'
null
warnings
Массив предупреждений []

Статика отелей (staticDataInfo)

Данные о статике отелей (staticDataInfo)

hotels.staticDataInfo = 
{
     "countries": [
          {
               "id": 178,
               "name": "Russia",
               "isoCode": "RU"
          }
     ],
     "regions": [
          {
               "id": 3000046,
               "name": "Москва",
               "countryId": 178
          }
     ],
     "cities": [
          {
               "id": 4754,
               "name": "Москва",
               "countryId": 178,
               "regionId": 3000046,
               "latitude": null,
               "longitude": null
          }
     ],
     "resorts":  [
          {
               "id": 1315,
               "name": "SHERSTON",
               "cityId": 4754
          }
     ],
     "hotels": [
          {
               "id": 163157,
               "name": "SHERSTON",
               "checkInTime": null,
               "checkOutTime": null,
               "starRating": 5,
               "category": null,
               "cityId": 4754,
               "resortId": null,
               "district": "",
               "posLatitude": null,
               "posLongitude": null,
               "description": null,
               "photos": [
                    "http://nt.natecnia.com/NT/photos/HOT/ES/best.western.dante.jumbotours/c_foto1173177694944.jpg",
                    "http://nt.natecnia.com/NT/photos/HOT/ES/best.western.dante.jumbotours/c_foto1173177491528.jpg"
               ],
               "mainPhotoId": 0,
               "addresses": [
                    "MALLORCA 181",
                    "MALLORCA 182"
               ],
               "features": {
                   "CheckIn": {
                        "typeName": "Круглосуточная регистрация",
                        "featuresArray": [
                              "24h Reception",
                              "Early check-in"
                         ]
                    }
                    "Smoking": {
                          "typeName": "Курение",
                          "featuresArray": [
                               "Non Smoking Rooms"
                          ]
                     },
                     "Internet": {
                          "typeName": "Интернет",
                          "featuresArray": [
                              "Internet Corner ($)",
                              "High- Speed  Wireless  Internet  Access",
                              "Wi-Fi (Public Areas)",
                              "High Speed Internet Access"
                           ]
                     },
                     "ClimateControl": {
                          "typeName": "Климат-контроль",
                          "featuresArray": [
                              "Air Conditioning"
                          ]
                      },
                      "Safe": {
                          "typeName": "Сейф",
                          "featuresArray": [
                              "Safe"
                          ]
                      }
               },
               "popularFeatures": [
                     "ExpressCheckIn",
                     "WiFi",
                     "ClimateControl"
               ],
               "distances": {
                    "Subway Station": {
                         "typeName": "Станция метро",
                         "distancesArray": [
                              {
                                   "name": "Smolenskaya - Arbatsko-Pokrovskaya line",
                                   "isClose": false,
                                   "value": {
                                        "distance": 0.3,
                                        "measurement": "км",
                                        "transportType": null
                                   }
                               },
                               {
                                   "name": "smolenskaya",
                                   "isClose": false,
                                   "value": {
                                        "distance": 0.3,
                                        "measurement": "км",
                                        "transportType": null
                                    }
                               }
                          ]
                    },                        
                    "Bus Station": {
                          "typeName": "Автобусная станция",
                          "distancesArray": [
                                {
                                    "name": "",
                                    "isClose": true,
                                    "value": null
                                }
                          ]
                     },
               },
               "customerRating": {
                    "room": 9.1,
                    "facilities": 7.7,
                    "cleanness": 8.9,
                    "food": 9.5,
                    "staff": 8.2,
                    "checkIn": 9.1,
                    "valueForMoney": 9.6
               },
               "averageCustomerRating": {
                    "value": 8.6,
                    "description": "Хорошо"
               },
               "usersOpinionInfo": {
                    "opinionsCount": 2,
                    "opinions": [
                         {
                              "userName": "Варя",
                              "mark": 1,
                              "text":  "Всё плохо"                             
                         },
                         {
                              "userName": "Бронислав",
                              "mark": 5,
                              "text":  "Всё отлично!"                             
                         }
                    ]
               }
          }                
     ],
     "popularHotelsFeatures": {
          "ExpressCheckIn": "Круглосуточная регистрация",
          "ConferenceFacilities": "услуги для проведения конференций",
          "Restaurant": "Ресторан",
          "Bar": "Бар",
          "Parking": "Парковка",
          "Children": "Услуги для клиентов с детьми",
          "WiFi": "WiFi",
          "BathroomAmenities": "Услуги для водных процедур",
          "Elevator": "Лифт",
          "ClimateControl": "Климат-контроль"
     }
}
Параметр Описание Тип Значения
countries Массив стран [] ...
id
Идентификатор страны в системе Немо2 number Целое положительное число
name
Название страны String Строка
isoCode
ISO код страны String Строка из 2 букв(ISO 3166-1 alpha-2)
regions Массив регионов стран [] ...
id
Идентификатор региона в системе Немо2 number Целое положительное число
name
Название региона String Строка
countryId
идентификатор страны в системе Немо2, которой принадлежит регион number Целое положительное число
cities Массив городов [] ...
id
Идентификатор города в системе Немо2 number Целое положительное число
name
Название города String Строка
countryId
идентификатор страны в системе Немо2, которой принадлежит регион number Целое положительное число
regionId
идентификатор региона в системе Немо2, которому принадлежит город number Целое положительное число
latitude
Географическая широта города number Число
longitude
Географическая долгота города number Число
resorts Информация о курортах [] ...
id
Идентификатор курорта в системе Немо2 number Целое положительное число
name
Название курорта String Строка
cityId
Идентификатор города в системе Немо2, в котором находится курорт number Целое положительное число
hotels Информация об отелях [] ...
id
Идентификатор отеля в системе Немо2 number Целое положительное число
name
Название отеля String Строка
checkInTime
Время заезда String Строка
checkOutTime
Время выезда String Строка
category
Тип отеля String Строка
cityId
Идентификатор города в системе Немо2, в котором находится отель number Целое положительное число
resortId
идентификатор курорта в массиве resorts number Целое положительное число
district
название района, в котором расположен отель String Строка
posLatitude
Географическая широта отеля number Число
posLongitude
Географическая долгота отеля number Число
checkOutTime
Время выезда String Строка
starRating
Количество звезд number Целое число от 0 до 5
description
Описание отеля String Строка
photos
Массив фотографий отеля [] ...
mainPhotoId
Идентификатор главного изображения number Целое число
features
Информация об услугах, предоставляемых в отеле {} ...
typeName
Идентификатор услуги(название группы услуг) String Строка
featuresArray
Массив подробных описаний услуги {} Массив строк
popularFeatures
Список популярных услуг, предоставляемых отелем [] Массив
distances
Информация о расстояниях от отеля до важных объектов {} Объект
typeName
Название типа объекта String Строка
distancesArray
Массив объектов данного типа {} Объект
name
Название объекта String Строка
isClose
Признак того, что объект находится очень близко к отелю. Если имеет значение true, value=null boolean логический тип
value
Информация о расстоянии/времени пути. Если она имеется, isClose=false {} ...
distance
Число единиц измерения number Число
measurement
Единица измерения String Строка
transportType
Тип способа перемещения, для которого актуальны distance и measurement {} ...
customerRating
Оценка отеля посетителями [] ...
room
Оценка комнаты number Число
facilities
Оценка бытовых удобств number Число
cleanness
Оценка чистоты number Число
food
Оценка еды number Число
staff
Оценка обслуживающего персонала number Число
checkIn
Оценка регистрации number Число
valueForMoney
Оценка соотношения цены и качества number Число
averageCustomerRating
Данные о средней оценке отеля посетителями [] ...
value
Оценка number Число
description
Текствое описание(при оценке выше 7) number Число
usersOpinionInfo
Информация об отзывах пользователей {} null, если нет отзывов
opinionsCount
Количество отзывов number Число
opinions
Массив отзывов [] ...
userName
Имя пользователя, оставившего отзыв string Строка
mark
Оценка number Число
text
Текст отзыва string Строка
popularHotelsFeatures Список популярных услуг, которые встречаются в данной выдаче Объект вида "Ключ" => "Локальное название" {}

Полный список популярных услуг

    Bar
    BathroomAmenities
    BusinessCenter
    ConferenceFacilities
    Children
    ClimateControl
    DisabledFacilities
    Elevator
    ExpressCheckIn
    Gym
    Laundry
    Meal
    Parking
    PetsAllowed
    Pool
    Restaurant
    SPA
    Transfer
    WiFi

Автокомплит отелей (autocomplete)

Автокомлит отелей (autocomplete)

hotels.autocomplete = 
{
	"autocomplete": {
		"cities": [{
				"id": 4754,
				"name": "Москва",
				"country_code": "RU",
				"hotelsCount": 280,
				"country_name": "Россия"
			}, {
				"id": 14997,
				"name": "Моссель-Бей",
				"country_code": "ZA",
				"hotelsCount": 9,
				"country_name": "Южная Африка"
			}, {
				"id": 12838,
				"name": "Моссман",
				"country_code": "AU",
				"hotelsCount": 1,
				"country_name": "Австралия"
			}],
		"hotels": [{
				"id": 50577298,
				"name": "Mosaic",
				"category": 4,
				"country_code": "TR",
				"cityName": "Istanbul",
				"country_name": "Турция"
			}, {
				"id": 50410601,
				"name": "Mosaic House",
				"category": 4,
				"country_code": "CZ",
				"cityName": "Prague",
				"country_name": "Чешская Республика"
			}, {
				"id": 50575348,
				"name": "Mosaic House",
				"category": 4,
				"country_code": "CZ",
				"cityName": "Prague",
				"country_name": "Чешская Республика"
			}],
		}
	}
}

id
Параметр Описание Тип Значения
autocomplete Блок ответа автокомлита [] ...
cities
Массив городов для автокомплита [] ...
id
Номер города integer ...
name
Название города String Строка
country_сode
Код страны String В формате ISO2
hotelsCount
Количество отелей в городе integer ...
country_name
Название страны String Строка
hotels
Массив отелей [] ...
Номер отеля integer ...
name
Название города String Строка
category
Категория отеля integer Числа от 1 до 5, включительно
country_code
Код страны String В формате ISO2
cityName
Название города String Строка
country_name
Название страны String Строка

Путеводитель (guide)

Страны (countries)

Данные по коду страны ISO 3166-1 alpha-2 (CODE)

guide.countries.CODE = 
{
    "code": "RU",
    "name": "Россия",
    "nameEn": "Russia"
}
Параметр Описание Тип Значения
RU Код страны string Строка из 2 латинских букв
name Название страны string Строка
nameEn Английское название страны string Строка

Города(cities)

Данные по идентификатору города

guide.cities.ID = 
{
    "IATA": "MOW",
    "name": "Москва",
    "nameEn": "Moscow",
    "countryCode": "RU",
    "id": 58165
}


Параметр Описание Тип Значения
IATA Код города string Строка из 3 букв латинского алфавита
name Название города string Строка
nameEn Английское название города string Строка
countryCode Код страны string Строка из 2 букв(ISO 3166-1 alpha-2)
id Код города number Число

Воздушные суда (aircrafts)

Данные по коду воздушного судна

guide.aircrafts.CODE = 
{
                "id": 108,
                "name": "Yk 42",
                "nameEn": "YK 42",
                "manufacture": "ОКБ Яковлева",
                "originCountries": [
                    "RU"
                ],
                "distanceType": "medium_range",
                "fuselageType": "narrowbody",
                "capacity": "102 - 120",
                "cruiseSpeed": "730",
                "isTurbineAirctaft": false,
                "isHomeAirctaft": false,
                "image": {
                    "image": "/static/images/guide_aircraft/images_php154_0.jpg",
                    "icon": "/static/images/guide_aircraft_icon/images_php154_0.jpg",
                    "height": 500,
                    "width": 743
                },
                "map_image": {
                    "image": "/static/images/guide_aircraft/map_image_php155_0.jpg",
                    "icon": "/static/images/guide_aircraft_icon/map_image_php155_0.jpg",
                    "height": 200,
                    "width": 500
                }
            }
Параметр Описание Тип Значения
id Идентификатор воздушного судна number число
name Название авиакомпании string Строка
nameEn Английское название авиакомпании string Строка
manufacture Компания-производитель string Строка
originCountries Набор IATA-кодов стран-производителей [] ...
distanceType Магистральность string Строка, принимающая следующие значения:
short_range(Ближнемагистральный)
medium_range(Среднемагистральный)
long_range(Дальнемагистральный)
fuselageType Фюзеляжность string Строка, принимающая следующие значения:
narrowbody(Узкофюзеляжный)
widebody(Широкофюзеляжный)
capacity Вместимость string Строка вида (100 - 200)
cruiseSpeed Крейсерская скорость (км/ч) number Целое положительное число
isTurbineAirctaft Турбовинтовой boolean Логический тип
isHomeAirctaft Отечественный boolean Логический тип
image Данные о логотипе {} ...
image
Ссылка на логотип string Строка, указывающая относительный путь к изображению
icon
Ссылка на иконку логотипа string Строка, указывающая относительный путь к изображению
height
Высота логотипа number Целое положительное число
width
Ширина логотипа number Целое положительное число
map_image Данные о схеме судна {} ...

Аэропорты (airports)

Данные по IATA коду аэропорта

guide.airports.CODE = 
{
    "IATA": "DME",
    "name": "Домодедово, Москва",
    "nameEn": "Domodedovo, Moscow",
    "properName": "Домодедово",
    "properNameEn": "Domodedovo",
    "cityId": 58165,
    "isAggregation": false,
    "countryCode": "RU"
}
Параметр Описание Тип Значения
IATA IATA код аэропорта string Строка из 3-х заглавных латинских букв
name Название аэропорта string Строка
nameEn Английское название аэропорта string Строка
properName Оригинальное название аэропорта (без города), может быть пустым string Строка
properNameEn Оригинальное название аэропорта на английском (без города), может быть пустым string Строка
cityId Код города number Число
isAggregation Является ли город агрегатом аэропортов boolean Логический тип
countryCode Код страны string Строка из 2 латинских букв(ISO 3166-1 alpha-2)

Авиакомпании (airlines)

Данные по IATA коду авиакомпании

guide.airlines.CODE = 
{
               "IATA": "SU",
                "name": "Аэрофлот - Российские авиалинии",
                "nameEn": "Aeroflot",
                "rating": 6.43,
                "countryCode": "RU",
                "logo": {
                    "image": "/static/images/guide_carrier/logotype_5_0.svg",
                    "icon": "/static/images/guide_carrier_icon/logotype_5_0.svg",
                    "height": null,
                    "width": null
                },
                "monochromeLogo": {
                    "image": "/static/images/guide_carrier/monochrome_logotype_5_0.svg",
                    "icon": "/static/images/guide_carrier_monochrome_icon/monochrome_logotype_5_0.svg",
                    "height": null,
                    "width": null
                },
                "colors": {
                    "companyColor": "#000080",
                    "companyColorAdditional": "#000080"
                }
}


Параметр Описание Тип Значения
IATA IATA код авиакомпании string Строка из 2 знаков (букв латинского алфавита и цифр)
name Название авиакомпании string Строка
nameEn Английское название авиакомпании string Строка
rating Рейтинг перевозчика number Число
countryCode Код страны авиакомпании string Строка из 2 латинских букв (ISO 3166-1 alpha-2)
logo Данные о логотипе авиакомпании {} ...
monochromeLogo Данные о монохромном логотипе авиакомпании {} ...
image
Ссылка на логотип авиакомпании string Строка, указывающая относительный путь к изображению
icon
Ссылка на иконку логотипа авиакомпании string Строка, указывающая относительный путь к изображению
height
Высота логотипа number Целое положительное число
width
Ширина логотипа number Целое положительное число
colors Данные о фирменных цветах авиакомпании {} ...
companyColor
Фирменный цвет string HEX код, соответствующий регулярному выражению /^\#[\da-f]{6}$/
companyColorAdditional
Дополнительный фирменный цвет string HEX код, соответствующий регулярному выражению /^\#[\da-f]{6}$/

Отели (hotels)

Данные по коду отеля

guide.hotels.ID = 
{
     "name": "Bridgestreet Opera Saint Lazar",
     "nameEn": "BRIDGESTREET OPERA SAINT LAZAR",
     "cityId": 15777,
     "id": 7 
}              


Параметр Описание Тип Значения
name Название отеля string Строка
nameEn Английское название отеля string Строка
cityId Идентификатор города, в котором расположен отель number Число
id Код отеля number Число

Автокомплит (autocomplete)

IATA совместимые локации

guide.autocomplete.iata = 
[
    {
         "IATA": "MOW",
         "isCity": true,
         "cityId": 58165
    }
]


Параметр Описание Тип Значения
IATA IATA код string Строка из 3 букв латинского алфавита
isCity Признак, что указан код города-агрегата аэропортов boolean Логический тип
cityId Идентификатор города number Число


Города

guide.autocomplete.cities = 
[
     {
          "id": "58165",
          "name": "Москва",
          "country_code": "RU",
          "country_name": "Россия"
     }
]


Параметр Описание Тип Значения
id Идентификатор города int Целое число
name Название города string Строка
country_code Код страны string Строка из 2 латинских букв
country_name Название страны string Строка

Служебная информация(system)

Служебная информация (info)

system.info = 
{
    "responce": {
                "timestamp": 1433754718.9557,
                "responceTime": 0.10900616645813
            },
    "user": {
                "userID": 3037,
                "agencyID": 3036,
                "status": "manager",
                "settings": {
                    "currentLanguage": "ru",
                    "currentCurrency": "USD",
                    "agencyCurrency": "USD"
                    "googleMapsApiKey": "null"
                    "googleMapsClientId": "null"
                },
                "promoCode": {
                     "code": "22SV2ZS9S",
                     "promoAction": {
                          "name": "Название акции",
                          "description": "Описание акции",
                          "hasFullDesc": true,
                          "fullDescURL": "index.php?go=loyalty/description&id=106"
                     }
                }
            }
}
Параметр Описание Тип Значения
responce Ограничения на максимальные значения параметров {} ...
timestamp
Текущая временная метка с сервера number Вещественное число
responceTime
Время ответа number Вещественное число
user Служебная информация о пользователе {} ...
userID
ID пользователя number Целое положительное число
agencyID
ID агентства number Целое положительное число
status
Статус пользователя string Строка, принимающая следующие значения:
guest
admin
user
expert
manager
company_user
company_expert
company_manager
settings
Настройки пользователя {} ...
currentLanguage
Текущий язык string Строка из 2 латинских букв
currentCurrency
Текущая валюта string Строка из 3 латинских букв
agencyCurrency
Валюта агентства string Строка из 3 латинских букв
googleMapsApiKey
Api ключ для доступа к google maps string Строка
googleMapsClientId
CliendId для доступа к google maps string Строка
promoCode
Информация о промокоде {} ...
code
код string Строка
promoAction
информация о промоакции {} ...
name
Название акции string Строка
description
Описание акции string Строка
hasFullDesc
Флаг наличия подробного описания boolean логический тип
fullDescURL
Ссылка для получения подробного описания string Строка

Заказы (order)

Аутентификация (auth)

Данные запроса аутентификации(request)

order.auth.request = 
{
    "login": "test",
    "password": "test"
}
Параметр Описание Тип Значения
login Логин пользователя string строка
password Пароль пользователя string строка

Данные результата аутентификации(response)

order.auth.response = 
{
     "success": true
}
Параметр Описание Тип Значения
success Результат аутентификации Boolean Логический тип

Данные запроса восстановления пароля(sendPasswordLink)

{
    "login": "test"
}
Параметр Описание Тип Значения
login Логин пользователя string строка

Результат запроса восстановления пароля(sendPasswordLinkResponse)

order.auth.sendPasswordLinkResponse = 
{
     "success": true,
     "message": "Письмо со ссылкой на восстановление пароля отправлено вам на почту"
}
Параметр Описание Тип Значения
success Результат аутентификации Boolean Логический тип
message Сообщение string строка

Данные запроса регистрации пользователя(registration)

order.auth.registration = 
{
    "booking_name": "tst",
    "booking_lastname": "tst",
    "registration_email": "tst@mute-lab.com",
    "registration_password": "tst",
    "booking_phone": "89271111111",
    "subscribe": true,
    "capture": "tst"
}
Параметр Описание Тип Значения
booking_name Имя пользователя string строка
booking_lastname Фамилия пользователя string строка
registration_email Адрес электронной почты пользователя string строка
registration_password Пароль string строка
booking_phone Телефон пользователя string строка
subscribe Признак согласия на получение информации о лучших предложениях Boolean Логический тип
capture Код проверки с контрольного изображения string строка

Результат запроса регистрации пользователя(registrationResponse)

order.auth.registrationResponse = 
{
     "success": true,
     "message": "Письмо с регистрационными данными отправлено на Ваш электронный адрес. Для подтверждения
 регистрации перейдите, пожалуйста, по ссылке в письме.",
     "redirectUrl": null
}
Параметр Описание Тип Значения
success Результат регистрации Boolean Логический тип
message Сообщение string строка
redirectUrl Ссылка для перехода string строка

Данные результата запроса о параметрах капчи(captchaParamsResponse)

order.auth.captchaParamsResponse = 
{
     "image": "data:image/jpeg;base64,JBJ435346...."
}
Параметр Описание Тип Значения
image Ссылка на изображение string строка

Данные запроса о состоянии заказа(status)

order.auth.status = 
{
    "booking_id": 445469,
    "passenger_lastname": "Ivanov",
    "access_code": "8Z273L"
}
Параметр Описание Тип Значения
booking_id Идентификатор заказа string строка, может содержать цифры от 0 до 9 и дефис
passenger_lastname Фамилия одного из пассажиров string строка
access_code Код доступа к заказу string строка

Данные результата запроса о состоянии заказа(statusResponse)

order.auth.statusResponse = 
{
     "success": true,
     "message": null,
     "redirectUrl": "http://nemotravel/poffice__bookinfo?booking_id=452434"
}
Параметр Описание Тип Значения
success Признак успешности получения ответа Boolean Логический тип
message Сообщение string строка
redirectUrl Ссылка для перехода string строка

Протокорзина (reminder)

Информация о заказах пользователя (orders)

order.reminder.orders = 
[
     {
          "id": 296944,
          "type": "oneFlight",
          "products": [
               {
                    "status": "completed",
                    "type": "flight",
                    "depAirpIATA": "VKO",
                    "arrAirpIATA": "LED",
                    "beginDateTime": "2015-09-29T10:00:00",
                    "endDateTime": "2015-09-29T11:30:00",
                    "totalPrice": {
                         "amount": 485,
                         "currency": "RUB"
                    },
                    "description": "..."
               }
          ],
          "orderPrice": {
               "amount": 485,
               "currency": "RUB"
          }
     }
]
Параметр Описание Тип Значения
id Идентификатор заказа number Целое положительное число
type тип заказа String Строка
products Массив продуктов [] ...
status
Статус String Строка, принимающая одно из следующих значений:
pending - ожидает бронирования,
booked - забронирован, ожидает оплаты,
completed - оплаченный
type
Тип продукта String Строка, принимающая одно из следующих значений:
flight - перелет,
hotel - отель,
train - поездка на поезде
depAirpIATA
Для перелёта - код аэропорта вылета String Строка из 2 знаков (букв латинского алфавита и цифр)
arrAirpIATA
Для перелёта - код аэропорта прилета String Строка из 2 знаков (букв латинского алфавита и цифр)
beginDateTime
Дата начала услуги String Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)
endDateTime
Дата завершения услуги String Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)
totalPrice
Цена услуги {} ...
amount
Сумма number Дробное число
currency
Код валюты string Строка в формате ISO 4217(трёхбуквенный алфавитный код)
description
Описание продукта string Строка
orderPrice Цена заказа {} Формат аналогичен totalPrice

Информация о системе (system)

Служебная информация (info)

Получение данных о валютах (currencyRates)

system.info.currencyRates = 
{
     "rates": [
          {
               "currency": "EUR",
               "rate": 0.015983249554467,
               "title": "Евро"
          },
          {
               "currency": "USD",
               "rate": 0.017322646415338,
               "title": "Американский Доллар"
          },
          {
               "currency": "RUB",
               "rate": 1,
               "title": "Российский Рубль"
          },
          {
               "currency": "GBP",
               "rate": 0.011694224105772,
               "title": "Британский фунт"
          },
          {
               "currency": "CZK",
               "rate": 0.44018540609305,
               "title": "Чешская крона"
          },
          {
               "currency": "LVL",
               "rate": 0.0169,
               "title": "Латвийский Лат"
          },
          {
               "currency": "JPY",
               "rate": 2.0694507677662,
               "title": "Японская Йена"
          },
          {
               "currency": "CNY",
               "rate": 0.10767415217373,
               "title": "Китайский Юань"
          },
          {
               "currency": "UAH",
               "rate": 0.40708159136336,
               "title": "Гривна"
          }
     ],
     "conversionEnabled": true,
     "roundingFunction": "ceil",
     "backendCurrencyList": [
          "RUB"
     ]
}
Параметр Описание Тип Значения
rates Массив данных о валютах [] ...
currency
Код валюты String Строка в формате ISO 4217(трёхбуквенный алфавитный код)
rate
Код валюты Numeric Число от 0 до 1
title
Название валюты String Строка
conversionEnabled Флаг допустимости пересчета цен в результатах поиска boolean Логический тип
roundingFunction Тип округления String Строка, принимающая следующие значения:
'ceil' - всегда вверх;
'floor' - всегда вниз;
'round' - математическое
backendCurrencyList список валют, допустимых для бэкендных расчетов [] Массив кодов валют


Трэвел-политики (travelPolicies)

Получение данных о трэвел-политиках (travelPolicies)

travelPolicies = 
[
        {
            "id": 184,
            "name": {
                "en": "First rule",
                "default": "Правило первое"
            },
            "rules": {
                "isDirect": true,
                "arrAirports": [
                    "LED",
                    "KBP"
                ],
                "depAirports": [
                    "MOW",
                    "KBP"
                ],
                "arrCountries": [
                    "RU",
                    "UA"
                ],
                "depCountries": [
                    "RU",
                    "UA"
                ],
                "airlines": [
                    "SU",
                    "PS"
                ],
                "serviceClass": [
                    "E",
                    "B",
                    "F"
                ],
                "zones": [
                    "EU",
                    "AS"
                ],
                "tariffs": [
                    "QWE"
                ],
                "bookingClass": [
                    "T",
                    "Q"
                ]
            },
            "restrictions": {
                "priceMax": {
                    "amount": "100000",
                    "currency": "RUB"
                },
                "priceDiffMax": {
                    "amount": "20",
                    "currency": "PCT"
                }
            }
        },
        {
            "id": 185,
            "name": {
                "default": "Правило второе"
            },
            "rules": {
                "isDirect": false,
                "arrAirports": [
                    "LED"
                ],
                "depAirports": [
                    "MOW"
                ],
                "arrCountries": [],
                "depCountries": [],
                "airlines": [],
                "serviceClass": [],
                "zones": [
                    "EU"
                ],
                "tariffs": [],
                "bookingClass": []
            },
            "restrictions": {
                "priceMax": {
                    "amount": "90000",
                    "currency": "RUB"
                },
                "priceDiffMax": {
                    "amount": "",
                    "currency": "PCT"
                }
            }
        }
    ]
Параметр Описание Тип Значения
id Идентификатор правила String Строка
name Данные о названиях правила на разных языках {} Объект или null. Ключами являются коды языков либо default - название по умолчанию
rules Правила политики {} ...
isDirect
Флаг обязательного прямого перелета boolean Логический тип
arrAirports
Массив IATA кодов аэропортов прибытия [] ...
depAirports
Массив IATA кодов аэропортов вылета [] ...
arrCountries
Массив кодов стран прибытия [] ...
depCountries
Массив кодов стран вылета [] ...
airlines
Массив IATA кодов авиакомпаний [] ...
serviceClass
Массив однобуквенных кодов сервисных классов [] ...
zones
Массив кодов географических зон перелета [] ...
tariffs
Массив кодов тарифов [] ...
bookingClass
Массив однобуквенных кодов допустимых классов бронирования [] ...
restrictions Ограничения по цене {} ...
priceMax
Верхняя планка цены {} ...
priceDiffMax
Максимальная разбежка с минимальной ценой {} ...
amount
Сумма number Дробное число
currency
Код валюты string Строка в формате ISO 4217(трёхбуквенный алфавитный код)