Changes for page 1. SearchTourPackages

Last modified by Giorgi Mdivnishvili on 2025/02/12 15:25

From version 12.1
edited by Giorgi Mdivnishvili
on 2023/12/15 16:13
Change comment: There is no comment for this version
To version 24.1
edited by Giorgi Mdivnishvili
on 2024/04/10 10:56
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -SearchTourPackages
1 +1. SearchTourPackages
Content
... ... @@ -6,13 +6,15 @@
6 6  
7 7  = Method Description =
8 8  
9 -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.
9 +Tour package mean, tour with hotel and flight together. Using this method gives data about full package availability with flight and hotel options.
10 10  
11 +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.
11 11  
13 +
12 12  == Endpoint URL - [POST] ==
13 13  
14 14  {{info}}
15 -[[https:~~/~~/online-api.kazunion.com/api/TourPackages/SearchTourPackages>>https://online-api.kazunion.com/api/TourPackages/SearchTourPackages]]
17 +[[https:~~/~~/integration.kazunion.com/api/TourPackages/SearchTourPackages>>https://integration.kazunion.com/api/TourPackages/SearchTourPackages]]
16 16  {{/info}}
17 17  
18 18  == Request Parameters ==
... ... @@ -40,13 +40,13 @@
40 40   "tag": "string"
41 41   }
42 42   ],
43 - "checkInDate": "2023-12-14T13:43:54.766Z",
44 - "checkInDateTo": "2023-12-14T13:43:54.766Z",
45 - "checkOutDate": "2023-12-14T13:43:54.766Z",
45 + "checkInDate": "2023-12-14",
46 + "checkInDateTo": "2023-12-14",
47 + "checkOutDate": "2023-12-14",
46 46   "stayDays": 0,
47 47   "stayDaysTo": 0,
48 - "departureDate": "2023-12-14T13:43:54.766Z",
49 - "returnDate": "2023-12-14T13:43:54.766Z",
50 + "departureDate": "2023-12-14",
51 + "returnDate": "2023-12-14",
50 50   "airlineCode": "string",
51 51   "ticketType": "string",
52 52   "directFlightsOnly": true,
... ... @@ -85,6 +85,65 @@
85 85  {{/code}}
86 86  
87 87  
90 +== Request example ==
91 +
92 +{{code language="Json"}}
93 +{
94 + "departureCountryCode": "KZ",
95 + "departureCityUID": "f0ba6324-f337-405c-8cc7-23d62cf664e8",
96 + "arrivalCountryCode": "AE",
97 + "arrivalLocations": [
98 + {
99 + "type": "city",
100 + "label": "Dubai",
101 + "value": "f5185fa3-3f56-44ed-bf6b-80386a33caa2",
102 + "tag": "Dubai"
103 + }
104 + ],
105 + "checkInDate": "2024-02-05T20:00:00.000Z",
106 + "checkInDateTo": "2024-02-10T20:00:00.000Z",
107 +
108 + "stayDays": 3,
109 + "stayDaysTo": 6,
110 +
111 + "airlineCode": "",
112 + "ticketType": "",
113 + "directFlightsOnly": true,
114 + "longConnectTime": true,
115 + "adults": 1,
116 + "children": 1,
117 + "childrenAges": [
118 + 2
119 + ],
120 + "extendedSearch": false,
121 + "totalPriceFrom": 100,
122 + "totalPriceTo": 15000,
123 + "recommended": true,
124 + "popular": true,
125 + "freeSale": true,
126 + "groupByHotel": true,
127 + "hotelCodes": [
128 +
129 + ],
130 + "mealPlans": [
131 +
132 + ],
133 + "hotelClasses": [
134 +
135 + ],
136 + "hotelTypes": [
137 +
138 + ],
139 + "hotelServices": [
140 +
141 + ],
142 + "pagingId": "",
143 + "pageNumber": 10,
144 + "pageRowCount": 10
145 +}
146 +{{/code}}
147 +
148 +
88 88  == Response Body ==
89 89  
90 90  {{code language="json"}}
... ... @@ -264,10 +264,156 @@
264 264  {{/code}}
265 265  
266 266  
267 -=== example ===
328 +== Response example ==
268 268  
269 269  {{code language="Json"}}
270 -X
331 +{
332 + "packages": [
333 + {
334 + "cacheKey": "c705ab31e00e4f9a81c2fd46b2cdbb47f6fd9a6e16984236beb979b31aefafa4:{79}:i:10",
335 + "id": "tour:b01c168e-2ea7-4ea6-b6e0-55abb8cab0a0:da894a1e-88c0-4877-b216-0eeeabe186f3:4298d06f-4344-4a39-ad98-071b7760cf30",
336 + "priceCurrency": "USD",
337 + "totalPrice": 1033.53,
338 + "agentCommissionPercent": 0.0,
339 + "agentCommissionAmount": 0.0,
340 + "includedExtrasAmount": 0,
341 + "priceDifference": 0,
342 + "hotel": {
343 + "hotelPriceId": "da894a1e-88c0-4877-b216-0eeeabe186f3",
344 + "providerId": 13,
345 + "hotelName": "Mercure Dubai Barsha Heights Suites Apartments",
346 + "hotelCode": "5f125310-7025-4807-a4c6-49cd284c9c14",
347 + "nigths": 3,
348 + "mealPlan": "BB",
349 + "hotelClass": "4",
350 + "availabilityType": "FreeSale",
351 + "availableRoomsCount": 0,
352 + "fewRooms": true,
353 + "roomCategoryCode": "bc5f2224-bd4c-49b2-ab57-01eb7fa80d41",
354 + "roomCategoryName": "1 B/R Suite City View",
355 + "placementTypeName": "DBL",
356 + "checkInDate": "2024-02-09T20:00:00.000Z",
357 + "checkOutDate": "2024-02-12T20:00:00.000Z",
358 + "adults": 1,
359 + "children": 1,
360 + "districtUID": "4c65f6ed-902b-4fd8-9419-af7884c22c5e",
361 + "districtName": "Al Barsha",
362 + "cityUID": "f5185fa3-3f56-44ed-bf6b-80386a33caa2",
363 + "cityName": "Dubai",
364 + "countryCode": "AE",
365 + "countryName": "United Arab Emirates",
366 + "hasAlcohol": false,
367 + "hasFreeWifi": true,
368 + "hasMetro": true,
369 + "hasPool": true,
370 + "hasMall": false,
371 + "cancellationPolicyDescription": "Cancellation Policy: 5 Day Before Arrival: 100.00 %, Early Departure: 100.00 %, NoShow: 100.00 %",
372 + "cancellationPolicy": {
373 + "noShowChargeValue": 100.0,
374 + "noShowChargeValueType": "%",
375 + "earlyDepartureChargeValue": 100.0,
376 + "earlyDepartureChargeValueType": "%",
377 + "conditions": [
378 + {
379 + "timeunits": 5,
380 + "timeunitType": "Day",
381 + "timeOffsetTypeName": "Before Arrival",
382 + "chargeValue": 100.0,
383 + "chargeValueType": "%"
384 + }
385 + ]
386 + }
387 + },
388 + "flight": {
389 + "id": "4298d06f-4344-4a39-ad98-071b7760cf30",
390 + "departureDate": "2024-02-09T20:00:00.000Z",
391 + "returnDate": "2024-02-12T20:00:00.000Z",
392 + "departureTicketsLeft": 7,
393 + "returnTicketsLeft": 7,
394 + "departureAvailabilityType": "FewPlaces",
395 + "returnAvailabilityType": "FewPlaces",
396 + "isTwoWay": true,
397 + "sameBaggageForAll": false,
398 + "totalBaggage": false,
399 + "departureSegments": [
400 + {
401 + "airlineCode": "KC",
402 + "airlineName": "Air Astana-",
403 + "flightCode": "KC897",
404 + "class": "econom",
405 + "lugageWeight": 20,
406 + "handLugageWeight": 6,
407 + "departureFlightDate": "2024-02-09T20:00:00.000Z",
408 + "departureCountryName": "Kazakhstan",
409 + "departureCityName": "Almaty",
410 + "departureAirportCode": "ALA",
411 + "departureAirportName": "Almaty Intl Airport",
412 + "departureTerminalCode": "ALA",
413 + "arrivalFlightDate": "2024-02-09T20:00:00.000Z",
414 + "arrivalCountryName": "United Arab Emirates",
415 + "arrivalCityName": "Dubai",
416 + "arrivalAirportCode": "DXB",
417 + "arrivalAirportName": "Dubai Intl Airport",
418 + "arrivalTerminalCode": "DXB1",
419 + "flightDuration": "0h 50m"
420 + }
421 + ],
422 + "returnSegments": [
423 + {
424 + "airlineCode": "KC",
425 + "airlineName": "Air Astana-",
426 + "flightCode": "KC900",
427 + "class": "econom",
428 + "lugageWeight": 20,
429 + "handLugageWeight": 6,
430 + "departureFlightDate": "2024-02-12T20:00:00.000Z",
431 + "departureCountryName": "United Arab Emirates",
432 + "departureCityName": "Dubai",
433 + "departureAirportCode": "DXB",
434 + "departureAirportName": "Dubai Intl Airport",
435 + "departureTerminalCode": "DXB1",
436 + "arrivalFlightDate": "2024-02-12T20:00:00.000Z",
437 + "arrivalCountryName": "Kazakhstan",
438 + "arrivalCityName": "Almaty",
439 + "arrivalAirportCode": "ALA",
440 + "arrivalAirportName": "Almaty Intl Airport",
441 + "arrivalTerminalCode": "ALA",
442 + "flightDuration": "8h 15m"
443 + }
444 + ],
445 + "passengers": [
446 + {
447 + "id": "42768722011000004-A1",
448 + "isAdult": true,
449 + "forwardBaggages": [],
450 + "backwardBaggages": []
451 + },
452 + {
453 + "id": "42768722011000004-C1",
454 + "isAdult": false,
455 + "forwardBaggages": [],
456 + "backwardBaggages": []
457 + }
458 + ]
459 + },
460 + "extraServices": [],
461 + "insurancePrice": {
462 + "name": "Medical INS (N10000)",
463 + "price": 17.92,
464 + "priceSurcarge": 0.0,
465 + "actualStartDate": "2024-02-09T20:00:00.000Z",
466 + "actualEndDate": "2024-02-12T20:00:00.000Z",
467 + "optional": false,
468 + "includedInPackagePrice": true
469 + }
470 + }
471 + ],
472 + "pagingId": "79",
473 + "pageNumber": 10,
474 + "pageCount": 2452,
475 + "totalCount": 2452,
476 + "error": false
477 +}
271 271  {{/code}}
272 272  
273 273  
... ... @@ -550,4 +550,198 @@
550 550  }
551 551  {{/success}}
552 552  
553 -
760 +
761 +== Definitions ==
762 +
763 +Request Parameters
764 +
765 +(% class="table-bordered" %)
766 +|=Field|=Type|=Description
767 +|departureCountryCode|string|The ISO 3166-1 alpha-2 country code for the departure country. For example, "KZ" for Kazakhstan.
768 +|departureCityUID|string|The unique identifier for the departure city.
769 +|arrivalCountryCode|string|The ISO 3166-1 alpha-2 country code for the arrival country. For example, "AE" for United Arab Emirates.
770 +|arrivalLocations|array|An array of objects, each representing an arrival location. Each object contains: type (string) - The type of the location. This can be "city". label (string) - The name of the location. value (string) - The unique identifier for the location. tag (string) - A tag for the location.
771 +|checkInDate|string|The check-in date in ISO 8601 format.
772 +|checkInDateTo|string|The latest possible check-in date in ISO 8601 format.
773 +|stayDays|integer|The minimum number of days to stay.
774 +|stayDaysTo|integer|The maximum number of days to stay.
775 +|airlineCode|string|The code of the airline. This field can be empty.
776 +|ticketType|string|The type of the ticket. This field can be empty.
777 +|directFlightsOnly|boolean|Indicates whether to search for direct flights only.
778 +|longConnectTime|boolean|Indicates whether to include flights with long connection times.
779 +|adults|integer|The number of adults.
780 +|children|integer|The number of children.
781 +|childrenAges|array|An array of integers, each representing the age of a child.
782 +|extendedSearch|boolean|Indicates whether to perform an extended search.
783 +|totalPriceFrom|float|The minimum total price.
784 +|totalPriceTo|float|The maximum total price.
785 +|recommended|boolean|Indicates whether to include recommended packages.
786 +|popular|boolean|Indicates whether to include popular packages.
787 +|freeSale|boolean|Indicates whether to include free sale packages.
788 +|groupByHotel|boolean|Indicates whether to group the results by hotel.
789 +|hotelCodes|array|An array of strings, each representing a hotel code. This field can be empty.
790 +|mealPlans|array|An array of meal plans. This field can be empty.
791 +|hotelClasses|array|An array of hotel classes. This field can be empty.
792 +|hotelTypes|array|An array of hotel types. This field can be empty.
793 +|hotelServices|array|An array of hotel services. This field can be empty.
794 +|pagingId|string|The paging ID for paginated results. This field can be empty.
795 +|pageNumber|integer|The page number for paginated results.
796 +|pageRowCount|integer|The number of rows per page for paginated results.
797 +
798 +
799 +(% class="wikigeneratedid" %)
800 +Response Parameters
801 +
802 +
803 +
804 +
805 +(% class="table-bordered" %)
806 +|=Field|=Type|=Description
807 +|packages|array|An array of packages available. Each package contains:
808 +|cacheKey|string|A unique identifier for the cache.
809 +|id|string|A unique identifier for the package.
810 +|priceCurrency|string|The currency in which the price is displayed.
811 +|totalPrice|float|The total price of the package.
812 +|agentCommissionPercent|float|The commission percentage for the agent.
813 +|agentCommissionAmount|float|The commission amount for the agent.
814 +|includedExtrasAmount|integer|The amount of extras included in the package.
815 +|priceDifference|integer|The difference in price from the original price.
816 +|hotel|object|An object containing details about the hotel.
817 +|hotelPriceId|string|A unique identifier for the hotel price.
818 +|providerId|integer|A unique identifier for the provider.
819 +|hotelName|string|The name of the hotel.
820 +|hotelCode|string|A unique code for the hotel.
821 +|nigths|integer|The number of nights for the stay.
822 +|mealPlan|string|The meal plan for the stay.
823 +|hotelClass|string|The class or rating of the hotel.
824 +|availabilityType|string|The availability type of the hotel.
825 +|availableRoomsCount|integer|The number of available rooms in the hotel.
826 +|fewRooms|boolean|Indicates whether there are few rooms left.
827 +|roomCategoryCode|string|A unique code for the room category.
828 +|roomCategoryName|string|The name of the room category.
829 +|placementTypeName|string|The name of the placement type.
830 +|checkInDate|string|The check-in date in ISO 8601 format.
831 +|checkOutDate|string|The check-out date in ISO 8601 format.
832 +|adults|integer|The number of adults for the stay.
833 +|children|integer|The number of children for the stay.
834 +|districtUID|string|A unique identifier for the district.
835 +|districtName|string|The name of the district.
836 +|cityUID|string|A unique identifier for the city.
837 +|cityName|string|The name of the city.
838 +|countryCode|string|The ISO 3166-1 alpha-2 country code.
839 +|countryName|string|The name of the country.
840 +|hasAlcohol|boolean|Indicates whether the hotel serves alcohol.
841 +|hasFreeWifi|boolean|Indicates whether the hotel offers free Wi-Fi.
842 +|hasMetro|boolean|Indicates whether the hotel is near a metro station.
843 +|hasPool|boolean|Indicates whether the hotel has a pool.
844 +|hasMall|boolean|Indicates whether the hotel is near a shopping mall.
845 +|cancellationPolicyDescription|string|The description of the cancellation policy.
846 +|cancellationPolicy|object|An object containing details about the cancellation policy.
847 +|flight|object|An object containing details about the flight.
848 +|id|string|A unique identifier for the flight.
849 +|departureDate|string|The departure date in ISO 8601 format.
850 +|returnDate|string|The return date in ISO 8601 format.
851 +|departureTicketsLeft|integer|The number of departure tickets left.
852 +|returnTicketsLeft|integer|The number of return tickets left.
853 +|departureAvailabilityType|string|The availability type of the departure flight.
854 +|returnAvailabilityType|string|The availability type of the return flight.
855 +|isTwoWay|boolean|Indicates whether the flight is two-way.
856 +|sameBaggageForAll|boolean|Indicates whether the same baggage is applicable for all passengers.
857 +|totalBaggage|boolean|Indicates whether total baggage is included.
858 +|departureSegments|array|An array of objects, each representing a departure segment.
859 +|returnSegments|array|An array of objects, each representing a return segment.
860 +|passengers|array|An array of objects, each representing a passenger.
861 +|extraServices|array|An array of extra services included in the package.
862 +|insurancePrice|object|An object containing details about the insurance price.
863 +|pagingId|string|The paging ID for paginated results.
864 +|pageNumber|integer|The page number for paginated results.
865 +|pageCount|integer|The total number of pages.
866 +|totalCount|integer|The total count of packages.
867 +|error|boolean|Indicates whether there was an error.
868 +
869 +=== Paging and Caching ===
870 +
871 +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:
872 +
873 +
874 +==== first request ====
875 +
876 +{{code language="Json"}}
877 + {
878 + "pagingId": "",
879 + "pageNumber": 1,
880 + "pageRowCount":10
881 + }
882 +{{/code}}
883 +
884 +
885 +==== Request with caching ====
886 +
887 +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
888 +
889 +{{code language="Json"}}
890 + {
891 + "pagingId": "80",
892 + "pageNumber": 1,
893 + "pageRowCount":10
894 + }
895 +{{/code}}
896 +
897 +
898 +=== search parameter options ===
899 +
900 +in the request body it's available to filter search results with parameters. parameter examples:
901 +
902 +{{code language="Json"}}
903 + { "totalPriceFrom": 500,
904 + "totalPriceTo": 10000,
905 + "hotelTypes": [
906 + "CityHotel",
907 + "BeachHotel",
908 + "SecondLineBeach"
909 + ],
910 + "hotelClasses": [
911 + "1",
912 + "2",
913 + "3",
914 + "4",
915 + "5",
916 + "6"
917 + ],
918 + "hotelServices": [
919 + "HasAlcohol",
920 + "HasFreeWifi",
921 + "HasMetro",
922 + "HasPool",
923 + "HasMall"
924 + ],
925 + "mealPlans": [
926 + "RO",
927 + "BB",
928 + "HB",
929 + "FB",
930 + "AL"
931 + ]
932 +}
933 +{{/code}}
934 +
935 +
936 +
937 +== Important ==
938 +
939 +{{error}}
940 +It's Important to in every other request header, put Auth token
941 +
942 +**Key **- Authorization
943 +
944 +**Value **- Bearer Token what is given in this response.
945 +
946 +
947 +**also note in headers that:**
948 +
949 +Content-Type - application/json
950 +
951 +**Key - **X-nugios-timezone
952 +
953 +**Value **- 240
954 +{{/error}}