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
on 2023/12/15 16:13
Change comment:
There is no comment for this version
To version 26.1
edited by Giorgi Mdivnishvili
on 2024/04/10 12:01
on 2024/04/10 12:01
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
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 -T he initial method of the integrationprocessisauthorization.Youwill be providedwithatestuser username andpasswordtonerate the accesstokenthatyouwillneed topassinallthefollowingmethods.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-14 T13:43:54.766Z",44 - "checkInDateTo": "2023-12-14 T13:43:54.766Z",45 - "checkOutDate": "2023-12-14 T13: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-14 T13:43:54.766Z",49 - "returnDate": "2023-12-14 T13: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,195 @@ 550 550 } 551 551 {{/success}} 552 552 553 - 760 + 761 +== Definitions == 762 + 763 + 764 +**Request Parameters ** 765 + 766 +(% class="table-bordered" %) 767 +|=Field|=Type|=Description 768 +|departureCountryCode|string|The ISO 3166-1 alpha-2 country code for the departure country. For example, "KZ" for Kazakhstan. 769 +|departureCityUID|string|The unique identifier for the departure city. 770 +|arrivalCountryCode|string|The ISO 3166-1 alpha-2 country code for the arrival country. For example, "AE" for United Arab Emirates. 771 +|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. 772 +|checkInDate|string|The check-in date in ISO 8601 format. 773 +|checkInDateTo|string|The latest possible check-in date in ISO 8601 format. 774 +|stayDays|integer|The minimum number of days to stay. 775 +|stayDaysTo|integer|The maximum number of days to stay. 776 +|airlineCode|string|The code of the airline. This field can be empty. 777 +|ticketType|string|The type of the ticket. This field can be empty. 778 +|directFlightsOnly|boolean|Indicates whether to search for direct flights only. 779 +|longConnectTime|boolean|Indicates whether to include flights with long connection times. 780 +|adults|integer|The number of adults. 781 +|children|integer|The number of children. 782 +|childrenAges|array|An array of integers, each representing the age of a child. 783 +|extendedSearch|boolean|Indicates whether to perform an extended search. 784 +|totalPriceFrom|float|The minimum total price. 785 +|totalPriceTo|float|The maximum total price. 786 +|recommended|boolean|Indicates whether to include recommended packages. 787 +|popular|boolean|Indicates whether to include popular packages. 788 +|freeSale|boolean|Indicates whether to include free sale packages. 789 +|groupByHotel|boolean|Indicates whether to group the results by hotel. 790 +|hotelCodes|array|An array of strings, each representing a hotel code. This field can be empty. 791 +|mealPlans|array|An array of meal plans. This field can be empty. 792 +|hotelClasses|array|An array of hotel classes. This field can be empty. 793 +|hotelTypes|array|An array of hotel types. This field can be empty. 794 +|hotelServices|array|An array of hotel services. This field can be empty. 795 +|pagingId|string|The paging ID for paginated results. This field can be empty. 796 +|pageNumber|integer|The page number for paginated results. 797 +|pageRowCount|integer|The number of rows per page for paginated results. 798 + 799 +(% class="wikigeneratedid" %) 800 +**Response Parameters** 801 + 802 +(% class="table-bordered" %) 803 +|=Field|=Type|=Description 804 +|packages|array|An array of packages available. Each package contains: 805 +|cacheKey|string|A unique identifier for the cache. 806 +|id|string|A unique identifier for the package. 807 +|priceCurrency|string|The currency in which the price is displayed. 808 +|totalPrice|float|The total price of the package. 809 +|agentCommissionPercent|float|The commission percentage for the agent. 810 +|agentCommissionAmount|float|The commission amount for the agent. 811 +|includedExtrasAmount|integer|The amount of extras included in the package. 812 +|priceDifference|integer|The difference in price from the original price. 813 +|hotel|object|An object containing details about the hotel. 814 +|hotelPriceId|string|A unique identifier for the hotel price. 815 +|providerId|integer|A unique identifier for the provider. 816 +|hotelName|string|The name of the hotel. 817 +|hotelCode|string|A unique code for the hotel. 818 +|nigths|integer|The number of nights for the stay. 819 +|mealPlan|string|The meal plan for the stay. 820 +|hotelClass|string|The class or rating of the hotel. 821 +|availabilityType|string|The availability type of the hotel. 822 +|availableRoomsCount|integer|The number of available rooms in the hotel. 823 +|fewRooms|boolean|Indicates whether there are few rooms left. 824 +|roomCategoryCode|string|A unique code for the room category. 825 +|roomCategoryName|string|The name of the room category. 826 +|placementTypeName|string|The name of the placement type. 827 +|checkInDate|string|The check-in date in ISO 8601 format. 828 +|checkOutDate|string|The check-out date in ISO 8601 format. 829 +|adults|integer|The number of adults for the stay. 830 +|children|integer|The number of children for the stay. 831 +|districtUID|string|A unique identifier for the district. 832 +|districtName|string|The name of the district. 833 +|cityUID|string|A unique identifier for the city. 834 +|cityName|string|The name of the city. 835 +|countryCode|string|The ISO 3166-1 alpha-2 country code. 836 +|countryName|string|The name of the country. 837 +|hasAlcohol|boolean|Indicates whether the hotel serves alcohol. 838 +|hasFreeWifi|boolean|Indicates whether the hotel offers free Wi-Fi. 839 +|hasMetro|boolean|Indicates whether the hotel is near a metro station. 840 +|hasPool|boolean|Indicates whether the hotel has a pool. 841 +|hasMall|boolean|Indicates whether the hotel is near a shopping mall. 842 +|cancellationPolicyDescription|string|The description of the cancellation policy. 843 +|cancellationPolicy|object|An object containing details about the cancellation policy. 844 +|flight|object|An object containing details about the flight. 845 +|id|string|A unique identifier for the flight. 846 +|departureDate|string|The departure date in ISO 8601 format. 847 +|returnDate|string|The return date in ISO 8601 format. 848 +|departureTicketsLeft|integer|The number of departure tickets left. 849 +|returnTicketsLeft|integer|The number of return tickets left. 850 +|departureAvailabilityType|string|The availability type of the departure flight. 851 +|returnAvailabilityType|string|The availability type of the return flight. 852 +|isTwoWay|boolean|Indicates whether the flight is two-way. 853 +|sameBaggageForAll|boolean|Indicates whether the same baggage is applicable for all passengers. 854 +|totalBaggage|boolean|Indicates whether total baggage is included. 855 +|departureSegments|array|An array of objects, each representing a departure segment. 856 +|returnSegments|array|An array of objects, each representing a return segment. 857 +|passengers|array|An array of objects, each representing a passenger. 858 +|extraServices|array|An array of extra services included in the package. 859 +|insurancePrice|object|An object containing details about the insurance price. 860 +|pagingId|string|The paging ID for paginated results. 861 +|pageNumber|integer|The page number for paginated results. 862 +|pageCount|integer|The total number of pages. 863 +|totalCount|integer|The total count of packages. 864 +|error|boolean|Indicates whether there was an error. 865 + 866 +=== Paging and Caching === 867 + 868 +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: 869 + 870 + 871 +==== first request ==== 872 + 873 +{{code language="Json"}} 874 + { 875 + "pagingId": "", 876 + "pageNumber": 1, 877 + "pageRowCount":10 878 + } 879 +{{/code}} 880 + 881 + 882 +==== Request with caching ==== 883 + 884 +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 885 + 886 +{{code language="Json"}} 887 + { 888 + "pagingId": "80", 889 + "pageNumber": 1, 890 + "pageRowCount":10 891 + } 892 +{{/code}} 893 + 894 + 895 +=== search parameter options === 896 + 897 +in the request body it's available to filter search results with parameters. parameter examples: 898 + 899 +{{code language="Json"}} 900 + { "totalPriceFrom": 500, 901 + "totalPriceTo": 10000, 902 + "hotelTypes": [ 903 + "CityHotel", 904 + "BeachHotel", 905 + "SecondLineBeach" 906 + ], 907 + "hotelClasses": [ 908 + "1", 909 + "2", 910 + "3", 911 + "4", 912 + "5", 913 + "6" 914 + ], 915 + "hotelServices": [ 916 + "HasAlcohol", 917 + "HasFreeWifi", 918 + "HasMetro", 919 + "HasPool", 920 + "HasMall" 921 + ], 922 + "mealPlans": [ 923 + "RO", 924 + "BB", 925 + "HB", 926 + "FB", 927 + "AL" 928 + ] 929 +} 930 +{{/code}} 931 + 932 + 933 + 934 +== Important == 935 + 936 +{{error}} 937 +It's Important to in every other request header, put Auth token 938 + 939 +**Key **- Authorization 940 + 941 +**Value **- Bearer Token what is given in this response. 942 + 943 + 944 +**also note in headers that:** 945 + 946 +Content-Type - application/json 947 + 948 +**Key - **X-nugios-timezone 949 + 950 +**Value **- 240 951 +{{/error}}