Changes for page 1. SearchTourPackages

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

From version 23.1
edited by Giorgi Mdivnishvili
on 2024/04/10 10:50
Change comment: There is no comment for this version
To version 13.1
edited by Giorgi Mdivnishvili
on 2023/12/19 18:05
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -6,15 +6,13 @@
6 6  
7 7  = Method Description =
8 8  
9 -Tour package mean, tour with hotel and flight together. Using this method gives data about full package availability with flight and hotel options.
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.
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.
12 12  
13 -
14 14  == Endpoint URL - [POST] ==
15 15  
16 16  {{info}}
17 -[[https:~~/~~/integration.kazunion.com/api/TourPackages/SearchTourPackages>>https://integration.kazunion.com/api/TourPackages/SearchTourPackages]]
15 +[[https:~~/~~/online-api.kazunion.com/api/TourPackages/SearchTourPackages>>https://online-api.kazunion.com/api/TourPackages/SearchTourPackages]]
18 18  {{/info}}
19 19  
20 20  == Request Parameters ==
... ... @@ -42,13 +42,13 @@
42 42   "tag": "string"
43 43   }
44 44   ],
45 - "checkInDate": "2023-12-14",
46 - "checkInDateTo": "2023-12-14",
47 - "checkOutDate": "2023-12-14",
43 + "checkInDate": "2023-12-14T13:43:54.766Z",
44 + "checkInDateTo": "2023-12-14T13:43:54.766Z",
45 + "checkOutDate": "2023-12-14T13:43:54.766Z",
48 48   "stayDays": 0,
49 49   "stayDaysTo": 0,
50 - "departureDate": "2023-12-14",
51 - "returnDate": "2023-12-14",
48 + "departureDate": "2023-12-14T13:43:54.766Z",
49 + "returnDate": "2023-12-14T13:43:54.766Z",
52 52   "airlineCode": "string",
53 53   "ticketType": "string",
54 54   "directFlightsOnly": true,
... ... @@ -87,65 +87,6 @@
87 87  {{/code}}
88 88  
89 89  
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 -
149 149  == Response Body ==
150 150  
151 151  {{code language="json"}}
... ... @@ -325,156 +325,10 @@
325 325  {{/code}}
326 326  
327 327  
328 -== Response example ==
267 +=== example ===
329 329  
330 330  {{code language="Json"}}
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 -}
270 +X
478 478  {{/code}}
479 479  
480 480  
... ... @@ -757,132 +757,4 @@
757 757  }
758 758  {{/success}}
759 759  
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 -Request Parameters
801 -
802 -
803 -=== Paging and Caching ===
804 -
805 -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:
806 -
807 -
808 -==== first request ====
809 -
810 -{{code language="Json"}}
811 - {
812 - "pagingId": "",
813 - "pageNumber": 1,
814 - "pageRowCount":10
815 - }
816 -{{/code}}
817 -
818 -
819 -==== Request with caching ====
820 -
821 -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
822 -
823 -{{code language="Json"}}
824 - {
825 - "pagingId": "80",
826 - "pageNumber": 1,
827 - "pageRowCount":10
828 - }
829 -{{/code}}
830 -
831 -
832 -=== search parameter options ===
833 -
834 -in the request body it's available to filter search results with parameters. parameter examples:
835 -
836 -{{code language="Json"}}
837 - { "totalPriceFrom": 500,
838 - "totalPriceTo": 10000,
839 - "hotelTypes": [
840 - "CityHotel",
841 - "BeachHotel",
842 - "SecondLineBeach"
843 - ],
844 - "hotelClasses": [
845 - "1",
846 - "2",
847 - "3",
848 - "4",
849 - "5",
850 - "6"
851 - ],
852 - "hotelServices": [
853 - "HasAlcohol",
854 - "HasFreeWifi",
855 - "HasMetro",
856 - "HasPool",
857 - "HasMall"
858 - ],
859 - "mealPlans": [
860 - "RO",
861 - "BB",
862 - "HB",
863 - "FB",
864 - "AL"
865 - ]
866 -}
867 -{{/code}}
868 -
869 -
870 -
871 -== Important ==
872 -
873 -{{error}}
874 -It's Important to in every other request header, put Auth token
875 -
876 -**Key **- Authorization
877 -
878 -**Value **- Bearer Token what is given in this response.
879 -
880 -
881 -**also note in headers that:**
882 -
883 -Content-Type - application/json
884 -
885 -**Key - **X-nugios-timezone
886 -
887 -**Value **- 240
888 -{{/error}}
553 +