1. SearchTourPackages

Version 15.1 by Giorgi Mdivnishvili on 2023/12/26 14:44

Method Description

The initial method of the integration process is authorization. You will be provided with a test user username and password to generate the access token that you will need to pass in all the following methods. 

Endpoint URL - [POST]

Request Parameters

None  

Request Body

{
 "departureCountryCode": "string",
 "departureCityUID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
 "arrivalCountryCode": "string",
 "arrivalLocations": [
    {
     "type": "string",
     "parent": "string",
     "label": "string",
     "subLabel": "string",
     "value": "string",
     "tag": "string"
    }
  ],
 "checkInDate": "2023-12-14T13:43:54.766Z",
 "checkInDateTo": "2023-12-14T13:43:54.766Z",
 "checkOutDate": "2023-12-14T13:43:54.766Z",
 "stayDays": 0,
 "stayDaysTo": 0,
 "departureDate": "2023-12-14T13:43:54.766Z",
 "returnDate": "2023-12-14T13:43:54.766Z",
 "airlineCode": "string",
 "ticketType": "string",
 "directFlightsOnly": true,
 "longConnectTime": true,
 "adults": 0,
 "children": 0,
 "childrenAges": [
   0
  ],
 "extendedSearch": true,
 "totalPriceFrom": 0,
 "totalPriceTo": 0,
 "recommended": true,
 "popular": true,
 "freeSale": true,
 "groupByHotel": true,
 "hotelCodes": [
   "string"
  ],
 "mealPlans": [
   "string"
  ],
 "hotelClasses": [
   "string"
  ],
 "hotelTypes": [
   "CityHotel"
  ],
 "hotelServices": [
   "HasAlcohol"
  ],
 "pagingId": "string",
 "pageNumber": 0,
 "pageRowCount": 0
}

Request example

{
 "departureCountryCode": "KZ",
 "departureCityUID": "f0ba6324-f337-405c-8cc7-23d62cf664e8",
 "arrivalCountryCode": "AE",
   "arrivalLocations": [
        {
           "type": "city",
           "label": "Dubai",
           "value": "f5185fa3-3f56-44ed-bf6b-80386a33caa2",
           "tag": "Dubai"
        }
    ],
 "checkInDate": "2024-02-05T20:00:00.000Z",
 "checkInDateTo": "2024-02-10T20:00:00.000Z",
 
 "stayDays": 3,
 "stayDaysTo": 6,

 "airlineCode": "",
 "ticketType": "",
 "directFlightsOnly": true,
 "longConnectTime": true,
 "adults": 1,
 "children": 1,
 "childrenAges": [
   2
  ],
 "extendedSearch": false,
 "totalPriceFrom": 100,
 "totalPriceTo": 15000,
 "recommended": true,
 "popular": true,
 "freeSale": true,
 "groupByHotel": true,
 "hotelCodes": [
   
  ],
 "mealPlans": [
   
  ],
 "hotelClasses": [
   
  ],
 "hotelTypes": [
   
  ],
 "hotelServices": [
   
  ],
 "pagingId": "",
 "pageNumber": 10,
 "pageRowCount": 10
}

Response Body

{
 "error": true,
 "errorCode": "string",
 "errorDescription": "string",
 "userErrorDescription": "string",
 "packages": [
    {
     "cacheKey": "string",
     "id": "string",
     "priceCurrency": "string",
     "totalPrice": 0,
     "agentCommissionPercent": 0,
     "agentCommissionAmount": 0,
     "includedExtrasAmount": 0,
     "priceDifference": 0,
     "hotel": {
       "hotelPriceId": "string",
       "providerId": 0,
       "hotelName": "string",
       "hotelCode": "string",
       "nigths": 0,
       "mealPlan": "string",
       "hotelClass": "string",
       "availabilityType": "OnRequest",
       "availableRoomsCount": 0,
       "fewRooms": true,
       "roomCategoryCode": "string",
       "roomCategoryName": "string",
       "placementTypeName": "string",
       "placementDescription": "string",
       "checkInDate": "2023-12-14T13:47:13.396Z",
       "checkOutDate": "2023-12-14T13:47:13.396Z",
       "adults": 0,
       "children": 0,
       "districtUID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
       "districtName": "string",
       "cityUID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
       "cityName": "string",
       "countryCode": "string",
       "countryName": "string",
       "hasAlcohol": true,
       "hasFreeWifi": true,
       "hasMetro": true,
       "hasPool": true,
       "hasMall": true,
       "cancellationPolicyDescription": "string",
       "cancellationPolicy": {
         "cancellationPolicyCode": "string",
         "noShowChargeValue": 0,
         "noShowChargeValueType": "string",
         "earlyDepartureChargeValue": 0,
         "earlyDepartureChargeValueType": "string",
         "conditions": [
            {
             "timeunits": 0,
             "timeunitType": "string",
             "timeOffsetTypeName": "string",
             "chargeValue": 0,
             "chargeValueType": "string"
            }
          ]
        }
      },
     "flight": {
       "id": "string",
       "departureDate": "2023-12-14T13:47:13.396Z",
       "returnDate": "2023-12-14T13:47:13.396Z",
       "departureTicketsLeft": 0,
       "returnTicketsLeft": 0,
       "departureAvailabilityType": "OnRequest",
       "returnAvailabilityType": "OnRequest",
       "isTwoWay": true,
       "departureSegments": [
          {
           "airlineCode": "string",
           "airlineName": "string",
           "flightCode": "string",
           "class": "string",
           "lugageWeight": 0,
           "handLugageWeight": 0,
           "departureFlightDate": "2023-12-14T13:47:13.396Z",
           "departureCountryName": "string",
           "departureCityName": "string",
           "departureAirportCode": "string",
           "departureAirportName": "string",
           "departureTerminalCode": "string",
           "arrivalFlightDate": "2023-12-14T13:47:13.396Z",
           "arrivalCountryName": "string",
           "arrivalCityName": "string",
           "arrivalAirportCode": "string",
           "arrivalAirportName": "string",
           "arrivalTerminalCode": "string",
           "flightDuration": "string",
           "baggages": [
              {
               "baggageCode": "string",
               "description": "string",
               "price": 0,
               "currency": "string",
               "included": true
              }
            ]
          }
        ],
       "returnSegments": [
          {
           "airlineCode": "string",
           "airlineName": "string",
           "flightCode": "string",
           "class": "string",
           "lugageWeight": 0,
           "handLugageWeight": 0,
           "departureFlightDate": "2023-12-14T13:47:13.396Z",
           "departureCountryName": "string",
           "departureCityName": "string",
           "departureAirportCode": "string",
           "departureAirportName": "string",
           "departureTerminalCode": "string",
           "arrivalFlightDate": "2023-12-14T13:47:13.396Z",
           "arrivalCountryName": "string",
           "arrivalCityName": "string",
           "arrivalAirportCode": "string",
           "arrivalAirportName": "string",
           "arrivalTerminalCode": "string",
           "flightDuration": "string",
           "baggages": [
              {
               "baggageCode": "string",
               "description": "string",
               "price": 0,
               "currency": "string",
               "included": true
              }
            ]
          }
        ]
      },
     "extraServices": [
        {
         "extraServiceCode": "string",
         "extraServiceTypeCode": "string",
         "isMandatory": 0,
         "extraServiceName": "string",
         "minimalServiceAmount": 0,
         "includedPriceCode": "string",
         "prices": [
            {
             "extraServicePriceCode": "string",
             "displayName": "string",
             "restrictionInfo": "string",
             "additionalInfo": "string",
             "price": 0,
             "extraPrice": 0,
             "currency": "string"
            }
          ]
        }
      ],
     "insurancePrice": {
       "name": "string",
       "price": 0,
       "priceSurcarge": 0,
       "actualStartDate": "2023-12-14T13:47:13.396Z",
       "actualEndDate": "2023-12-14T13:47:13.396Z",
       "optional": true,
       "includedInPackagePrice": true
      }
    }
  ],
 "pagingId": "string",
 "pageNumber": 0,
 "pageCount": 0
}

Response example

{
   "packages": [
        {
           "cacheKey": "c705ab31e00e4f9a81c2fd46b2cdbb47f6fd9a6e16984236beb979b31aefafa4:{79}:i:10",
           "id": "tour:b01c168e-2ea7-4ea6-b6e0-55abb8cab0a0:da894a1e-88c0-4877-b216-0eeeabe186f3:4298d06f-4344-4a39-ad98-071b7760cf30",
           "priceCurrency": "USD",
           "totalPrice": 1033.53,
           "agentCommissionPercent": 0.0,
           "agentCommissionAmount": 0.0,
           "includedExtrasAmount": 0,
           "priceDifference": 0,
           "hotel": {
               "hotelPriceId": "da894a1e-88c0-4877-b216-0eeeabe186f3",
               "providerId": 13,
               "hotelName": "Mercure Dubai Barsha Heights Suites  Apartments",
               "hotelCode": "5f125310-7025-4807-a4c6-49cd284c9c14",
               "nigths": 3,
               "mealPlan": "BB",
               "hotelClass": "4",
               "availabilityType": "FreeSale",
               "availableRoomsCount": 0,
               "fewRooms": true,
               "roomCategoryCode": "bc5f2224-bd4c-49b2-ab57-01eb7fa80d41",
               "roomCategoryName": "1 B/R Suite City View",
               "placementTypeName": "DBL",
               "checkInDate": "2024-02-09T20:00:00.000Z",
               "checkOutDate": "2024-02-12T20:00:00.000Z",
               "adults": 1,
               "children": 1,
               "districtUID": "4c65f6ed-902b-4fd8-9419-af7884c22c5e",
               "districtName": "Al Barsha",
               "cityUID": "f5185fa3-3f56-44ed-bf6b-80386a33caa2",
               "cityName": "Dubai",
               "countryCode": "AE",
               "countryName": "United Arab Emirates",
               "hasAlcohol": false,
               "hasFreeWifi": true,
               "hasMetro": true,
               "hasPool": true,
               "hasMall": false,
               "cancellationPolicyDescription": "Cancellation Policy: 5 Day Before Arrival: 100.00 %, Early Departure: 100.00 %, NoShow: 100.00 %",
               "cancellationPolicy": {
                   "noShowChargeValue": 100.0,
                   "noShowChargeValueType": "%",
                   "earlyDepartureChargeValue": 100.0,
                   "earlyDepartureChargeValueType": "%",
                   "conditions": [
                        {
                           "timeunits": 5,
                           "timeunitType": "Day",
                           "timeOffsetTypeName": "Before Arrival",
                           "chargeValue": 100.0,
                           "chargeValueType": "%"
                        }
                    ]
                }
            },
           "flight": {
               "id": "4298d06f-4344-4a39-ad98-071b7760cf30",
               "departureDate": "2024-02-09T20:00:00.000Z",
               "returnDate": "2024-02-12T20:00:00.000Z",
               "departureTicketsLeft": 7,
               "returnTicketsLeft": 7,
               "departureAvailabilityType": "FewPlaces",
               "returnAvailabilityType": "FewPlaces",
               "isTwoWay": true,
               "sameBaggageForAll": false,
               "totalBaggage": false,
               "departureSegments": [
                    {
                       "airlineCode": "KC",
                       "airlineName": "Air Astana-",
                       "flightCode": "KC897",
                       "class": "econom",
                       "lugageWeight": 20,
                       "handLugageWeight": 6,
                       "departureFlightDate": "2024-02-09T20:00:00.000Z",
                       "departureCountryName": "Kazakhstan",
                       "departureCityName": "Almaty",
                       "departureAirportCode": "ALA",
                       "departureAirportName": "Almaty Intl Airport",
                       "departureTerminalCode": "ALA",
                       "arrivalFlightDate": "2024-02-09T20:00:00.000Z",
                       "arrivalCountryName": "United Arab Emirates",
                       "arrivalCityName": "Dubai",
                       "arrivalAirportCode": "DXB",
                       "arrivalAirportName": "Dubai Intl Airport",
                       "arrivalTerminalCode": "DXB1",
                       "flightDuration": "0h 50m"
                    }
                ],
               "returnSegments": [
                    {
                       "airlineCode": "KC",
                       "airlineName": "Air Astana-",
                       "flightCode": "KC900",
                       "class": "econom",
                       "lugageWeight": 20,
                       "handLugageWeight": 6,
                       "departureFlightDate": "2024-02-12T20:00:00.000Z",
                       "departureCountryName": "United Arab Emirates",
                       "departureCityName": "Dubai",
                       "departureAirportCode": "DXB",
                       "departureAirportName": "Dubai Intl Airport",
                       "departureTerminalCode": "DXB1",
                       "arrivalFlightDate": "2024-02-12T20:00:00.000Z",
                       "arrivalCountryName": "Kazakhstan",
                       "arrivalCityName": "Almaty",
                       "arrivalAirportCode": "ALA",
                       "arrivalAirportName": "Almaty Intl Airport",
                       "arrivalTerminalCode": "ALA",
                       "flightDuration": "8h 15m"
                    }
                ],
               "passengers": [
                    {
                       "id": "42768722011000004-A1",
                       "isAdult": true,
                       "forwardBaggages": [],
                       "backwardBaggages": []
                    },
                    {
                       "id": "42768722011000004-C1",
                       "isAdult": false,
                       "forwardBaggages": [],
                       "backwardBaggages": []
                    }
                ]
            },
           "extraServices": [],
           "insurancePrice": {
               "name": "Medical INS (N10000)",
               "price": 17.92,
               "priceSurcarge": 0.0,
               "actualStartDate": "2024-02-09T20:00:00.000Z",
               "actualEndDate": "2024-02-12T20:00:00.000Z",
               "optional": false,
               "includedInPackagePrice": true
            }
        }
    ],
   "pagingId": "79",
   "pageNumber": 10,
   "pageCount": 2452,
   "totalCount": 2452,
   "error": false
}

Schema

Success

SearchTourPackagesResponse{

errorboolean
errorCodestring
nullable: true
errorDescriptionstring
nullable: true
userErrorDescriptionstring
nullable: true
packages[
nullable: trueTourPackage{
cacheKeystring
nullable: true
idstring
nullable: true
priceCurrencystring
nullable: true
totalPricenumber($double)
agentCommissionPercentnumber($double)
agentCommissionAmountnumber($double)
includedExtrasAmountnumber($double)
priceDifferencenumber($double)
hotelPackageHotel{
hotelPriceIdstring
nullable: true
providerIdinteger($int32)
hotelNamestring
nullable: true
hotelCodestring
nullable: true
nigthsinteger($int32)
mealPlanstring
nullable: true
hotelClassstring
nullable: true
availabilityTypeRoomAvailabilityTypeEnumstringEnum:
[ OnRequest, FreeSale, StopSale ]
availableRoomsCountinteger($int32)
fewRoomsboolean
roomCategoryCodestring
nullable: true
roomCategoryNamestring
nullable: true
placementTypeNamestring
nullable: true
placementDescriptionstring
nullable: true
checkInDatestring($date-time)
checkOutDatestring($date-time)
adultsinteger($int32)
childreninteger($int32)
districtUIDstring($uuid)
nullable: true
districtNamestring
nullable: true
cityUIDstring($uuid)
nullable: true
cityNamestring
nullable: true
countryCodestring
nullable: true
countryNamestring
nullable: true
hasAlcoholboolean
hasFreeWifiboolean
hasMetroboolean
hasPoolboolean
hasMallboolean
cancellationPolicyDescriptionstring
nullable: true
cancellationPolicyCancellationPolicyExchange{
cancellationPolicyCodestring
nullable: true
noShowChargeValuenumber($double)
nullable: true
noShowChargeValueTypestring
nullable: true
earlyDepartureChargeValuenumber($double)
nullable: true
earlyDepartureChargeValueTypestring
nullable: true
conditions[
nullable: trueCancellationPolicyConditionExchange{
timeunitsinteger($int32)
timeunitTypestring
nullable: true
timeOffsetTypeNamestring
nullable: true
chargeValuenumber($double)
nullable: true
chargeValueTypestring
nullable: true

}]

}

}

flightPackageFlight{
idstring
nullable: true
departureDatestring($date-time)
returnDatestring($date-time)
nullable: true
departureTicketsLeftinteger($int32)
returnTicketsLeftinteger($int32)
departureAvailabilityTypeFlightAvailabilityTypestringEnum:
[ OnRequest, FreeSale, FewPlaces, StopSale ]
returnAvailabilityTypeFlightAvailabilityTypestringEnum:
[ OnRequest, FreeSale, FewPlaces, StopSale ]
isTwoWayboolean
departureSegments[
nullable: trueFlightSegment{
airlineCodestring
nullable: true
airlineNamestring
nullable: true
flightCodestring
nullable: true
classstring
nullable: true
lugageWeightnumber($double)
handLugageWeightnumber($double)
departureFlightDatestring($date-time)
departureCountryNamestring
nullable: true
departureCityNamestring
nullable: true
departureAirportCodestring
nullable: true
departureAirportNamestring
nullable: true
departureTerminalCodestring
nullable: true
arrivalFlightDatestring($date-time)
arrivalCountryNamestring
nullable: true
arrivalCityNamestring
nullable: true
arrivalAirportCodestring
nullable: true
arrivalAirportNamestring
nullable: true
arrivalTerminalCodestring
nullable: true
flightDurationstring
nullable: true
baggages[
nullable: trueBaggage{
baggageCodestring
nullable: true
descriptionstring
nullable: true
pricenumber($double)
currencystring
nullable: true
includedboolean

}]

}]

returnSegments[
nullable: trueFlightSegment{
airlineCodestring
nullable: true
airlineNamestring
nullable: true
flightCodestring
nullable: true
classstring
nullable: true
lugageWeightnumber($double)
handLugageWeightnumber($double)
departureFlightDatestring($date-time)
departureCountryNamestring
nullable: true
departureCityNamestring
nullable: true
departureAirportCodestring
nullable: true
departureAirportNamestring
nullable: true
departureTerminalCodestring
nullable: true
arrivalFlightDatestring($date-time)
arrivalCountryNamestring
nullable: true
arrivalCityNamestring
nullable: true
arrivalAirportCodestring
nullable: true
arrivalAirportNamestring
nullable: true
arrivalTerminalCodestring
nullable: true
flightDurationstring
nullable: true
baggages[
nullable: trueBaggage{
baggageCodestring
nullable: true
descriptionstring
nullable: true
pricenumber($double)
currencystring
nullable: true
includedboolean

}]

}]

}

extraServices[
nullable: trueHotelExtraServiceBase{
extraServiceCodestring
nullable: true
extraServiceTypeCodestring
nullable: true
isMandatoryinteger($int32)
extraServiceNamestring
nullable: true
minimalServiceAmountnumber($double)
includedPriceCodestring
nullable: true
prices[
nullable: trueHotelExtraServicePriceBase{
extraServicePriceCodestring
nullable: true
displayNamestring
nullable: true
restrictionInfostring
nullable: true
additionalInfostring
nullable: true
pricenumber($double)
extraPricenumber($double)
currencystring
nullable: true

}]

}]

insurancePriceInsurancePrice{
namestring
nullable: true
pricenumber($double)
priceSurcargenumber($double)
actualStartDatestring($date-time)
actualEndDatestring($date-time)
optionalboolean
includedInPackagePriceboolean

}

}]

pagingIdstring
nullable: true
pageNumberinteger($int64)
pageCountinteger($int64)

}

Definitions

Paging and Caching

During the first request, Paging id must be  empty like this  ( "pagingId": "",)  pagenumber is the number of the page, pagerowcount means number of the given result in one page. So in the first request we can search 

first request

 {
 "pagingId": "",
 "pageNumber": 1,
 "pageRowCount":10
 }

Request with caching

 {
 "pagingId": "80",
 "pageNumber": 1,
 "pageRowCount":10
 }

search parameter options

in the request body it's available to filter search results with parameters. parameter examples:

 { "totalPriceFrom": 500,
   "totalPriceTo": 10000,
   "hotelTypes": [
       "CityHotel",
       "BeachHotel",
       "SecondLineBeach"
    ],
   "hotelClasses": [
       "1",
       "2",
       "3",
       "4",
       "5",
       "6"
    ],
   "hotelServices": [
       "HasAlcohol",
       "HasFreeWifi",
       "HasMetro",
       "HasPool",
       "HasMall"
    ],
   "mealPlans": [
       "RO",
       "BB",
       "HB",
       "FB",
       "AL"
    ]
}