SearchTourPackages - Basic version
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 example
"departureCountryCode": "KZ",
"departureCityUID": "f0ba6324-f337-405c-8cc7-23d62cf664e8",
"arrivalCountryCode": "AE",
"adults": 2,
"children": 0,
"departureDate": "2024-05-25T00:00:00",
"returnDate": "2024-06-01T00:00:00",
"departureAndReturnDaysCount": 7,
"checkInDate": "2024-05-25T00:00:00",
"checkOutDate": "2024-06-01T00:00:00",
"checkInAndCheckOutDaysCount": 7,
"directFlightsOnly": true,
"pageRowCount": 25,
"searchCurrency": "USD"
}
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": [
{
"id": "tour:556ce3c2-4062-4181-9970-f41e1aeb3b8b:ce81c22f-7d91-4237-9a2a-43c4c4bcb62f:1d8793e6-346e-4b5c-933f-3d8637684d7e",
"priceCurrency": "USD",
"totalPrice": 909.78,
"agentCommissionPercent": 0.0,
"agentCommissionAmount": 0.0,
"includedExtrasAmount": 0,
"priceDifference": 0,
"hotel": {
"hotelPriceId": "ce81c22f-7d91-4237-9a2a-43c4c4bcb62f",
"hotelName": "CityMax Sharjah",
"hotelCode": "CMAXBSHJNUG",
"nigths": 7,
"mealPlan": "BB",
"hotelClass": "3",
"hotelColor": "#228B22",
"availabilityType": "FreeSale",
"availableRoomsCount": 0,
"fewRooms": true,
"roomCategoryCode": "DBL",
"roomCategoryName": "Standard Room",
"placementTypeName": "2 Adults",
"placementDescription": "MARPROMDMC02/RUS",
"checkInDate": "2024-05-25T00:00:00.000",
"checkOutDate": "2024-06-01T00:00:00.000",
"adults": 2,
"children": 0,
"districtUID": "7ac1bbc8-59ea-4977-b272-ed8553f94f9b",
"districtName": "Sharjah",
"cityUID": "f78ac3bc-f040-46d0-8319-2c52083080a6",
"cityName": "Sharjah",
"countryCode": "AE",
"countryName": "United Arab Emirates",
"hasAlcohol": false,
"hasFreeWifi": true,
"hasMetro": false,
"hasPool": false,
"hasMall": true,
"infantMaxAge": 4.99,
"childMinAge": 5.0,
"childMaxAge": 11.99,
"teenMinAge": 0.0,
"teenMaxAge": 0.0,
"adultMinAge": 12.0,
"cancellationPolicyDescription": "Cancellation Policy: 2 Day Before Arrival: 1.00 Night, Early Departure: 1.00 Night, NoShow: 1.00 Night",
"cancellationPolicy": {
"noShowChargeValue": 1.0,
"noShowChargeValueType": "Night",
"earlyDepartureChargeValue": 1.0,
"earlyDepartureChargeValueType": "Night",
"conditions": [
{
"timeunits": 2,
"timeunitType": "Day",
"timeOffsetTypeName": "Before Arrival",
"chargeValue": 1.0,
"chargeValueType": "Night"
}
]
}
},
"flight": {
"id": "1d8793e6-346e-4b5c-933f-3d8637684d7e",
"departureDate": "2024-05-25T00:00:00.000",
"returnDate": "2024-06-01T00:00:00.000",
"departureTicketsLeft": 48,
"returnTicketsLeft": 33,
"departureAvailabilityType": "FreeSale",
"returnAvailabilityType": "FreeSale",
"isTwoWay": true,
"sameBaggageForAll": false,
"totalBaggage": false,
"isBlock": true,
"class": "Economy",
"departureSegments": [
{
"airlineCode": "FZ",
"airlineName": "Fly Dubai",
"flightCode": "FZ1722",
"class": "Economy",
"lugageWeight": 20,
"handLugageWeight": 6,
"departureFlightDate": "2024-05-25T03:35:00.000",
"departureCountryName": "Kazakhstan",
"departureCityName": "Almaty",
"departureAirportCode": "ALA",
"departureAirportName": "Almaty Intl Airport",
"departureTerminalCode": "ALA",
"arrivalFlightDate": "2024-05-25T07:10:00.000",
"arrivalCountryName": "United Arab Emirates",
"arrivalCityName": "Dubai",
"arrivalAirportCode": "DXB",
"arrivalAirportName": "Dubai Intl Airport",
"arrivalTerminalCode": "DXB3",
"flightDuration": "5h 35m"
}
],
"returnSegments": [
{
"airlineCode": "FZ",
"airlineName": "Fly Dubai",
"flightCode": "FZ1721",
"class": "Economy",
"lugageWeight": 20,
"handLugageWeight": 6,
"departureFlightDate": "2024-06-01T21:25:00.000",
"departureCountryName": "United Arab Emirates",
"departureCityName": "Dubai",
"departureAirportCode": "DXB",
"departureAirportName": "Dubai Intl Airport",
"departureTerminalCode": "DXB3",
"arrivalFlightDate": "2024-06-02T02:35:00.000",
"arrivalCountryName": "Kazakhstan",
"arrivalCityName": "Almaty",
"arrivalAirportCode": "ALA",
"arrivalAirportName": "Almaty Intl Airport",
"arrivalTerminalCode": "ALA",
"flightDuration": "3h 10m"
}
],
"passengers": [
{
"id": "1d8793e6-346e-4b5c-933f-3d8637684d7e-A1",
"isAdult": true,
"selectedForwardBaggageCode": "INCLUDED",
"selectedBackwardBaggageCode": "INCLUDED",
"forwardBaggages": [
{
"baggageCode": "INCLUDED",
"description": "20 Kg Included",
"price": 0.0,
"currency": "USD",
"included": true
}
],
"backwardBaggages": [
{
"baggageCode": "INCLUDED",
"description": "20 Kg Included",
"price": 0.0,
"currency": "USD",
"included": true
}
]
},
{
"id": "1d8793e6-346e-4b5c-933f-3d8637684d7e-A2",
"isAdult": true,
"selectedForwardBaggageCode": "INCLUDED",
"selectedBackwardBaggageCode": "INCLUDED",
"forwardBaggages": [
{
"baggageCode": "INCLUDED",
"description": "20 Kg Included",
"price": 0.0,
"currency": "USD",
"included": true
}
],
"backwardBaggages": [
{
"baggageCode": "INCLUDED",
"description": "20 Kg Included",
"price": 0.0,
"currency": "USD",
"included": true
}
]
}
]
},
"extraServices": [],
"insurancePrice": {
"name": "Medical INS (N10000)",
"price": 35.84,
"actualStartDate": "2024-05-25T00:00:00.000",
"actualEndDate": "2024-06-01T00:00:00.000",
"optional": false,
"includedInPackagePrice": true
},
"cacheKey": "bd7e9a28fb744528a2deb043f05e0502602ea56f943a4dc9805321db85d51137:{9}:i:1",
"sortCheckInOut": "25.05.2024-01.06.2024",
"sortAirline": "fly dubai",
"sortHotelName": "citymax sharjah",
"sortDetails": "bb",
"sortPlacement": "standard room 2 adults"
}
],
"pagingId": "9",
"pageNumber": 1,
"pageCount": 883,
"totalCount": 883,
"error": false
}
Schema
Definitions
Request Parameters
Key | Type | Nullable | Description |
---|---|---|---|
departureCountryCode | String | No | The ISO 3166-1 alpha-2 code of the departure country. For example, "KZ" for Kazakhstan. |
departureCityUID | String (UUID) | No | The unique identifier of the departure city. This is a UUID, such as "f0ba6324-f337-405c-8cc7-23d62cf664e8". |
arrivalCountryCode | String | No | The ISO 3166-1 alpha-2 code of the arrival country. For example, "AE" for United Arab Emirates. |
adults | Integer | No | The number of adults for the trip. For example, 2 for two adults. |
children | Integer | No | The number of children for the trip. For example, 0 for no children. |
departureDate | String (date-time) | No | The departure date in ISO 8601 format. For example, "2024-05-25T00:00:00" for May 25, 2024. |
returnDate | String (date-time) | No | The return date in ISO 8601 format. For example, "2024-06-01T00:00:00" for June 1, 2024. |
departureAndReturnDaysCount | Integer | No | The total number of days for the departure and return trip. For example, 7 for a week-long trip. |
checkInDate | String (date-time) | No | The check-in date at the hotel in ISO 8601 format. For example, "2024-05-25T00:00:00" for May 25, 2024. |
checkOutDate | String (date-time) | No | The check-out date from the hotel in ISO 8601 format. For example, "2024-06-01T00:00:00" for June 1, 2024. |
checkInAndCheckOutDaysCount | Integer | No | The total number of days for the hotel stay. For example, 7 for a week-long stay. |
directFlightsOnly | Boolean | No | Whether to search for direct flights only. For example, true to only search for direct flights. |
pageRowCount | Integer | No | The number of results to return per page. For example, 1 to return 1 result per page. |
searchCurrency | String | No | The currency in which the search results should be displayed. For example, "USD" for United States Dollar. |
Response Parameters
Packages
Field | Type | Description |
---|---|---|
id | string | Unique identifier for the package |
priceCurrency | string | Currency for the price |
totalPrice | number | Total price of the package |
agentCommissionPercent | number | Commission percentage for the agent |
agentCommissionAmount | number | Commission amount for the agent |
includedExtrasAmount | integer | Amount of included extras |
priceDifference | integer | Price difference |
hotel | object | Details about the hotel |
flight | object | Details about the flight |
extraServices | array | Extra services included in the package |
insurancePrice | object | Details about the insurance price |
cacheKey | string | Cache key |
sortCheckInOut | string | Sorting parameter based on check-in and check-out dates |
sortAirline | string | Sorting parameter based on airline |
sortHotelName | string | Sorting parameter based on hotel name |
sortDetails | string | Sorting parameter based on details |
sortPlacement | string | Sorting parameter based on placement |
Hotel
Field | Type | Description |
---|---|---|
hotelPriceId | string | Unique identifier for the hotel price |
hotelName | string | Name of the hotel |
hotelCode | string | Code of the hotel |
nights | integer | Number of nights |
mealPlan | string | Meal plan |
hotelClass | string | Class of the hotel |
hotelColor | string | Color associated with the hotel |
availabilityType | string | Availability type of the hotel |
availableRoomsCount | integer | Number of available rooms |
fewRooms | boolean | Whether there are few rooms left |
roomCategoryCode | string | Code of the room category |
roomCategoryName | string | Name of the room category |
placementTypeName | string | Name of the placement type |
placementDescription | string | Description of the placement |
checkInDate | string | Check-in date |
checkOutDate | string | Check-out date |
adults | integer | Number of adults |
children | integer | Number of children |
districtUID | string | Unique identifier for the district |
districtName | string | Name of the district |
cityUID | string | Unique identifier for the city |
cityName | string | Name of the city |
countryCode | string | Country code |
countryName | string | Name of the country |
hasAlcohol | boolean | Whether the hotel has alcohol |
hasFreeWifi | boolean | Whether the hotel has free Wi-Fi |
hasMetro | boolean | Whether the hotel is near a metro |
hasPool | boolean | Whether the hotel has a pool |
hasMall | boolean | Whether the hotel is near a mall |
infantMaxAge | number | Maximum age for an infant |
childMinAge | number | Minimum age for a child |
childMaxAge | number | Maximum age for a child |
teenMinAge | number | Minimum age for a teen |
teenMaxAge | number | Maximum age for a teen |
adultMinAge | number | Minimum age for an adult |
cancellationPolicyDescription | string | Description of the cancellation policy |
cancellationPolicy | object | Details about the cancellation policy |
Flight
Field | Type | Description |
---|---|---|
id | string | Unique identifier for the flight |
departureDate | string | Departure date |
returnDate | string | Return date |
departureTicketsLeft | integer | Number of departure tickets left |
returnTicketsLeft | integer | Number of return tickets left |
departureAvailabilityType | string | Availability type for the departure |
returnAvailabilityType | string | Availability type for the return |
isTwoWay | boolean | Whether the flight is two-way |
sameBaggageForAll | boolean | Whether the same baggage is for all |
totalBaggage | boolean | Whether the total baggage is included |
isBlock | boolean | Whether the flight is blocked |
class | string | Class of the flight |
departureSegments | array | Details about the departure segments |
returnSegments | array | Details about the return segments |
passengers | array | Details about the passengers |
InsurancePrice
Field | Type | Description |
---|---|---|
name | string | Name of the insurance |
price | number | Price of the insurance |
actualStartDate | string | Start date of the insurance |
actualEndDate | string | End date of the insurance |
optional | boolean | Whether the insurance is optional |
includedInPackagePrice | boolean | Whether the insurance is included in the package price |
Paging
Field | Type | Description |
---|---|---|
pagingId | string | Unique identifier for the paging |
pageNumber | integer | Current page number |
pageCount | integer | Total number of pages |
totalCount | integer | Total count of items |
error | boolean | Whether there is an error |
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"
]
}