Wiki source code of 1. SearchHotelPrices

Version 12.1 by Giorgi Mdivnishvili on 2024/01/09 14:43

Show last authors
1 {{box cssClass="floatinginfobox" title="**Contents**"}}
2
3
4 {{toc/}}
5 {{/box}}
6
7 = Method Description =
8
9 This method is used to retrieve only hotel prices. 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.
10
11
12 == Endpoint URL - [POST] ==
13
14 {{info}}
15 [[https:~~/~~/integration.kazunion.com/api/OnlyHotelPackages/SearchHotelPrices>>https://integration.kazunion.com/api/OnlyHotelPackages/SearchHotelPrices]]
16 {{/info}}
17
18
19 == Request Parameters ==
20
21 (% class="box infomessage" %)
22 (((
23 None
24 )))
25
26 == Request Body ==
27
28 {{code language="Json"}}
29 {
30 "countryCode": "string",
31 "locations": [
32 {
33 "type": "string",
34 "parent": "string",
35 "label": "string",
36 "subLabel": "string",
37 "value": "string",
38 "tag": "string"
39 }
40 ],
41 "checkInDate": "2023-12-14T08:09:42.770Z",
42 "checkInDateTo": "2023-12-14T08:09:42.770Z",
43 "checkOutDate": "2023-12-14T08:09:42.770Z",
44 "stayDays": 0,
45 "stayDaysTo": 0,
46 "adults": 0,
47 "children": 0,
48 "childrenAges": [
49 0
50 ],
51 "extendedSearch": true,
52 "totalPriceFrom": 0,
53 "totalPriceTo": 0,
54 "recommended": true,
55 "popular": true,
56 "freeSale": true,
57 "groupByHotel": true,
58 "hotelCodes": [
59 "string"
60 ],
61 "mealPlans": [
62 "string"
63 ],
64 "hotelClasses": [
65 "string"
66 ],
67 "hotelTypes": [
68 "CityHotel"
69 ],
70 "hotelServices": [
71 "HasAlcohol"
72 ],
73 "pagingId": "string",
74 "pageNumber": 0,
75 "pageRowCount": 0
76 }
77 {{/code}}
78
79 == Request Body example ==
80
81
82 {{code language="Json"}}
83 {
84 "countryCode": "AE",
85 "checkInDate": "2024-02-15T08:00:00.000Z",
86 "checkInDateTo": "2024-02-20T08:00:00.000Z",
87
88 "stayDays": 4,
89 "stayDaysTo": 6,
90 "adults": 1,
91 "children": 1,
92 "childrenAges": [
93 1
94 ],
95 "extendedSearch": false,
96 "totalPriceFrom": 10,
97 "totalPriceTo": 10000,
98 "recommended": false,
99 "popular": true,
100 "freeSale": true,
101 "groupByHotel": true,
102 "hotelCodes": [
103
104 ],
105 "mealPlans": [
106
107 ],
108 "hotelClasses": [
109
110 ],
111 "hotelTypes": [
112
113 ],
114 "hotelServices": [
115
116 ],
117 "pagingId": "",
118 "pageNumber": 3,
119 "pageRowCount": 10
120 }
121 {{/code}}
122
123 == Response Body ==
124
125 {{code language="json"}}
126 [
127 {
128 "hotelCode": "string",
129 "hotelName": "string",
130 "hotelClass": "string",
131 "cityUID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
132 "countryCode": "string",
133 "countryName": "string",
134 "districtUID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
135 "cityName": "string",
136 "districtName": "string",
137 "hotelType": "CityHotel",
138 "latitude": "string",
139 "longitude": "string",
140 "hasAlcohol": true,
141 "hasFreeWifi": true,
142 "hasMetro": true,
143 "hasPool": true,
144 "hasMall": true
145 }
146 ]
147 {{/code}}
148
149
150 === Response Body example ===
151
152 {{code language="Json"}}
153 {
154 "packages": [
155 {
156 "id": "onlyhotel:c4e23e7e-3d54-4efa-a3db-88508230ce91:504f63ca-6dd5-4d84-8245-cf7e77ccff73",
157 "priceCurrency": "USD",
158 "totalPrice": 381.7,
159 "agentCommissionPercent": 0.0,
160 "agentCommissionAmount": 0.0,
161 "hotel": {
162 "hotelPriceId": "504f63ca-6dd5-4d84-8245-cf7e77ccff73",
163 "providerId": 13,
164 "hotelName": "Golden Tulip Al Barsha Hotel",
165 "hotelCode": "ed0820c5-29b0-4e1b-8bcf-9f3c181e7961",
166 "nigths": 4,
167 "mealPlan": "RO",
168 "hotelClass": "4",
169 "availabilityType": "FreeSale",
170 "availableRoomsCount": 0,
171 "fewRooms": true,
172 "roomCategoryCode": "e63ea5ac-4883-4059-bb0a-795a534bbbfb",
173 "roomCategoryName": "Superior Twin",
174 "placementTypeName": "SNGL + CHILD(6-11.99)sharing",
175 "checkInDate": "2024-02-17T08:00:00.000Z",
176 "checkOutDate": "2024-02-21T08:00:00.000Z",
177 "adults": 1,
178 "children": 1,
179 "districtUID": "4c65f6ed-902b-4fd8-9419-af7884c22c5e",
180 "districtName": "Al Barsha",
181 "cityUID": "f5185fa3-3f56-44ed-bf6b-80386a33caa2",
182 "cityName": "Dubai",
183 "countryCode": "AE",
184 "countryName": "United Arab Emirates",
185 "hasAlcohol": true,
186 "hasFreeWifi": true,
187 "hasMetro": false,
188 "hasPool": true,
189 "hasMall": false,
190 "cancellationPolicyDescription": "Cancellation Policy: 15 Day Before Arrival: 100.00 %, Early Departure: 100.00 %, NoShow: 100.00 %",
191 "cancellationPolicy": {
192 "noShowChargeValue": 100.0,
193 "noShowChargeValueType": "%",
194 "earlyDepartureChargeValue": 100.0,
195 "earlyDepartureChargeValueType": "%",
196 "conditions": [
197 {
198 "timeunits": 15,
199 "timeunitType": "Day",
200 "timeOffsetTypeName": "Before Arrival",
201 "chargeValue": 100.0,
202 "chargeValueType": "%"
203 }
204 ]
205 }
206 },
207 "extraServices": []
208 },
209 {{/code}}
210
211
212 === Schema ===
213
214 {{success}}
215 SearchOnlyHotelPackagesResponse{
216
217 |packages|[
218 nullable: trueOnlyHotelPackage{(((
219 |id|string
220 nullable: true
221 |priceCurrency|string
222 nullable: true
223 |totalPrice|number($double)
224 |agentCommissionPercent|number($double)
225 |agentCommissionAmount|number($double)
226 |hotel|PackageHotel{(((
227 |hotelPriceId|string
228 nullable: true
229 |providerId|integer($int32)
230 |hotelName|string
231 nullable: true
232 |hotelCode|string
233 nullable: true
234 |nigths|integer($int32)
235 |mealPlan|string
236 nullable: true
237 |hotelClass|string
238 nullable: true
239 |availabilityType|RoomAvailabilityTypeEnumstringEnum:
240 [ OnRequest, FreeSale, StopSale ]
241 |availableRoomsCount|integer($int32)
242 |fewRooms|boolean
243 |roomCategoryCode|string
244 nullable: true
245 |roomCategoryName|string
246 nullable: true
247 |placementTypeName|string
248 nullable: true
249 |placementDescription|string
250 nullable: true
251 |checkInDate|string($date-time)
252 |checkOutDate|string($date-time)
253 |adults|integer($int32)
254 |children|integer($int32)
255 |districtUID|string($uuid)
256 nullable: true
257 |districtName|string
258 nullable: true
259 |cityUID|string($uuid)
260 nullable: true
261 |cityName|string
262 nullable: true
263 |countryCode|string
264 nullable: true
265 |countryName|string
266 nullable: true
267 |hasAlcohol|boolean
268 |hasFreeWifi|boolean
269 |hasMetro|boolean
270 |hasPool|boolean
271 |hasMall|boolean
272 |cancellationPolicyDescription|string
273 nullable: true
274 |cancellationPolicy|CancellationPolicyExchange{(((
275 |cancellationPolicyCode|string
276 nullable: true
277 |noShowChargeValue|number($double)
278 nullable: true
279 |noShowChargeValueType|string
280 nullable: true
281 |earlyDepartureChargeValue|number($double)
282 nullable: true
283 |earlyDepartureChargeValueType|string
284 nullable: true
285 |conditions|[
286 nullable: trueCancellationPolicyConditionExchange{(((
287 |timeunits|integer($int32)
288 |timeunitType|string
289 nullable: true
290 |timeOffsetTypeName|string
291 nullable: true
292 |chargeValue|number($double)
293 nullable: true
294 |chargeValueType|string
295 nullable: true
296
297 }]
298 )))
299
300 }
301 )))
302
303 }
304 )))
305 |extraServices|[
306 nullable: trueHotelExtraServiceBase{(((
307 |extraServiceCode|string
308 nullable: true
309 |extraServiceTypeCode|string
310 nullable: true
311 |isMandatory|integer($int32)
312 |extraServiceName|string
313 nullable: true
314 |minimalServiceAmount|number($double)
315 |includedPriceCode|string
316 nullable: true
317 |prices|[
318 nullable: trueHotelExtraServicePriceBase{(((
319 |extraServicePriceCode|string
320 nullable: true
321 |displayName|string
322 nullable: true
323 |restrictionInfo|string
324 nullable: true
325 |additionalInfo|string
326 nullable: true
327 |price|number($double)
328 |extraPrice|number($double)
329 |currency|string
330 nullable: true
331
332 }]
333 )))
334
335 }]
336 )))
337
338 }]
339 )))
340 |pagingId|string
341 nullable: true
342 |pageNumber|integer($int64)
343 |pageCount|integer($int64)
344
345 }
346 {{/success}}
347
348
349 == Definitions ==
350
351
352 === Paging and Caching ===
353
354 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:
355
356
357 ==== first request ====
358
359 {{code language="Json"}}
360 {
361 "pagingId": "",
362 "pageNumber": 1,
363 "pageRowCount":10
364 }
365 {{/code}}
366
367
368 ==== Request with caching ====
369
370 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
371
372 {{code language="Json"}}
373 {
374 "pagingId": "80",
375 "pageNumber": 1,
376 "pageRowCount":10
377 }
378 {{/code}}
379
380
381
382 == Important ==
383
384 {{error}}
385 It's Important to in every other request header, put Auth token
386
387 **Key **- Authorization
388
389 **Value **- Bearer Token what is given in this response.
390
391
392 **also note in headers that:**
393
394 Content-Type - application/json
395
396 **Key - **X-nugios-timezone
397
398 **Value **- 240
399 {{/error}}