Search And Availability Response
Response
| Attribute | Type | Description |
|---|---|---|
| search_id | string | Unique ID for the search request (valid for 30 minutes). |
| no_of_hotels | integer | The number of hotels in the response |
| no_of_rooms | integer | The number of rooms requested for |
| no_of_nights | integer | The number of nights the rooms are requested for |
| no_of_children | integer | Number of children |
| no_of_adults | integer | Number of adults |
| checkin | date | Check-in date |
| checkout | date | Check-out date |
| hotels | array | An array of hotels with availability information. Hotel is described below. |
| more_results | boolean | true if there are more results in cache(i.e hotels or rates still getting processed due to the response delays from our upstreams). You should collect more results by calling Re-Fetch Availability with search ID endpoint at regular intervals till you get more_results as false. |
Hotel
| Attribute | Type | Description |
|---|---|---|
| hotel_code | string | Unique GRN hotel code |
| name | string | Name of the hotel |
| min_rate | object | Contains the lowest price within a given hotel for the given search criteria. Returned only if 'concise' rates are requested in the search request. See "rate" for more info. To get all the rates you should call Re-fetch Availability for a Single Hotel endpoint. |
| geolocation | object | Geolocation of the hotel |
| category | float | The star category of the hotel |
| address | string | Address of the hotel |
| rates | array | An array of all available rates for a hotel. Returned only if 'comprehensive' rates are requested. The Rate element is described below. |
| acc_type | string | Possible values "0" or "3" 3 = Apartments and 0 = All other properties. 3 will for the properties where acc_name either Aparthotel, Apartment or Condo |
| rates | array | An array of all available rates for a hotel. Returned only if 'comprehensive' rates are requested. The Rate element is described below. |
| safe2stay | object | COVID-19 - Safe to Stay details for the hotel which help to understand kind of safety standards followed by property to ensure to safe stay at the property. If object is null/empty – means we have no information about property related to Covid safety |
| featured | boolean | This indicates whether a hotel is featured or not. If the hotel is featured then the value will be true else the entire featured tag will not be there in response. |
| recommended | boolean | This indicates whether a hotel is recommended or not. If the hotel is fearecommendedtured then the value will be true else the entire recommended tag will not be there in response. |
Rate
| Attribute | Type | Description |
|---|---|---|
| rate_key | string | Unique code representing the rate. REQUIRED, to be included when making a booking request. |
| rate_type | string | Possible values are 'bookable' and 'recheck'. If rate_type = 'recheck', you must use re-check endpoint before booking. |
| rate_comments | object | Object of dynamic key value pairs. Eg: { “comments”: “Rate comments come here”, “price_comments”: “Extra beds on demand YES (without additional debit notes). Wi-fi YES (without additional debit notes) . Minimum check-in age 21. . The person whose name is on the reservation must be at least 21 years of age to check in.\nThe hotel offers cribs and parking (self/valet) at an addtional fee paid locally at the hotel check in by guest\n” } |
| non_refundable | boolean | true if the rate is Non-refundable. Ignore the cancellation_policies if non_refundable is true. Otherwise, cancellation policies apply. |
| room_code | string | Room code representing the rooms in the rate. REQUIRED, to be included when making a booking request. |
| no_of_rooms | integer | Number of rooms included in this rate |
| group_code | string | Represents a group of related rates. When booking multiple rates, you must use rates from the same group. REQUIRED, to be included when making a booking request. |
| price | float | Price for the rooms included in this rate. |
| price_details | object | Price details. Refer below for more info. |
| currency | string | Three-letter ISO currency code of the price |
| payment_type | array | Allowed payment types: AT_WEB |
| cancellation_policy | object | Cancellation policy for the rate. See Cancellation Policy for details. |
| has_promotions | boolean | true if any promotions are included in this rate |
| promotions_details | array | Array of promotions (strings), if any |
| includes_boarding | boolean | true if boarding is included in this rate |
| boarding_details | array | Array of boarding details (strings), if available |
| other_inclusions | array | Array of other inclusions (strings), if available |
| includes_wifi | boolean | true if wi-fi is included in this rate |
| supports_amendment | boolean | true if this booking can be amended through api. Its for future use. Currently it will always false. |
| supports_cancellation | boolean | true if this booking can be cancelled through api. |
| rooms | array | Array of rooms included for this rate. See Room for details. |
| pan_required | boolean | Requirement of PAN card at booking, applies only for Indian Agents |
| msp | object | Minimum selling price object. |
| vendor_hotel_name | string | The name of the hotel used by the vendor.Only a few vendors support this. If any vendor doesnot support then this key will not be coming in the response. |
Price Details:
Dynamic key-value pairs, where each value is an array of charge details. These details are for display purpose only. A compliant implementation is not required to process or interpret these details.
Refer sample price_details below.
| Attribute | Type | Description |
|---|---|---|
| name | string | Name of the charge. |
| included | boolean | true if the charge is already included in the price. |
| amount_type | string | Defines the type of amount. Possible values: 1. value represents flat_fee 2. percent represents percentage |
| amount | float | flat fee or percentage value. |
| mandatory | boolean | true if this must be paid either at booking or at hotel. Otherwise, this has to be paid(at hotel) only if you need the supplement/facility. |
| currency | string | Three-letter ISO currency code |
| comments | string | Description or any notes for the charge if available. |
Sample price_details:
{
"GST": [
{
"amount": value,
"amount_type": "value",
"currency": "INR",
"included": true,
"name": "Total"
}
],
"net": [
{
"amount": value,
"amount_type": "value",
"currency": "INR",
"included": true,
"name": "SupplierPrice"
},
{
"amount": value,
"amount_type": "value",
"currency": "INR",
"included": true,
"name": "ServiceFee"
},
{
"amount": value,
"amount_type": "value",
"currency": "INR",
"included": true,
"name": "Total"
}
]
}
MSP:
Dynamic key-value pairs, where each value is an array of charge details. MSP node will inform the value of the Minimum Suggested Selling Price and it is mandatory to use the rate indicated as the Minimum Selling Price in a public environment.
The value sent CANNOT be decreased to a cheaper value. This is to avoid disparity errors and product closure.
You should have the possibility to increase the value sent if necessary.
If you do not respect the Minimum Selling Price, we may limit sensitive products to avoid disparity errors with hotels.
Refer sample msp below.
| Attribute | Type | Description |
|---|---|---|
| price | float | amount |
| currency | string | currency |
Sample msp:
{
"checkin": "2024-07-19",
"checkout": "2024-07-20",
"hotels": [
{
"acc_type": "0",
"address": "Airport Road Rinas, Mother Teresa Tirana Airport, 1053 Rinas",
"category": 4.0,
"city_code": "122820",
"country": "AL",
"description": "",
"geolocation": {
"latitude": 41.420540433044,
"longitude": 19.711772827066
},
"hotel_code": "1001020",
"images": {
"main_image": "",
"url": ""
},
"name": "Best Western Premier Ark Hotel",
"rates": [
{
"boarding_details": [
"Room Only"
],
"cancellation_policy": {
"amount_type": "value",
"cancel_by_date": "2024-07-11T23:59:59",
"details": [
{
"currency": "USD",
"flat_fee": 774.0,
"from": "2024-07-12T00:00:00"
},
{
"currency": "USD",
"flat_fee": 778.0,
"from": "2024-07-17T00:00:00"
}
],
"no_show_fee": {
"amount_type": "value",
"currency": "USD",
"flat_fee": 778.0
},
"under_cancellation": false
},
"credit_deduction": "immediate",
"currency": "USD",
"group_code": "w2nrbzluxv3xbnim7pedyseu5lmkpf5b7kzo7alqyzar3lpib7lhta5chycxvmpe5bpgzv5xzyav2xb5u7qhi",
"has_promotions": false,
"includes_boarding": true,
"msp": {
"currency": "USD",
"price": 777.68
},
"no_of_rooms": 1,
"non_refundable": false,
"payment_type": [
"AT_WEB"
],
"price": 778.0,
"price_details": {
"net": [
{
"amount": 0.0,
"amount_type": "value",
"currency": "USD",
"included": true,
"name": "VAT"
},
{
"amount": 777.68,
"amount_type": "value",
"currency": "USD",
"included": true,
"name": "SupplierPrice"
},
{
"amount": 777.68,
"amount_type": "value",
"currency": "USD",
"included": true,
"name": "Total"
}
]
},
"rate_comments": {
"comments": "",
"fee_comments": "",
"pax_comments": ""
},
"rate_key": "tg5f5pslw5vh5aqa7lpqote75lmkpf5b7kzo7alqyzar3lpib7lhta5chycxvmpe5bpgzv5xzyav2xb5u7qhi76zzd3sb7ucqc4hjkoyxlffxvyoyf2to",
"rate_type": "recheck",
"room_code": "43evhkrq5ircppzs2a",
"rooms": [
{
"description": "Superior Room",
"no_of_adults": 1,
"no_of_children": 0,
"no_of_rooms": 1,
"room_reference": "4dcf5nj45arcpw2cugpwkh645ll2xq5k7g7y5fzyrydedi5iakysbwfmfedq",
"room_type": "Superior Room"
}
],
"supports_amendment": false,
"supports_cancellation": true
}
],
}
],
"no_of_adults": 1,
"no_of_hotels": 1,
"no_of_nights": 1,
"no_of_rooms": 1,
"search_id": "q43xecqe6nxrdo2bfi3zffvjfe"
}
Room
| Attribute | Type | Description |
|---|---|---|
| room_type | string | This is the room category/standardized Room Name (Must be shown on UI) Not Guaranteed Please Note: that the room names provided through our API may not match those found on the hotel’s official website. Our API uses GIATA tool for room mapping and standardized identifiers to ensure consistency and integration. Consequently, these names may differ from the exact terminology used by the hotel. |
| room_reference | string | Unique room reference for the room |
| no_of_rooms | integer | Number of rooms(included) of the same type. |
| no_of_adults | integer | Number of adults in the room |
| no_of_children | integer | Number of children in the room |
| children_ages | array | Ages of the children |
| description | string | Room description/details - complete description of room. This must be read for complete description of room (Must be shown on UI to customer) Guaranteed Please Note: that the room names provided through our API may not match those found on the hotel’s official website. Our API uses GIATA tool for room mapping and standardized identifiers to ensure consistency and integration. Consequently, these names may differ from the exact terminology used by the hotel. |
| bed_types | array | Array of bed type Objects. If returned, you can choose and include bed type in the booking request. See Bed Type for details |
| max_room_occupancy | object | An object representing maximum room occupancy. This will be returned when no_of_adults is not available. See Max Room Occupancy for details. |
We recommend to show both Room_type & description on UI to the customer as both fields together gives customer full information about room
Max Room Occupancy
| Attribute | Type | Description |
|---|---|---|
| max_pax | integer | Maximum number of total guests allowed in the room |
| max_adults | integer | Maximum number of adults allowed in the room |
| max_children | integer | Maximum number of children allowed in the room |
Bed Type Object
| Attribute | Type | Description |
|---|---|---|
| id | integer | Bed type id |
| type | string | Bed type name/description |
Geolocation
| Attribute | Type | Description |
|---|---|---|
| latitude | float | Latitude of the hotel |
| longitude | float | Longitude of the hotel |
Cancellation Policy
| Attribute | Type | Description |
|---|---|---|
| under_cancellation | boolean | true if the booking is under cancellation, i.e. cancellation charges will apply should a cancellation be made later. |
| cancel_by_date | datetime | Last date for cancellation without charges. Mutually-exclusive with 'under_cancellation' being true. The time zone will be IST (Indian Standard Time). |
| no_show_fee | object | Charges for no show. An Object with the following fields: amount_type: represents the type of value. As mentioned below. currency: Three-letter ISO currency code. |
| amount_type | string | Defines the type of value in details: value: represents amount percent: represents percentage nights: represents charges in number of nights. |
| details | array | List of cancellation windows and applicable charges. Refer policy details below. |
| policy_text | string | Description of applicable cancellation-policies in string format if available. |
Policy Details:
| Attribute | Type | Description |
|---|---|---|
| from | datetime | Date from which the charge in this window applies |
| allowed_cancellation | boolean | false represents the booking cannot be cancelled from the date given |
| nights | integer | Charges in number of nights. |
| percent | float | Charges in percentage |
| flat_fee | float | Amount of money charged |
| currency | string | Three-letter ISO currency code |
Covid Safe - Safe to Stay
| Attribute | Type | Description |
|---|---|---|
| essential_workers_only | string | "Y" - means only bookable for essential workers. If tag not coming means property is open to all types of travellers |
| covid_19_safe_to_stay | string | "Y" - property is safe to stay. This tag will come only for properties that claims itself to be a safe to travel property & have implemented some safety norms. |
| covid_19_safety_protocol | string | Description of the safety standards followed by the property |
Error Codes
| HTTP Status Code | Error Code | Description |
|---|---|---|
| 401 | 1102 | Invalid API key |
| 200 | 1501 | No availability for the requested search criteria |
| 200 | 1502 | No hotels found for the query |
| 200 | 5101 | Field[name] is required. Ex: checkin is required |
| 200 | 5102 | Field[name] value/type is invalid Ex: rooms value/type is invalid |
| 200 | 5103 | Invalid hotel category |
| 200 | 5106 | Children ages should be between 0 and 11 (Less than 12) |
| 200 | 5108 | Check-In and check-out dates must be valid, and in ISO8601 format (YYYY-MM-DD) |
| 200 | 5109 | Check-In date cannot be older than today |
| 200 | 5110 | Stay cannot exceed 30 days |
| 200 | 5111 | Check-out date must be greater than check-in date |
Sample Search Response
{
"checkin": "2022-12-15",
"checkout": "2022-12-16",
"hotels": [
{
"acc_type": "0",
"address": "Al Rigga Road, P.O.Box 49185, Dubai",
"category": 3.0,
"city_code": "121449",
"country": "AE",
"description": "<p><b>Property Location</b> <br />With a stay at Signature Inn Deira Dubai in Dubai (Deira), you'll be within a 5-minute drive of Dubai Creek and BurJuman Mall. This hotel is 1.9 mi (3 km) from City Centre Deira and 2.3 mi (3.6 km) from Gold Souk.</p><p><b>Rooms</b> <br />Make yourself at home in one of the 80 guestrooms.</p><p><b>Amenities</b> <br />Don't miss out on recreational opportunities including a nightclub and a fitness center.</p><p><b>Dining</b> <br />Enjoy a meal at the restaurant or snacks in the hotel's coffee shop/cafe. Relax with your favorite drink at the bar/lounge or the poolside bar.</p><p><b>Business, Other Amenities</b> <br />Featured amenities include wired Internet access (surcharge), dry cleaning/laundry services, and a 24-hour front desk. Self parking (subject to charges) is available onsite.</p>",
"facilities": "Lounges/bars ; Elevators ; Fitness center ; Restaurant ; Poolside snack bar ; Nightclub ; Safe deposit box ; Multilingual staff ; 24-hour front desk ; Bell staff/porter ; Laundry/Valet service ; Guestroom wired internet ; Outdoor pool ; Parking",
"geolocation": {
"latitude": 25.26579,
"longitude": 55.32146
},
"hotel_code": "1848138",
"images": {
"main_image": "1848138/e39e083106ef34bc606af9e6daec54ca.jpg",
"url": "https://images.grnconnect.com/1848138/e39e083106ef34bc606af9e6daec54ca.jpg"
},
"name": "Signature Inn Hotel Deira",
"rates": [
{
"boarding_details": [
"Room Only"
],
"cancellation_policy": {
"amount_type": "percent",
"cancel_by_date": "2022-12-11T23:59:59",
"details": [
{
"currency": "INR",
"from": "2022-12-12T00:00:00",
"percent": 100
}
],
"no_show_fee": {
"amount_type": "percent",
"currency": "INR",
"percent": 100
},
"under_cancellation": false
},
"credit_deduction": "immediate",
"currency": "INR",
"group_code": "xciav53swn3gtnif7xmtetus5lmk5rvk6w2q",
"has_promotions": false,
"includes_boarding": true,
"no_of_rooms": 1,
"non_refundable": false,
"pan_required": true,
"payment_type": [
"AT_WEB"
],
"price": 5976.0,
"price_details": {
"GST": [
{
"amount": 0.0,
"amount_type": "value",
"currency": "INR",
"included": true,
"name": "Total"
}
],
"net": [
{
"amount": 5975.87,
"amount_type": "value",
"currency": "INR",
"included": true,
"name": "SupplierPrice"
},
{
"amount": 0.0,
"amount_type": "value",
"currency": "INR",
"included": true,
"name": "ServiceFee"
},
{
"amount": 5975.87,
"amount_type": "value",
"currency": "INR",
"included": true,
"name": "Total"
}
]
},
"rate_comments": {
"comments": "Tax / Fee like Resort fee or any other taxes that are directly payable to the Hotel to city/government are not includes in the rate. </br> Child OR 3rd Adult will be sharing the same bedding unless extra bed is mentioned. </br> Booked Bedding Type & Bedding Preferences are shared with Hotel, however it’s subject to availability.\n Please check country/city specific guidelines for COVID related rules and restrictions for travelers. Check-in and stay at hotel is subject to travelers producing all documents as per COVID guidelines stated by local authorities.\n If a child stays on existing bedding (free of charge), room benefits are not provided. Customer will have to pay for additional charge for the child to the hotel directly e.g. breakfast charges for child.\n If holder is not one of the paxes, one of the adult paxes will be considered as holder. Please note that the food inclusion might not always correspond to the number of people staying in the room.\n ",
"mealplan": "Room Only",
"pax_comments": "For this rate the infants will be converted to children with age 1."
},
"rate_key": "4devnmrw5bvwtcyp6dfckso4wsg6ve7uu27y7lls3vdr5kpodlih3axtenphvzx76fltndfxzmavisbu664fa5gss7ig3j6ax7wshr4c46pqa",
"rate_type": "recheck",
"room_code": "43gevmzr5arerojf",
"rooms": [
{
"children_ages": [
3
],
"description": "double or twin room standard double bed : Room Only",
"no_of_adults": 1,
"no_of_children": 1,
"no_of_rooms": 1,
"room_reference": "qoyv5ptvuz4xhdqa43hw2f6x5lmk5s5c6i",
"room_type": "double or twin room"
}
],
"supports_amendment": false,
"supports_cancellation": true
},
{
"boarding_details": [
"Room Only"
],
"cancellation_policy": {
"amount_type": "percent",
"cancel_by_date": "2022-12-11T23:59:59",
"details": [
{
"currency": "INR",
"from": "2022-12-12T00:00:00",
"percent": 100
}
],
"no_show_fee": {
"amount_type": "percent",
"currency": "INR",
"percent": 100
},
"under_cancellation": false
},
"credit_deduction": "immediate",
"currency": "INR",
"group_code": "xciav53swn3gtnif7xmtetus5lmk5rvk6w2q",
"has_promotions": false,
"includes_boarding": true,
"no_of_rooms": 1,
"non_refundable": false,
"pan_required": true,
"payment_type": [
"AT_WEB"
],
"price": 8349.0,
"price_details": {
"GST": [
{
"amount": 0.0,
"amount_type": "value",
"currency": "INR",
"included": true,
"name": "Total"
}
],
"net": [
{
"amount": 8348.32,
"amount_type": "value",
"currency": "INR",
"included": true,
"name": "SupplierPrice"
},
{
"amount": 0.0,
"amount_type": "value",
"currency": "INR",
"included": true,
"name": "ServiceFee"
},
{
"amount": 8348.32,
"amount_type": "value",
"currency": "INR",
"included": true,
"name": "Total"
}
]
},
"rate_comments": {
"comments": "Tax / Fee like Resort fee or any other taxes that are directly payable to the Hotel to city/government are not includes in the rate. </br> Child OR 3rd Adult will be sharing the same bedding unless extra bed is mentioned. </br> Booked Bedding Type & Bedding Preferences are shared with Hotel, however it’s subject to availability.\n Please check country/city specific guidelines for COVID related rules and restrictions for travelers. Check-in and stay at hotel is subject to travelers producing all documents as per COVID guidelines stated by local authorities.\n If a child stays on existing bedding (free of charge), room benefits are not provided. Customer will have to pay for additional charge for the child to the hotel directly e.g. breakfast charges for child.\n If holder is not one of the paxes, one of the adult paxes will be considered as holder. Please note that the food inclusion might not always correspond to the number of people staying in the room.\n ",
"mealplan": "Room Only",
"pax_comments": "For this rate the infants will be converted to children with age 1."
},
"rate_key": "4devnmrw5bvwtcyp6dfckso4usipnapuu27y7lls3vdr5kpodlih3axteifsryp77rkt7bf2zadf2sbu664fa5gss7ig3j6ax7wshr4c46pqa",
"rate_type": "recheck",
"room_code": "4dhflkrq4qrcppzs2a",
"rooms": [
{
"children_ages": [
3
],
"description": "triple room standard triple bed : Room Only",
"no_of_adults": 1,
"no_of_children": 1,
"no_of_rooms": 1,
"room_reference": "qoyv5ptvuz4xhdqa43hw2f6x5lmk5s5c6i",
"room_type": "triple room"
}
],
"supports_amendment": false,
"supports_cancellation": true
},
{
"boarding_details": [
"Room Only"
],
"cancellation_policy": {
"amount_type": "percent",
"cancel_by_date": "2022-12-11T23:59:59",
"details": [
{
"currency": "INR",
"from": "2022-12-12T00:00:00",
"percent": 100
}
],
"no_show_fee": {
"amount_type": "percent",
"currency": "INR",
"percent": 100
},
"under_cancellation": false
},
"credit_deduction": "immediate",
"currency": "INR",
"group_code": "xciav53swn3gtnif7xmtetus5lmk5rvk6w2q",
"has_promotions": false,
"includes_boarding": true,
"no_of_rooms": 1,
"non_refundable": false,
"pan_required": true,
"payment_type": [
"AT_WEB"
],
"price": 10722.0,
"price_details": {
"GST": [
{
"amount": 0.0,
"amount_type": "value",
"currency": "INR",
"included": true,
"name": "Total"
}
],
"net": [
{
"amount": 10721.59,
"amount_type": "value",
"currency": "INR",
"included": true,
"name": "SupplierPrice"
},
{
"amount": 0.0,
"amount_type": "value",
"currency": "INR",
"included": true,
"name": "ServiceFee"
},
{
"amount": 10721.59,
"amount_type": "value",
"currency": "INR",
"included": true,
"name": "Total"
}
]
},
"rate_comments": {
"comments": "Tax / Fee like Resort fee or any other taxes that are directly payable to the Hotel to city/government are not includes in the rate. </br> Child OR 3rd Adult will be sharing the same bedding unless extra bed is mentioned. </br> Booked Bedding Type & Bedding Preferences are shared with Hotel, however it’s subject to availability.\n Please check country/city specific guidelines for COVID related rules and restrictions for travelers. Check-in and stay at hotel is subject to travelers producing all documents as per COVID guidelines stated by local authorities.\n If a child stays on existing bedding (free of charge), room benefits are not provided. Customer will have to pay for additional charge for the child to the hotel directly e.g. breakfast charges for child.\n If holder is not one of the paxes, one of the adult paxes will be considered as holder. Please note that the food inclusion might not always correspond to the number of people staying in the room.\n ",
"mealplan": "Room Only",
"pax_comments": "For this rate the infants will be converted to children with age 1."
},
"rate_key": "4devnmrw5bvwtcyp6dfckso4ugl75fpkw323db3sxe5rf6xjcsdhxd7seeecxy7ju5pcbanyzudvixr462sso5g25grwlj5s23xstjup56mapackzm",
"rate_type": "recheck",
"room_code": "4dgvjkrt4qrcppzs2a",
"rooms": [
{
"children_ages": [
3
],
"description": "quadruple room standard quadruple bed : Room Only",
"no_of_adults": 1,
"no_of_children": 1,
"no_of_rooms": 1,
"room_reference": "qoyv5ptvuz4xhdqa43hw2f6x5lmk5s5c6i",
"room_type": "quadruple room"
}
],
"supports_amendment": false,
"supports_cancellation": true
}
],
"safe2stay": {
"covid_19_safe_to_stay": "Y",
"covid_19_safety_protocol": "This property advises that enhanced cleaning and guest safety measures are currently in place.<br>"
}
}
],
"no_of_adults": 1,
"no_of_children": 1,
"no_of_hotels": 1,
"no_of_nights": 1,
"no_of_rooms": 1,
"search_id": "gbifbtzuxhwf53xfzqqxa3ix3u"
}