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
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
on 2023/12/19 18:05
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -6,15 +6,13 @@ 6 6 7 7 = Method Description = 8 8 9 -To ur packagemean,tour withhotelandflighttogether.Usingthismethod givesdataaboutfullpackage availabilitywith flightand 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:~~/~~/in tegration.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 +