Структура ответа#

Детальное описание структуры ответа от /avia/search.

Основная структура#

ПолеТипОбязательноОписание
errorErrorНетИнформация об ошибке (при наличии)
searchIdstringДаИдентификатор поиска для последующих операций
offersOffer[]НетСписок доступных предложений
flightsmap<string, FlightInfo>НетСловарь с деталями рейсов (ключ — flightId)
fareFamiliesmap<string, FareFamily>НетСловарь тарифных семейств (ключ — fareFamilyRefId)

Структура Offer#

Каждое предложение в массиве offers:

ПолеТипОбязательноОписание
offerIdstringДаИдентификатор предложения
legsLeg[]ДаСегменты маршрута
offerItemsOfferItem[]ДаВарианты цен для разных тарифов
validatingCarrierstringДаКод авиакомпании-валидатора (IATA)
ticketingRequirementsTicketingRequirementsДаТребования к выписке билета

Структура Leg#

Каждый сегмент маршрута в legs:

ПолеТипОбязательноОписание
segmentsLegSegment[]ДаСписок сегментов (рейсов)
totalDurationdurationНетОбщее время в пути (ISO 8601 duration)

Структура LegSegment#

ПолеТипОбязательноОписание
segmentIdstringДаИдентификатор сегмента
flightIdstringДаСсылка на рейс из словаря flights
stopsStopPoint[]НетТехнические остановки во время рейса
stopQuantityintegerДаКоличество остановок (0 для прямого рейса)

Структура StopPoint#

Техническая остановка во время рейса:

ПолеТипОбязательноОписание
locationLocationДаАэропорт или город остановки
arrivalAtdatetimeНетВремя прибытия в точку остановки (ISO 8601)
departureAtdatetimeНетВремя отправления из точки остановки (ISO 8601)
stopDurationdurationНетДлительность остановки (ISO 8601 duration)

Структура OfferItem#

Каждый вариант цены в offerItems:

ПолеТипОбязательноОписание
offerItemIdstringДаИдентификатор для создания бронирования
totalAmountMonetaryAmountДаОбщая стоимость
fareAmountMonetaryAmountДаБазовый тариф
taxAmountMonetaryAmountНетСумма такс и сборов
detailsmap<PassengerType, PassengerPriceDetail>ДаДетали по типам пассажиров
miniRulesMiniRule[]НетПравила изменения, отмены и возврата билетов
timeLimitdatetimeНетСрок выписки билета (ISO 8601)
offerExpirationdatetimeНетСрок действия предложения (ISO 8601)
supplierSupplierНетКод поставщика
ticketingFeeTicketingFeeНетСбор за оформление билета, рассчитанный пресетом Revenue Manager

Структура TicketingFee#

ПолеТипОбязательноОписание
amountMonetaryAmountДаОбщая сумма сбора (baseFee × множитель allocation)
allocationFeeAllocationTypeДаРежим распределения сбора
breakdownPerPtcmap<string, MonetaryAmount>НетРазбивка сбора по типам пассажиров (только при allocation = perTicket)
presetIduuidДаИдентификатор пресета, по которому рассчитан сбор

FeeAllocationType — возможные значения:

  • perTicket — Сбор за каждый билет
  • perSegment — Сбор за каждый сегмент

Структура MiniRule#

Правила для изменения, отмены и возврата билетов:

ПолеТипОбязательноОписание
permittedbooleanНетРазрешена ли операция (true) или запрещена (false)
ruleCategoryRuleCategoryTypeДаКатегория правила (см. ниже)
penaltyAmountMonetaryAmountНетШтраф в денежном выражении
penaltyPercentdecimalНетШтраф в процентах

RuleCategoryType — категории правил:

  • changesVoluntary — Добровольное изменение билета
  • refundsVoluntary — Добровольный возврат билета

Структура PassengerPriceDetail#

Детали по типу пассажира (adt, chd, inf):

ПолеТипОбязательноОписание
fareAmountMonetaryAmountДаБазовый тариф для пассажира
fareComponentsFareComponent[]ДаКомпоненты тарифа
totalAmountMonetaryAmountДаОбщая стоимость для пассажира
taxesTaxesНетРазбивка такс

Структура FareComponent#

ПолеТипОбязательноОписание
fareBasisCodestringДаКод тарифа
tariffTypeTariffTypeДаТип тарифа
ticketDesignatorstringНетДескриптор билета для специальных типов тарифов
accountCodestringНетКод аккаунта для корпоративных/контрактных тарифов
baggageAllowancesBaggageAllowance[]НетНормы багажа
segmentIdsstring[]ДаСсылки на сегменты
cabinTypeCabinTypeДаКласс обслуживания
rbdstringДаBooking Class Code
fareFamilyRefIdstringНетСсылка на тарифное семейство
availableSeatCountintegerНетКоличество доступных мест
brandBrandInfoНетИнформация о брендированном тарифе

Структура BrandInfo#

ПолеТипОбязательноОписание
brandCodestringДаКод бренда
brandNamestringНетНазвание бренда

Структура FlightInfo#

Детали рейса в словаре flights (ключ — flightId):

ПолеТипОбязательноОписание
marketingCarrierFlightDesignatorДаМаркетинговый перевозчик
operatingCarrierFlightDesignatorНетФактический перевозчик
departureFlightPointДаИнформация о вылете
arrivalFlightPointДаИнформация о прилете
flightDurationdurationНетВремя в пути (ISO 8601 duration)
equipmentCodestringНетКод типа воздушного судна
typeFlightTypeДаТип рейса

Структура FlightPoint#

Информация о точке вылета/прилета:

ПолеТипОбязательноОписание
locationLocationДаАэропорт
dateTimedatetimeДаДата и время (ISO 8601)
terminalstringНетТерминал

Структура FareFamily#

Тарифное семейство в словаре fareFamilies (ключ — fareFamilyRefId):

ПолеТипОбязательноОписание
codestringНетКод тарифного семейства (например, “ECONOMY”, “PREMIUM”)
carrierCodestringДаКод авиакомпании (IATA)
namestringДаНазвание тарифного семейства
descriptionstringНетОписание условий и услуг

Структура TicketingRequirements#

Требования к выписке билета:

ПолеТипОбязательноОписание
ticketQuantityintegerДаКоличество билетов для выписки
detailsTicketingDetail[]НетДетали по сегментам

Структура TicketingDetail#

ПолеТипОбязательноОписание
segmentIdsstring[]ДаСсылки на сегменты
validatingCarrierstringДаКод авиакомпании-валидатора (IATA)

Примеры ответов#

📥 Скачать пример ответа

Успешный ответ#

Развернуть пример
  1{
  2  "searchId": "6FBC2E65528BFD16CAD20472AF493554",
  3  "offers": [
  4    {
  5      "offerId": "52BE8B4712617B39F8B7ED22A03AE145",
  6      "legs": [
  7        {
  8          "segments": [
  9            {
 10              "segmentId": "FA83FB7DC5CADD80D073608CA35333B2",
 11              "flightId": "UT1105SVX-UFA301220252225",
 12              "stopQuantity": 0
 13            }
 14          ],
 15          "totalDuration": "01:55:00"
 16        }
 17      ],
 18      "offerItems": [
 19        {
 20          "offerItemId": "2D16A846EBCF9944E5E4CF61608E031C",
 21          "totalAmount": {
 22            "currencyCode": "RUB",
 23            "value": 8400
 24          },
 25          "fareAmount": {
 26            "currencyCode": "RUB",
 27            "value": 7100
 28          },
 29          "taxAmount": {
 30            "currencyCode": "RUB",
 31            "value": 1300
 32          },
 33          "details": {
 34            "adt": {
 35              "fareAmount": {
 36                "currencyCode": "RUB",
 37                "value": 7100
 38              },
 39              "fareComponents": [
 40                {
 41                  "fareBasisCode": "XLTOW",
 42                  "tariffType": "public",
 43                  "baggageAllowances": [
 44                    {
 45                      "type": "checked",
 46                      "pieceAllowance": {
 47                        "totalPieces": 0
 48                      }
 49                    },
 50                    {
 51                      "type": "carryOn",
 52                      "pieceAllowance": {
 53                        "totalPieces": 1,
 54                        "weightPerPiece": {
 55                          "value": 5,
 56                          "unit": "kg"
 57                        },
 58                        "dimensions": {
 59                          "length": 40,
 60                          "width": 30,
 61                          "height": 20,
 62                          "unit": "cm"
 63                        }
 64                      }
 65                    }
 66                  ],
 67                  "segmentIds": [
 68                    "FA83FB7DC5CADD80D073608CA35333B2"
 69                  ],
 70                  "cabinType": "economy",
 71                  "rbd": "X",
 72                  "fareFamilyRefId": "UT_МИНИМУМ",
 73                  "availableSeatCount": 3
 74                }
 75              ],
 76              "totalAmount": {
 77                "currencyCode": "RUB",
 78                "value": 8400
 79              },
 80              "taxes": {
 81                "total": {
 82                  "currencyCode": "RUB",
 83                  "value": 1300
 84                },
 85                "breakdown": [
 86                  {
 87                    "code": "YQ",
 88                    "amount": {
 89                      "currencyCode": "RUB",
 90                      "value": 1000
 91                    }
 92                  },
 93                  {
 94                    "code": "YR",
 95                    "amount": {
 96                      "currencyCode": "RUB",
 97                      "value": 300
 98                    }
 99                  }
100                ]
101              }
102            }
103          },
104          "timeLimit": "2025-12-29T12:00:00+00:00",
105          "offerExpiration": "2025-12-29T15:00:00+00:00",
106          "supplier": "mixvel"
107        }
108      ],
109      "ticketingRequirements": {
110        "ticketQuantity": 1,
111        "details": [
112          {
113            "segmentIds": [
114              "FA83FB7DC5CADD80D073608CA35333B2"
115            ],
116            "validatingCarrier": "UT"
117          }
118        ]
119      },
120      "validatingCarrier": "UT"
121    }
122  ],
123  "flights": {
124    "UT1105SVX-UFA301220252225": {
125      "marketingCarrier": {
126        "carrierCode": "UT",
127        "flightNumber": "1105"
128      },
129      "operatingCarrier": {
130        "carrierCode": "UT",
131        "flightNumber": "1105"
132      },
133      "departure": {
134        "location": {
135          "code": "SVX",
136          "codeType": "iata",
137          "type": "airport"
138        },
139        "dateTime": "2025-12-30T22:25:00"
140      },
141      "arrival": {
142        "location": {
143          "code": "UFA",
144          "codeType": "iata",
145          "type": "airport"
146        },
147        "dateTime": "2025-12-31T00:20:00",
148        "terminal": "1"
149      },
150      "flightDuration": "01:55:00",
151      "equipmentCode": "AT7",
152      "type": "scheduled"
153    }
154  },
155  "fareFamilies": {
156    "UT_МИНИМУМ": {
157      "carrierCode": "UT",
158      "name": "МИНИМУМ",
159      "description": "РУЧНАЯ КЛАДЬ ДО 5КГ 40Х30Х20СM"
160    }
161  }
162}

Ответ с ошибкой#

1{
2  "error": {
3    "code": "NO_AVAILABILITY",
4    "message": "Нет доступных рейсов",
5    "description": "Для заданных параметров поиска не найдено доступных предложений",
6    "errorId": "018c5f2e-9b3a-7f4d-8e2c-1a2b3c4d5e6f"
7  }
8}