1. SearchTourPackages
Method Description
Tour package mean, tour with hotel and flight together. Using this method gives data about full package availability with flight and hotel options.
It's possible to receive data as current dates, also in date ranges using parameter "stayDays": 0, "stayDaysTo": 0. the maximum difference between the days can be 7. Below you can see examples.
Endpoint URL - [POST]
Request Parameters
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-14",
"checkInDateTo": "2023-12-14",
"checkOutDate": "2023-12-14",
"stayDays": 0,
"stayDaysTo": 0,
"departureDate": "2023-12-14",
"returnDate": "2023-12-14",
"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
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 like this:
first request
"pagingId": "",
"pageNumber": 1,
"pageRowCount":10
}
Request with caching
as we receive response, in the end we can see pagingId- number, chich we can use for caching, and then just switch pagenumbers. for cleaning cache, it's important to make new request without pagingID
"pagingId": "80",
"pageNumber": 1,
"pageRowCount":10
}
search parameter options
in the request body it's available to filter search results with parameters. parameter examples:
"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"
]
}