Wiki source code of 1. SearchHotelPrices
Version 11.1 by Giorgi Mdivnishvili on 2024/01/09 12:51
Show last authors
author | version | line-number | content |
---|---|---|---|
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}} |