Impala Hotel Booking API
Impala Hotel Booking APIv1.003
Add room selling to your app with ease, or expand your existing hotel portfolio. Access all the marketing material you need to sell a room, from hotel amenities to images. Constantly updated, ever expanding and always correct. Impala allows you to start selling hotel rooms and earn a commission with every booking in hours. Getting started is easy: 1. Sign-up within seconds: Head to the Impala website, enter your details and receive your sandbox API key immediately (no credit card needed). 2. Start building within minutes: Build against a sandbox API with realistic test data. Use a…
- Endpoints
- 10 (6 GET, 2 PUT, 1 POST, 1 DELETE)
- Base URL
https://sandbox.impala.travel/v1- Authentication
- API key, Bearer token
- Spec format
- OpenAPI 3.0.0
- API version
- 1.003
- Source
- docs.impala.travel
- Provider
- impala.travel
- Categories
- E-commerce
- Last updated
Use this API in Bruno:
- Download the Bruno collection above and unzip it.
- In Bruno, choose Open Collection and select the unzipped folder.
- Set the
baseUrlvariable (for examplehttps://sandbox.impala.travel/v1) and your API key credentials, then send requests.
DELETE
Cancel a booking
{{baseUrl}}/bookings/:bookingId
QUERY PARAMS
bookingId
Examples
REQUEST
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(hnd, CURLOPT_URL, "{{baseUrl}}/bookings/:bookingId");
CURLcode ret = curl_easy_perform(hnd);
(require '[clj-http.client :as client])
(client/delete "{{baseUrl}}/bookings/:bookingId")
require "http/client"
url = "{{baseUrl}}/bookings/:bookingId"
response = HTTP::Client.delete url
puts response.body
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Delete,
RequestUri = new Uri("{{baseUrl}}/bookings/:bookingId"),
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}
var client = new RestClient("{{baseUrl}}/bookings/:bookingId");
var request = new RestRequest("", Method.Delete);
var response = client.Execute(request);
package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "{{baseUrl}}/bookings/:bookingId"
req, _ := http.NewRequest("DELETE", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
DELETE /baseUrl/bookings/:bookingId HTTP/1.1
Host: example.com
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("DELETE", "{{baseUrl}}/bookings/:bookingId")
.execute()
.toCompletableFuture()
.thenAccept(System.out::println)
.join();
client.close();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("{{baseUrl}}/bookings/:bookingId"))
.method("DELETE", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("{{baseUrl}}/bookings/:bookingId")
.delete(null)
.build();
Response response = client.newCall(request).execute();
HttpResponse response = Unirest.delete("{{baseUrl}}/bookings/:bookingId")
.asString();
const data = null;
const xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener('readystatechange', function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open('DELETE', '{{baseUrl}}/bookings/:bookingId');
xhr.send(data);
import axios from 'axios';
const options = {method: 'DELETE', url: '{{baseUrl}}/bookings/:bookingId'};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const url = '{{baseUrl}}/bookings/:bookingId';
const options = {method: 'DELETE'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
const settings = {
async: true,
crossDomain: true,
url: '{{baseUrl}}/bookings/:bookingId',
method: 'DELETE',
headers: {}
};
$.ajax(settings).done(function (response) {
console.log(response);
});
val client = OkHttpClient()
val request = Request.Builder()
.url("{{baseUrl}}/bookings/:bookingId")
.delete(null)
.build()
val response = client.newCall(request).execute()
const http = require('https');
const options = {
method: 'DELETE',
hostname: 'example.com',
port: null,
path: '/baseUrl/bookings/:bookingId',
headers: {}
};
const req = http.request(options, function (res) {
const chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.end();
const request = require('request');
const options = {method: 'DELETE', url: '{{baseUrl}}/bookings/:bookingId'};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
const unirest = require('unirest');
const req = unirest('DELETE', '{{baseUrl}}/bookings/:bookingId');
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});
const axios = require('axios').default;
const options = {method: 'DELETE', url: '{{baseUrl}}/bookings/:bookingId'};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const fetch = require('node-fetch');
const url = '{{baseUrl}}/bookings/:bookingId';
const options = {method: 'DELETE'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
#import
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"{{baseUrl}}/bookings/:bookingId"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"DELETE"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"%@", httpResponse);
}
}];
[dataTask resume];
open Cohttp_lwt_unix
open Cohttp
open Lwt
let uri = Uri.of_string "{{baseUrl}}/bookings/:bookingId" in
Client.call `DELETE uri
>>= fun (res, body_stream) ->
(* Do stuff with the result *)
"{{baseUrl}}/bookings/:bookingId",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
request('DELETE', '{{baseUrl}}/bookings/:bookingId');
echo $response->getBody();
setUrl('{{baseUrl}}/bookings/:bookingId');
$request->setMethod(HTTP_METH_DELETE);
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
setRequestUrl('{{baseUrl}}/bookings/:bookingId');
$request->setRequestMethod('DELETE');
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$response = Invoke-WebRequest -Uri '{{baseUrl}}/bookings/:bookingId' -Method DELETE
$response = Invoke-RestMethod -Uri '{{baseUrl}}/bookings/:bookingId' -Method DELETE
import http.client
conn = http.client.HTTPSConnection("example.com")
conn.request("DELETE", "/baseUrl/bookings/:bookingId")
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
import requests
url = "{{baseUrl}}/bookings/:bookingId"
response = requests.delete(url)
print(response.json())
library(httr)
url <- "{{baseUrl}}/bookings/:bookingId"
response <- VERB("DELETE", url, content_type("application/octet-stream"))
content(response, "text")
require 'uri'
require 'net/http'
url = URI("{{baseUrl}}/bookings/:bookingId")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
response = http.request(request)
puts response.read_body
require 'faraday'
conn = Faraday.new(
url: 'https://example.com',
)
response = conn.delete('/baseUrl/bookings/:bookingId') do |req|
end
puts response.status
puts response.body
use std::str::FromStr;
use reqwest;
#[tokio::main]
pub async fn main() {
let url = "{{baseUrl}}/bookings/:bookingId";
let client = reqwest::Client::new();
let response = client.request(reqwest::Method::from_str("DELETE").unwrap(), url)
.send()
.await;
let results = response.unwrap()
.json::()
.await
.unwrap();
dbg!(results);
}
curl --request DELETE \
--url {{baseUrl}}/bookings/:bookingId
http DELETE {{baseUrl}}/bookings/:bookingId
wget --quiet \
--method DELETE \
--output-document \
- {{baseUrl}}/bookings/:bookingId
import Foundation
let request = NSMutableURLRequest(url: NSURL(string: "{{baseUrl}}/bookings/:bookingId")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "DELETE"
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"bookedRooms": [
{
"adults": 1,
"cancellationPolicies": [
{
"end": "2020-12-17 23:59:59.999",
"fee": {
"count": 100,
"price": {
"amount": 9500,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after October 19, 2021 00:00",
"start": "2020-12-15 23:59:59.999"
}
],
"notes": {
"fromGuest": "Please add an extra bed to this room",
"fromSeller": ""
},
"rate": {
"cancellationPolicies": [
{
"end": "2020-12-17 23:59:59.999",
"fee": {
"count": 100,
"price": {
"amount": 9500,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after October 19, 2021 00:00",
"start": "2020-12-15 23:59:59.999"
}
],
"components": [
{
"formatted": "Breakfast",
"includedInRate": true,
"type": "BREAKFAST"
}
],
"end": "2021-11-23",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "i8fIZ277SPDq4UohuxAft5Sr29UhMvyc0VypRxLiRFLoTk0XHmEbgSQ",
"retailRate": {
"taxesAndFees": {
"includedInRate": [
{
"category": "VAT",
"charge": {
"amount": 9500,
"currency": {
"code": "EUR"
}
},
"formatted": "10% VAT"
}
],
"payAtHotel": [
{
"category": "VAT",
"charge": {
"amount": 9500,
"currency": {
"code": "EUR"
}
},
"formatted": "10% VAT"
}
]
},
"total": {
"amount": 9500,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 9.5,
"start": "2021-11-20"
},
"roomType": {
"name": "Penthouse Suite",
"roomTypeId": "d5b192ce-c45f-46da-abf5-3880b429b7cc"
},
"sellerToImpalaPayment": {
"amount": 9500,
"currency": {
"code": "EUR"
}
}
}
],
"bookingId": "IM-0199-00000103",
"cancellation": {
"fee": {
"count": 100,
"price": {
"amount": 9500,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
}
},
"contact": {
"contactId": "3c8aa2ff-5e5e-4f23-bcfc-9036ba818a84",
"email": "jocelin.carreon.crespo@example.com",
"firstName": "Jocelín",
"lastName": "Carreón Sample"
},
"createdAt": "2020-10-20T12:38:22Z",
"end": "2020-10-24",
"hotel": {
"address": {
"city": "Impalaland",
"country": "GBR",
"countryName": "United Kingdom",
"line1": "12 Sample Avenue",
"line2": "string",
"postalCode": "12345",
"region": "string"
},
"hotelId": "60a06628-2c71-44bf-9685-efbd2df4179e",
"href": "/v1/hotels/60a06628-2c71-44bf-9685-efbd2df4179e",
"images": [
{
"altText": "A photo of an object",
"height": 4000,
"url": "https://cdn.impala.travel/ckhlsuxbb000b3b666rr9ussq.jpg",
"width": 4000
}
],
"location": {
"latitude": 58.386186,
"longitude": -9.952549
},
"name": "Impala Minimalist Palace",
"starRating": 2.5
},
"hotelConfirmationCode": "04M3995",
"notes": {
"fromGuest": "I am travelling with my family",
"fromSeller": ""
},
"start": "2020-10-21",
"status": "CANCELLED",
"updatedAt": "2020-10-22T20:12:33Z"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "VALIDATION_ERROR",
"message": "\"start\" must be in YYYY-MM-DD format. \"foo\" is not allowed. \"lorem\" missing required peer \"ipsum\"",
"validations": [
{
"code": "DATE_FORMAT",
"message": "\"start\" must be in YYYY-MM-DD format",
"property": "start"
},
{
"code": "OBJECT_UNKNOWN",
"message": "\"foo\" is not allowed",
"property": "foo"
},
{
"code": "OBJECT_WITH",
"message": "\"lorem\" missing required peer \"ipsum\"",
"property": "lorem"
}
]
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "Invalid authentication credentials"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "No API key found in request"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "FORBIDDEN",
"message": "The booking's arrival date is in the past"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "NOT_FOUND",
"message": "Cannot find booking"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "Internal Server Error"
}
PUT
Change a booking contact
{{baseUrl}}/bookings/:bookingId/booking-contact
QUERY PARAMS
bookingId
BODY json
{
"bookingContact": {
"email": "",
"firstName": "",
"lastName": ""
},
"updateBookingVersionAtTimestamp": ""
}
Examples
REQUEST
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "PUT");
curl_easy_setopt(hnd, CURLOPT_URL, "{{baseUrl}}/bookings/:bookingId/booking-contact");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "content-type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\n \"bookingContact\": {\n \"email\": \"\",\n \"firstName\": \"\",\n \"lastName\": \"\"\n },\n \"updateBookingVersionAtTimestamp\": \"\"\n}");
CURLcode ret = curl_easy_perform(hnd);
(require '[clj-http.client :as client])
(client/put "{{baseUrl}}/bookings/:bookingId/booking-contact" {:content-type :json
:form-params {:bookingContact {:email ""
:firstName ""
:lastName ""}
:updateBookingVersionAtTimestamp ""}})
require "http/client"
url = "{{baseUrl}}/bookings/:bookingId/booking-contact"
headers = HTTP::Headers{
"content-type" => "application/json"
}
reqBody = "{\n \"bookingContact\": {\n \"email\": \"\",\n \"firstName\": \"\",\n \"lastName\": \"\"\n },\n \"updateBookingVersionAtTimestamp\": \"\"\n}"
response = HTTP::Client.put url, headers: headers, body: reqBody
puts response.body
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Put,
RequestUri = new Uri("{{baseUrl}}/bookings/:bookingId/booking-contact"),
Content = new StringContent("{\n \"bookingContact\": {\n \"email\": \"\",\n \"firstName\": \"\",\n \"lastName\": \"\"\n },\n \"updateBookingVersionAtTimestamp\": \"\"\n}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}
var client = new RestClient("{{baseUrl}}/bookings/:bookingId/booking-contact");
var request = new RestRequest("", Method.Put);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\n \"bookingContact\": {\n \"email\": \"\",\n \"firstName\": \"\",\n \"lastName\": \"\"\n },\n \"updateBookingVersionAtTimestamp\": \"\"\n}", ParameterType.RequestBody);
var response = client.Execute(request);
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "{{baseUrl}}/bookings/:bookingId/booking-contact"
payload := strings.NewReader("{\n \"bookingContact\": {\n \"email\": \"\",\n \"firstName\": \"\",\n \"lastName\": \"\"\n },\n \"updateBookingVersionAtTimestamp\": \"\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
PUT /baseUrl/bookings/:bookingId/booking-contact HTTP/1.1
Content-Type: application/json
Host: example.com
Content-Length: 127
{
"bookingContact": {
"email": "",
"firstName": "",
"lastName": ""
},
"updateBookingVersionAtTimestamp": ""
}
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("PUT", "{{baseUrl}}/bookings/:bookingId/booking-contact")
.setHeader("content-type", "application/json")
.setBody("{\n \"bookingContact\": {\n \"email\": \"\",\n \"firstName\": \"\",\n \"lastName\": \"\"\n },\n \"updateBookingVersionAtTimestamp\": \"\"\n}")
.execute()
.toCompletableFuture()
.thenAccept(System.out::println)
.join();
client.close();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("{{baseUrl}}/bookings/:bookingId/booking-contact"))
.header("content-type", "application/json")
.method("PUT", HttpRequest.BodyPublishers.ofString("{\n \"bookingContact\": {\n \"email\": \"\",\n \"firstName\": \"\",\n \"lastName\": \"\"\n },\n \"updateBookingVersionAtTimestamp\": \"\"\n}"))
.build();
HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"bookingContact\": {\n \"email\": \"\",\n \"firstName\": \"\",\n \"lastName\": \"\"\n },\n \"updateBookingVersionAtTimestamp\": \"\"\n}");
Request request = new Request.Builder()
.url("{{baseUrl}}/bookings/:bookingId/booking-contact")
.put(body)
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();
HttpResponse response = Unirest.put("{{baseUrl}}/bookings/:bookingId/booking-contact")
.header("content-type", "application/json")
.body("{\n \"bookingContact\": {\n \"email\": \"\",\n \"firstName\": \"\",\n \"lastName\": \"\"\n },\n \"updateBookingVersionAtTimestamp\": \"\"\n}")
.asString();
const data = JSON.stringify({
bookingContact: {
email: '',
firstName: '',
lastName: ''
},
updateBookingVersionAtTimestamp: ''
});
const xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener('readystatechange', function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open('PUT', '{{baseUrl}}/bookings/:bookingId/booking-contact');
xhr.setRequestHeader('content-type', 'application/json');
xhr.send(data);
import axios from 'axios';
const options = {
method: 'PUT',
url: '{{baseUrl}}/bookings/:bookingId/booking-contact',
headers: {'content-type': 'application/json'},
data: {
bookingContact: {email: '', firstName: '', lastName: ''},
updateBookingVersionAtTimestamp: ''
}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const url = '{{baseUrl}}/bookings/:bookingId/booking-contact';
const options = {
method: 'PUT',
headers: {'content-type': 'application/json'},
body: '{"bookingContact":{"email":"","firstName":"","lastName":""},"updateBookingVersionAtTimestamp":""}'
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
const settings = {
async: true,
crossDomain: true,
url: '{{baseUrl}}/bookings/:bookingId/booking-contact',
method: 'PUT',
headers: {
'content-type': 'application/json'
},
processData: false,
data: '{\n "bookingContact": {\n "email": "",\n "firstName": "",\n "lastName": ""\n },\n "updateBookingVersionAtTimestamp": ""\n}'
};
$.ajax(settings).done(function (response) {
console.log(response);
});
val client = OkHttpClient()
val mediaType = MediaType.parse("application/json")
val body = RequestBody.create(mediaType, "{\n \"bookingContact\": {\n \"email\": \"\",\n \"firstName\": \"\",\n \"lastName\": \"\"\n },\n \"updateBookingVersionAtTimestamp\": \"\"\n}")
val request = Request.Builder()
.url("{{baseUrl}}/bookings/:bookingId/booking-contact")
.put(body)
.addHeader("content-type", "application/json")
.build()
val response = client.newCall(request).execute()
const http = require('https');
const options = {
method: 'PUT',
hostname: 'example.com',
port: null,
path: '/baseUrl/bookings/:bookingId/booking-contact',
headers: {
'content-type': 'application/json'
}
};
const req = http.request(options, function (res) {
const chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.write(JSON.stringify({
bookingContact: {email: '', firstName: '', lastName: ''},
updateBookingVersionAtTimestamp: ''
}));
req.end();
const request = require('request');
const options = {
method: 'PUT',
url: '{{baseUrl}}/bookings/:bookingId/booking-contact',
headers: {'content-type': 'application/json'},
body: {
bookingContact: {email: '', firstName: '', lastName: ''},
updateBookingVersionAtTimestamp: ''
},
json: true
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
const unirest = require('unirest');
const req = unirest('PUT', '{{baseUrl}}/bookings/:bookingId/booking-contact');
req.headers({
'content-type': 'application/json'
});
req.type('json');
req.send({
bookingContact: {
email: '',
firstName: '',
lastName: ''
},
updateBookingVersionAtTimestamp: ''
});
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});
const axios = require('axios').default;
const options = {
method: 'PUT',
url: '{{baseUrl}}/bookings/:bookingId/booking-contact',
headers: {'content-type': 'application/json'},
data: {
bookingContact: {email: '', firstName: '', lastName: ''},
updateBookingVersionAtTimestamp: ''
}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const fetch = require('node-fetch');
const url = '{{baseUrl}}/bookings/:bookingId/booking-contact';
const options = {
method: 'PUT',
headers: {'content-type': 'application/json'},
body: '{"bookingContact":{"email":"","firstName":"","lastName":""},"updateBookingVersionAtTimestamp":""}'
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
#import
NSDictionary *headers = @{ @"content-type": @"application/json" };
NSDictionary *parameters = @{ @"bookingContact": @{ @"email": @"", @"firstName": @"", @"lastName": @"" },
@"updateBookingVersionAtTimestamp": @"" };
NSData *postData = [NSJSONSerialization dataWithJSONObject:parameters options:0 error:nil];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"{{baseUrl}}/bookings/:bookingId/booking-contact"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"PUT"];
[request setAllHTTPHeaderFields:headers];
[request setHTTPBody:postData];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"%@", httpResponse);
}
}];
[dataTask resume];
open Cohttp_lwt_unix
open Cohttp
open Lwt
let uri = Uri.of_string "{{baseUrl}}/bookings/:bookingId/booking-contact" in
let headers = Header.add (Header.init ()) "content-type" "application/json" in
let body = Cohttp_lwt_body.of_string "{\n \"bookingContact\": {\n \"email\": \"\",\n \"firstName\": \"\",\n \"lastName\": \"\"\n },\n \"updateBookingVersionAtTimestamp\": \"\"\n}" in
Client.call ~headers ~body `PUT uri
>>= fun (res, body_stream) ->
(* Do stuff with the result *)
"{{baseUrl}}/bookings/:bookingId/booking-contact",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'bookingContact' => [
'email' => '',
'firstName' => '',
'lastName' => ''
],
'updateBookingVersionAtTimestamp' => ''
]),
CURLOPT_HTTPHEADER => [
"content-type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
request('PUT', '{{baseUrl}}/bookings/:bookingId/booking-contact', [
'body' => '{
"bookingContact": {
"email": "",
"firstName": "",
"lastName": ""
},
"updateBookingVersionAtTimestamp": ""
}',
'headers' => [
'content-type' => 'application/json',
],
]);
echo $response->getBody();
setUrl('{{baseUrl}}/bookings/:bookingId/booking-contact');
$request->setMethod(HTTP_METH_PUT);
$request->setHeaders([
'content-type' => 'application/json'
]);
$request->setContentType('application/json');
$request->setBody(json_encode([
'bookingContact' => [
'email' => '',
'firstName' => '',
'lastName' => ''
],
'updateBookingVersionAtTimestamp' => ''
]));
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
append(json_encode([
'bookingContact' => [
'email' => '',
'firstName' => '',
'lastName' => ''
],
'updateBookingVersionAtTimestamp' => ''
]));
$request->setRequestUrl('{{baseUrl}}/bookings/:bookingId/booking-contact');
$request->setRequestMethod('PUT');
$request->setBody($body);
$request->setHeaders([
'content-type' => 'application/json'
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers=@{}
$headers.Add("content-type", "application/json")
$response = Invoke-WebRequest -Uri '{{baseUrl}}/bookings/:bookingId/booking-contact' -Method PUT -Headers $headers -ContentType 'application/json' -Body '{
"bookingContact": {
"email": "",
"firstName": "",
"lastName": ""
},
"updateBookingVersionAtTimestamp": ""
}'
$headers=@{}
$headers.Add("content-type", "application/json")
$response = Invoke-RestMethod -Uri '{{baseUrl}}/bookings/:bookingId/booking-contact' -Method PUT -Headers $headers -ContentType 'application/json' -Body '{
"bookingContact": {
"email": "",
"firstName": "",
"lastName": ""
},
"updateBookingVersionAtTimestamp": ""
}'
import http.client
conn = http.client.HTTPSConnection("example.com")
payload = "{\n \"bookingContact\": {\n \"email\": \"\",\n \"firstName\": \"\",\n \"lastName\": \"\"\n },\n \"updateBookingVersionAtTimestamp\": \"\"\n}"
headers = { 'content-type': "application/json" }
conn.request("PUT", "/baseUrl/bookings/:bookingId/booking-contact", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
import requests
url = "{{baseUrl}}/bookings/:bookingId/booking-contact"
payload = {
"bookingContact": {
"email": "",
"firstName": "",
"lastName": ""
},
"updateBookingVersionAtTimestamp": ""
}
headers = {"content-type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.json())
library(httr)
url <- "{{baseUrl}}/bookings/:bookingId/booking-contact"
payload <- "{\n \"bookingContact\": {\n \"email\": \"\",\n \"firstName\": \"\",\n \"lastName\": \"\"\n },\n \"updateBookingVersionAtTimestamp\": \"\"\n}"
encode <- "json"
response <- VERB("PUT", url, body = payload, content_type("application/json"), encode = encode)
content(response, "text")
require 'uri'
require 'net/http'
url = URI("{{baseUrl}}/bookings/:bookingId/booking-contact")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["content-type"] = 'application/json'
request.body = "{\n \"bookingContact\": {\n \"email\": \"\",\n \"firstName\": \"\",\n \"lastName\": \"\"\n },\n \"updateBookingVersionAtTimestamp\": \"\"\n}"
response = http.request(request)
puts response.read_body
require 'faraday'
conn = Faraday.new(
url: 'https://example.com',
headers: {'Content-Type' => 'application/json'}
)
response = conn.put('/baseUrl/bookings/:bookingId/booking-contact') do |req|
req.body = "{\n \"bookingContact\": {\n \"email\": \"\",\n \"firstName\": \"\",\n \"lastName\": \"\"\n },\n \"updateBookingVersionAtTimestamp\": \"\"\n}"
end
puts response.status
puts response.body
use std::str::FromStr;
use serde_json::json;
use reqwest;
#[tokio::main]
pub async fn main() {
let url = "{{baseUrl}}/bookings/:bookingId/booking-contact";
let payload = json!({
"bookingContact": json!({
"email": "",
"firstName": "",
"lastName": ""
}),
"updateBookingVersionAtTimestamp": ""
});
let mut headers = reqwest::header::HeaderMap::new();
headers.insert("content-type", "application/json".parse().unwrap());
let client = reqwest::Client::new();
let response = client.request(reqwest::Method::from_str("PUT").unwrap(), url)
.headers(headers)
.json(&payload)
.send()
.await;
let results = response.unwrap()
.json::()
.await
.unwrap();
dbg!(results);
}
curl --request PUT \
--url {{baseUrl}}/bookings/:bookingId/booking-contact \
--header 'content-type: application/json' \
--data '{
"bookingContact": {
"email": "",
"firstName": "",
"lastName": ""
},
"updateBookingVersionAtTimestamp": ""
}'
echo '{
"bookingContact": {
"email": "",
"firstName": "",
"lastName": ""
},
"updateBookingVersionAtTimestamp": ""
}' | \
http PUT {{baseUrl}}/bookings/:bookingId/booking-contact \
content-type:application/json
wget --quiet \
--method PUT \
--header 'content-type: application/json' \
--body-data '{\n "bookingContact": {\n "email": "",\n "firstName": "",\n "lastName": ""\n },\n "updateBookingVersionAtTimestamp": ""\n}' \
--output-document \
- {{baseUrl}}/bookings/:bookingId/booking-contact
import Foundation
let headers = ["content-type": "application/json"]
let parameters = [
"bookingContact": [
"email": "",
"firstName": "",
"lastName": ""
],
"updateBookingVersionAtTimestamp": ""
] as [String : Any]
let postData = JSONSerialization.data(withJSONObject: parameters, options: [])
let request = NSMutableURLRequest(url: NSURL(string: "{{baseUrl}}/bookings/:bookingId/booking-contact")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "PUT"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"bookedRooms": [
{
"adults": 1,
"notes": {
"fromGuest": "Please add an extra bed to this room",
"fromSeller": ""
},
"rate": {
"cancellationPolicies": [
{
"end": "2020-12-17 23:59:59.999",
"fee": {
"count": 100,
"price": {
"amount": 9500,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after October 19, 2021 00:00",
"start": "2020-12-15 23:59:59.999"
}
],
"components": [
{
"formatted": "Breakfast",
"includedInRate": true,
"type": "BREAKFAST"
}
],
"end": "2021-11-23",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "i8fIZ277SPDq4UohuxAft5Sr29UhMvyc0VypRxLiRFLoTk0XHmEbgSQ",
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 9500,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 9.5,
"start": "2021-11-20"
},
"roomType": {
"name": "Penthouse Suite",
"roomTypeId": "d5b192ce-c45f-46da-abf5-3880b429b7cc"
},
"sellerToImpalaPayment": {
"amount": 9500,
"currency": {
"code": "EUR"
}
}
}
],
"bookingId": "IM-0199-00000103",
"cancellation": {
"fee": {
"count": 100,
"price": {
"amount": 9500,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
}
},
"contact": {
"contactId": "3c8aa2ff-5e5e-4f23-bcfc-9036ba818a84",
"email": "jocelin.carreon.crespo@example.com",
"firstName": "Jocelín",
"lastName": "Carreón Sample"
},
"createdAt": "2020-10-20T12:38:22Z",
"end": "2020-10-24",
"hotel": {
"address": {
"city": "Impalaland",
"country": "GBR",
"countryName": "United Kingdom",
"line1": "12 Sample Avenue",
"line2": "string",
"postalCode": "12345",
"region": "string"
},
"hotelId": "60a06628-2c71-44bf-9685-efbd2df4179e",
"href": "/v1/hotels/60a06628-2c71-44bf-9685-efbd2df4179e",
"images": [
{
"altText": "A photo of an object",
"height": 4000,
"url": "https://cdn.impala.travel/ckhlsuxbb000b3b666rr9ussq.jpg",
"width": 4000
}
],
"location": {
"latitude": 58.386186,
"longitude": -9.952549
},
"name": "Impala Minimalist Palace",
"starRating": 2.5
},
"hotelConfirmationCode": "04M3995",
"notes": {
"fromGuest": "I am travelling with my family",
"fromSeller": ""
},
"paymentBearerToken": null,
"start": "2020-10-21",
"status": "ACCEPTED",
"updatedAt": "2020-10-22T20:12:33Z"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "VALIDATION_ERROR",
"message": "\"start\" must be in YYYY-MM-DD format. \"foo\" is not allowed. \"lorem\" missing required peer \"ipsum\"",
"validations": [
{
"code": "OBJECT_UNKNOWN",
"message": "\"foo\" is not allowed",
"property": "foo"
},
{
"code": "OBJECT_WITH",
"message": "\"lorem\" missing required peer \"ipsum\"",
"property": "lorem"
}
]
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "Invalid authentication credentials"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "No API key found in request"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "NOT_FOUND",
"message": "Cannot find booking"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "Internal Server Error"
}
PUT
Change a booking
{{baseUrl}}/bookings/:bookingId
QUERY PARAMS
bookingId
Examples
REQUEST
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "PUT");
curl_easy_setopt(hnd, CURLOPT_URL, "{{baseUrl}}/bookings/:bookingId");
CURLcode ret = curl_easy_perform(hnd);
(require '[clj-http.client :as client])
(client/put "{{baseUrl}}/bookings/:bookingId")
require "http/client"
url = "{{baseUrl}}/bookings/:bookingId"
response = HTTP::Client.put url
puts response.body
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Put,
RequestUri = new Uri("{{baseUrl}}/bookings/:bookingId"),
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}
var client = new RestClient("{{baseUrl}}/bookings/:bookingId");
var request = new RestRequest("", Method.Put);
var response = client.Execute(request);
package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "{{baseUrl}}/bookings/:bookingId"
req, _ := http.NewRequest("PUT", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
PUT /baseUrl/bookings/:bookingId HTTP/1.1
Host: example.com
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("PUT", "{{baseUrl}}/bookings/:bookingId")
.execute()
.toCompletableFuture()
.thenAccept(System.out::println)
.join();
client.close();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("{{baseUrl}}/bookings/:bookingId"))
.method("PUT", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("{{baseUrl}}/bookings/:bookingId")
.put(null)
.build();
Response response = client.newCall(request).execute();
HttpResponse response = Unirest.put("{{baseUrl}}/bookings/:bookingId")
.asString();
const data = null;
const xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener('readystatechange', function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open('PUT', '{{baseUrl}}/bookings/:bookingId');
xhr.send(data);
import axios from 'axios';
const options = {method: 'PUT', url: '{{baseUrl}}/bookings/:bookingId'};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const url = '{{baseUrl}}/bookings/:bookingId';
const options = {method: 'PUT'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
const settings = {
async: true,
crossDomain: true,
url: '{{baseUrl}}/bookings/:bookingId',
method: 'PUT',
headers: {}
};
$.ajax(settings).done(function (response) {
console.log(response);
});
val client = OkHttpClient()
val request = Request.Builder()
.url("{{baseUrl}}/bookings/:bookingId")
.put(null)
.build()
val response = client.newCall(request).execute()
const http = require('https');
const options = {
method: 'PUT',
hostname: 'example.com',
port: null,
path: '/baseUrl/bookings/:bookingId',
headers: {}
};
const req = http.request(options, function (res) {
const chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.end();
const request = require('request');
const options = {method: 'PUT', url: '{{baseUrl}}/bookings/:bookingId'};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
const unirest = require('unirest');
const req = unirest('PUT', '{{baseUrl}}/bookings/:bookingId');
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});
const axios = require('axios').default;
const options = {method: 'PUT', url: '{{baseUrl}}/bookings/:bookingId'};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const fetch = require('node-fetch');
const url = '{{baseUrl}}/bookings/:bookingId';
const options = {method: 'PUT'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
#import
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"{{baseUrl}}/bookings/:bookingId"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"PUT"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"%@", httpResponse);
}
}];
[dataTask resume];
open Cohttp_lwt_unix
open Cohttp
open Lwt
let uri = Uri.of_string "{{baseUrl}}/bookings/:bookingId" in
Client.call `PUT uri
>>= fun (res, body_stream) ->
(* Do stuff with the result *)
"{{baseUrl}}/bookings/:bookingId",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => "",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
request('PUT', '{{baseUrl}}/bookings/:bookingId');
echo $response->getBody();
setUrl('{{baseUrl}}/bookings/:bookingId');
$request->setMethod(HTTP_METH_PUT);
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
setRequestUrl('{{baseUrl}}/bookings/:bookingId');
$request->setRequestMethod('PUT');
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$response = Invoke-WebRequest -Uri '{{baseUrl}}/bookings/:bookingId' -Method PUT
$response = Invoke-RestMethod -Uri '{{baseUrl}}/bookings/:bookingId' -Method PUT
import http.client
conn = http.client.HTTPSConnection("example.com")
payload = ""
conn.request("PUT", "/baseUrl/bookings/:bookingId", payload)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
import requests
url = "{{baseUrl}}/bookings/:bookingId"
payload = ""
response = requests.put(url, data=payload)
print(response.json())
library(httr)
url <- "{{baseUrl}}/bookings/:bookingId"
payload <- ""
response <- VERB("PUT", url, body = payload, content_type(""))
content(response, "text")
require 'uri'
require 'net/http'
url = URI("{{baseUrl}}/bookings/:bookingId")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
response = http.request(request)
puts response.read_body
require 'faraday'
conn = Faraday.new(
url: 'https://example.com',
)
response = conn.put('/baseUrl/bookings/:bookingId') do |req|
end
puts response.status
puts response.body
use std::str::FromStr;
use reqwest;
#[tokio::main]
pub async fn main() {
let url = "{{baseUrl}}/bookings/:bookingId";
let client = reqwest::Client::new();
let response = client.request(reqwest::Method::from_str("PUT").unwrap(), url)
.send()
.await;
let results = response.unwrap()
.json::()
.await
.unwrap();
dbg!(results);
}
curl --request PUT \
--url {{baseUrl}}/bookings/:bookingId
http PUT {{baseUrl}}/bookings/:bookingId
wget --quiet \
--method PUT \
--output-document \
- {{baseUrl}}/bookings/:bookingId
import Foundation
let request = NSMutableURLRequest(url: NSURL(string: "{{baseUrl}}/bookings/:bookingId")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "PUT"
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"bookedRooms": [
{
"adults": 1,
"notes": {
"fromGuest": "Please add an extra bed to this room",
"fromSeller": ""
},
"rate": {
"cancellationPolicies": [
{
"end": "2020-12-17 23:59:59.999",
"fee": {
"count": 100,
"price": {
"amount": 9500,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after October 19, 2021 00:00",
"start": "2020-12-15 23:59:59.999"
}
],
"components": [
{
"formatted": "Breakfast",
"includedInRate": true,
"type": "BREAKFAST"
}
],
"end": "2021-11-23",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "i8fIZ277SPDq4UohuxAft5Sr29UhMvyc0VypRxLiRFLoTk0XHmEbgSQ",
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 9500,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 9.5,
"start": "2021-11-20"
},
"roomType": {
"name": "Penthouse Suite",
"roomTypeId": "d5b192ce-c45f-46da-abf5-3880b429b7cc"
},
"sellerToImpalaPayment": {
"amount": 9500,
"currency": {
"code": "EUR"
}
}
}
],
"bookingId": "IM-0199-00000103",
"cancellation": {
"fee": {
"count": 100,
"price": {
"amount": 9500,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
}
},
"contact": {
"contactId": "3c8aa2ff-5e5e-4f23-bcfc-9036ba818a84",
"email": "jocelin.carreon.crespo@example.com",
"firstName": "Jocelín",
"lastName": "Carreón Sample"
},
"createdAt": "2020-10-20T12:38:22Z",
"end": "2020-10-24",
"hotel": {
"address": {
"city": "Impalaland",
"country": "GBR",
"countryName": "United Kingdom",
"line1": "12 Sample Avenue",
"line2": "string",
"postalCode": "12345",
"region": "string"
},
"hotelId": "60a06628-2c71-44bf-9685-efbd2df4179e",
"href": "/v1/hotels/60a06628-2c71-44bf-9685-efbd2df4179e",
"images": [
{
"altText": "A photo of an object",
"height": 4000,
"url": "https://cdn.impala.travel/ckhlsuxbb000b3b666rr9ussq.jpg",
"width": 4000
}
],
"location": {
"latitude": 58.386186,
"longitude": -9.952549
},
"name": "Impala Minimalist Palace",
"starRating": 2.5
},
"hotelConfirmationCode": "04M3995",
"notes": {
"fromGuest": "I am travelling with my family",
"fromSeller": ""
},
"paymentBearerToken": null,
"start": "2020-10-21",
"status": "ACCEPTED",
"updatedAt": "2020-10-22T20:12:33Z"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "BAD_REQUEST",
"message": "There must be rate for each different day of the stay."
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "BAD_REQUEST",
"message": "Incorrect rate id provided. 47vP4lpKjW1giRX3ns6PSfoDwhccLqdzvRdMNNmCiaGaWK1DuFUm2qDvq is not a valid rate id"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "BAD_REQUEST",
"message": "Cannot change a booking requires guest payment"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "BAD_REQUEST",
"message": "The requested guest count exceeds the maximum occupancy for one or more rooms"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "VALIDATION_ERROR",
"message": "\"start\" must be in YYYY-MM-DD format. \"foo\" is not allowed. \"lorem\" missing required peer \"ipsum\"",
"validations": [
{
"code": "DATE_FORMAT",
"message": "\"start\" must be in YYYY-MM-DD format",
"property": "start"
},
{
"code": "OBJECT_UNKNOWN",
"message": "\"foo\" is not allowed",
"property": "foo"
},
{
"code": "OBJECT_WITH",
"message": "\"lorem\" missing required peer \"ipsum\"",
"property": "lorem"
}
]
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "Invalid authentication credentials"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "No API key found in request"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "NOT_FOUND",
"message": "Cannot find booking"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "Internal Server Error"
}
POST
Create a booking
{{baseUrl}}/bookings
BODY json
{
"bookingContact": "",
"end": "",
"notes": {
"fromGuest": "",
"fromSeller": ""
},
"paymentType": "",
"rooms": [
{
"adults": "",
"notes": {
"fromGuest": "",
"fromSeller": ""
},
"rateId": ""
}
],
"start": ""
}
Examples
REQUEST
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_URL, "{{baseUrl}}/bookings");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "content-type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\n \"bookingContact\": \"\",\n \"end\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"paymentType\": \"\",\n \"rooms\": [\n {\n \"adults\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"rateId\": \"\"\n }\n ],\n \"start\": \"\"\n}");
CURLcode ret = curl_easy_perform(hnd);
(require '[clj-http.client :as client])
(client/post "{{baseUrl}}/bookings" {:content-type :json
:form-params {:bookingContact ""
:end ""
:notes {:fromGuest ""
:fromSeller ""}
:paymentType ""
:rooms [{:adults ""
:notes {:fromGuest ""
:fromSeller ""}
:rateId ""}]
:start ""}})
require "http/client"
url = "{{baseUrl}}/bookings"
headers = HTTP::Headers{
"content-type" => "application/json"
}
reqBody = "{\n \"bookingContact\": \"\",\n \"end\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"paymentType\": \"\",\n \"rooms\": [\n {\n \"adults\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"rateId\": \"\"\n }\n ],\n \"start\": \"\"\n}"
response = HTTP::Client.post url, headers: headers, body: reqBody
puts response.body
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("{{baseUrl}}/bookings"),
Content = new StringContent("{\n \"bookingContact\": \"\",\n \"end\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"paymentType\": \"\",\n \"rooms\": [\n {\n \"adults\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"rateId\": \"\"\n }\n ],\n \"start\": \"\"\n}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}
var client = new RestClient("{{baseUrl}}/bookings");
var request = new RestRequest("", Method.Post);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\n \"bookingContact\": \"\",\n \"end\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"paymentType\": \"\",\n \"rooms\": [\n {\n \"adults\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"rateId\": \"\"\n }\n ],\n \"start\": \"\"\n}", ParameterType.RequestBody);
var response = client.Execute(request);
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "{{baseUrl}}/bookings"
payload := strings.NewReader("{\n \"bookingContact\": \"\",\n \"end\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"paymentType\": \"\",\n \"rooms\": [\n {\n \"adults\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"rateId\": \"\"\n }\n ],\n \"start\": \"\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
POST /baseUrl/bookings HTTP/1.1
Content-Type: application/json
Host: example.com
Content-Length: 280
{
"bookingContact": "",
"end": "",
"notes": {
"fromGuest": "",
"fromSeller": ""
},
"paymentType": "",
"rooms": [
{
"adults": "",
"notes": {
"fromGuest": "",
"fromSeller": ""
},
"rateId": ""
}
],
"start": ""
}
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("POST", "{{baseUrl}}/bookings")
.setHeader("content-type", "application/json")
.setBody("{\n \"bookingContact\": \"\",\n \"end\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"paymentType\": \"\",\n \"rooms\": [\n {\n \"adults\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"rateId\": \"\"\n }\n ],\n \"start\": \"\"\n}")
.execute()
.toCompletableFuture()
.thenAccept(System.out::println)
.join();
client.close();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("{{baseUrl}}/bookings"))
.header("content-type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("{\n \"bookingContact\": \"\",\n \"end\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"paymentType\": \"\",\n \"rooms\": [\n {\n \"adults\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"rateId\": \"\"\n }\n ],\n \"start\": \"\"\n}"))
.build();
HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"bookingContact\": \"\",\n \"end\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"paymentType\": \"\",\n \"rooms\": [\n {\n \"adults\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"rateId\": \"\"\n }\n ],\n \"start\": \"\"\n}");
Request request = new Request.Builder()
.url("{{baseUrl}}/bookings")
.post(body)
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();
HttpResponse response = Unirest.post("{{baseUrl}}/bookings")
.header("content-type", "application/json")
.body("{\n \"bookingContact\": \"\",\n \"end\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"paymentType\": \"\",\n \"rooms\": [\n {\n \"adults\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"rateId\": \"\"\n }\n ],\n \"start\": \"\"\n}")
.asString();
const data = JSON.stringify({
bookingContact: '',
end: '',
notes: {
fromGuest: '',
fromSeller: ''
},
paymentType: '',
rooms: [
{
adults: '',
notes: {
fromGuest: '',
fromSeller: ''
},
rateId: ''
}
],
start: ''
});
const xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener('readystatechange', function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open('POST', '{{baseUrl}}/bookings');
xhr.setRequestHeader('content-type', 'application/json');
xhr.send(data);
import axios from 'axios';
const options = {
method: 'POST',
url: '{{baseUrl}}/bookings',
headers: {'content-type': 'application/json'},
data: {
bookingContact: '',
end: '',
notes: {fromGuest: '', fromSeller: ''},
paymentType: '',
rooms: [{adults: '', notes: {fromGuest: '', fromSeller: ''}, rateId: ''}],
start: ''
}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const url = '{{baseUrl}}/bookings';
const options = {
method: 'POST',
headers: {'content-type': 'application/json'},
body: '{"bookingContact":"","end":"","notes":{"fromGuest":"","fromSeller":""},"paymentType":"","rooms":[{"adults":"","notes":{"fromGuest":"","fromSeller":""},"rateId":""}],"start":""}'
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
const settings = {
async: true,
crossDomain: true,
url: '{{baseUrl}}/bookings',
method: 'POST',
headers: {
'content-type': 'application/json'
},
processData: false,
data: '{\n "bookingContact": "",\n "end": "",\n "notes": {\n "fromGuest": "",\n "fromSeller": ""\n },\n "paymentType": "",\n "rooms": [\n {\n "adults": "",\n "notes": {\n "fromGuest": "",\n "fromSeller": ""\n },\n "rateId": ""\n }\n ],\n "start": ""\n}'
};
$.ajax(settings).done(function (response) {
console.log(response);
});
val client = OkHttpClient()
val mediaType = MediaType.parse("application/json")
val body = RequestBody.create(mediaType, "{\n \"bookingContact\": \"\",\n \"end\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"paymentType\": \"\",\n \"rooms\": [\n {\n \"adults\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"rateId\": \"\"\n }\n ],\n \"start\": \"\"\n}")
val request = Request.Builder()
.url("{{baseUrl}}/bookings")
.post(body)
.addHeader("content-type", "application/json")
.build()
val response = client.newCall(request).execute()
const http = require('https');
const options = {
method: 'POST',
hostname: 'example.com',
port: null,
path: '/baseUrl/bookings',
headers: {
'content-type': 'application/json'
}
};
const req = http.request(options, function (res) {
const chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.write(JSON.stringify({
bookingContact: '',
end: '',
notes: {fromGuest: '', fromSeller: ''},
paymentType: '',
rooms: [{adults: '', notes: {fromGuest: '', fromSeller: ''}, rateId: ''}],
start: ''
}));
req.end();
const request = require('request');
const options = {
method: 'POST',
url: '{{baseUrl}}/bookings',
headers: {'content-type': 'application/json'},
body: {
bookingContact: '',
end: '',
notes: {fromGuest: '', fromSeller: ''},
paymentType: '',
rooms: [{adults: '', notes: {fromGuest: '', fromSeller: ''}, rateId: ''}],
start: ''
},
json: true
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
const unirest = require('unirest');
const req = unirest('POST', '{{baseUrl}}/bookings');
req.headers({
'content-type': 'application/json'
});
req.type('json');
req.send({
bookingContact: '',
end: '',
notes: {
fromGuest: '',
fromSeller: ''
},
paymentType: '',
rooms: [
{
adults: '',
notes: {
fromGuest: '',
fromSeller: ''
},
rateId: ''
}
],
start: ''
});
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});
const axios = require('axios').default;
const options = {
method: 'POST',
url: '{{baseUrl}}/bookings',
headers: {'content-type': 'application/json'},
data: {
bookingContact: '',
end: '',
notes: {fromGuest: '', fromSeller: ''},
paymentType: '',
rooms: [{adults: '', notes: {fromGuest: '', fromSeller: ''}, rateId: ''}],
start: ''
}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const fetch = require('node-fetch');
const url = '{{baseUrl}}/bookings';
const options = {
method: 'POST',
headers: {'content-type': 'application/json'},
body: '{"bookingContact":"","end":"","notes":{"fromGuest":"","fromSeller":""},"paymentType":"","rooms":[{"adults":"","notes":{"fromGuest":"","fromSeller":""},"rateId":""}],"start":""}'
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
#import
NSDictionary *headers = @{ @"content-type": @"application/json" };
NSDictionary *parameters = @{ @"bookingContact": @"",
@"end": @"",
@"notes": @{ @"fromGuest": @"", @"fromSeller": @"" },
@"paymentType": @"",
@"rooms": @[ @{ @"adults": @"", @"notes": @{ @"fromGuest": @"", @"fromSeller": @"" }, @"rateId": @"" } ],
@"start": @"" };
NSData *postData = [NSJSONSerialization dataWithJSONObject:parameters options:0 error:nil];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"{{baseUrl}}/bookings"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"POST"];
[request setAllHTTPHeaderFields:headers];
[request setHTTPBody:postData];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"%@", httpResponse);
}
}];
[dataTask resume];
open Cohttp_lwt_unix
open Cohttp
open Lwt
let uri = Uri.of_string "{{baseUrl}}/bookings" in
let headers = Header.add (Header.init ()) "content-type" "application/json" in
let body = Cohttp_lwt_body.of_string "{\n \"bookingContact\": \"\",\n \"end\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"paymentType\": \"\",\n \"rooms\": [\n {\n \"adults\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"rateId\": \"\"\n }\n ],\n \"start\": \"\"\n}" in
Client.call ~headers ~body `POST uri
>>= fun (res, body_stream) ->
(* Do stuff with the result *)
"{{baseUrl}}/bookings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'bookingContact' => '',
'end' => '',
'notes' => [
'fromGuest' => '',
'fromSeller' => ''
],
'paymentType' => '',
'rooms' => [
[
'adults' => '',
'notes' => [
'fromGuest' => '',
'fromSeller' => ''
],
'rateId' => ''
]
],
'start' => ''
]),
CURLOPT_HTTPHEADER => [
"content-type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
request('POST', '{{baseUrl}}/bookings', [
'body' => '{
"bookingContact": "",
"end": "",
"notes": {
"fromGuest": "",
"fromSeller": ""
},
"paymentType": "",
"rooms": [
{
"adults": "",
"notes": {
"fromGuest": "",
"fromSeller": ""
},
"rateId": ""
}
],
"start": ""
}',
'headers' => [
'content-type' => 'application/json',
],
]);
echo $response->getBody();
setUrl('{{baseUrl}}/bookings');
$request->setMethod(HTTP_METH_POST);
$request->setHeaders([
'content-type' => 'application/json'
]);
$request->setContentType('application/json');
$request->setBody(json_encode([
'bookingContact' => '',
'end' => '',
'notes' => [
'fromGuest' => '',
'fromSeller' => ''
],
'paymentType' => '',
'rooms' => [
[
'adults' => '',
'notes' => [
'fromGuest' => '',
'fromSeller' => ''
],
'rateId' => ''
]
],
'start' => ''
]));
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
append(json_encode([
'bookingContact' => '',
'end' => '',
'notes' => [
'fromGuest' => '',
'fromSeller' => ''
],
'paymentType' => '',
'rooms' => [
[
'adults' => '',
'notes' => [
'fromGuest' => '',
'fromSeller' => ''
],
'rateId' => ''
]
],
'start' => ''
]));
$request->setRequestUrl('{{baseUrl}}/bookings');
$request->setRequestMethod('POST');
$request->setBody($body);
$request->setHeaders([
'content-type' => 'application/json'
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers=@{}
$headers.Add("content-type", "application/json")
$response = Invoke-WebRequest -Uri '{{baseUrl}}/bookings' -Method POST -Headers $headers -ContentType 'application/json' -Body '{
"bookingContact": "",
"end": "",
"notes": {
"fromGuest": "",
"fromSeller": ""
},
"paymentType": "",
"rooms": [
{
"adults": "",
"notes": {
"fromGuest": "",
"fromSeller": ""
},
"rateId": ""
}
],
"start": ""
}'
$headers=@{}
$headers.Add("content-type", "application/json")
$response = Invoke-RestMethod -Uri '{{baseUrl}}/bookings' -Method POST -Headers $headers -ContentType 'application/json' -Body '{
"bookingContact": "",
"end": "",
"notes": {
"fromGuest": "",
"fromSeller": ""
},
"paymentType": "",
"rooms": [
{
"adults": "",
"notes": {
"fromGuest": "",
"fromSeller": ""
},
"rateId": ""
}
],
"start": ""
}'
import http.client
conn = http.client.HTTPSConnection("example.com")
payload = "{\n \"bookingContact\": \"\",\n \"end\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"paymentType\": \"\",\n \"rooms\": [\n {\n \"adults\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"rateId\": \"\"\n }\n ],\n \"start\": \"\"\n}"
headers = { 'content-type': "application/json" }
conn.request("POST", "/baseUrl/bookings", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
import requests
url = "{{baseUrl}}/bookings"
payload = {
"bookingContact": "",
"end": "",
"notes": {
"fromGuest": "",
"fromSeller": ""
},
"paymentType": "",
"rooms": [
{
"adults": "",
"notes": {
"fromGuest": "",
"fromSeller": ""
},
"rateId": ""
}
],
"start": ""
}
headers = {"content-type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
library(httr)
url <- "{{baseUrl}}/bookings"
payload <- "{\n \"bookingContact\": \"\",\n \"end\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"paymentType\": \"\",\n \"rooms\": [\n {\n \"adults\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"rateId\": \"\"\n }\n ],\n \"start\": \"\"\n}"
encode <- "json"
response <- VERB("POST", url, body = payload, content_type("application/json"), encode = encode)
content(response, "text")
require 'uri'
require 'net/http'
url = URI("{{baseUrl}}/bookings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request.body = "{\n \"bookingContact\": \"\",\n \"end\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"paymentType\": \"\",\n \"rooms\": [\n {\n \"adults\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"rateId\": \"\"\n }\n ],\n \"start\": \"\"\n}"
response = http.request(request)
puts response.read_body
require 'faraday'
conn = Faraday.new(
url: 'https://example.com',
headers: {'Content-Type' => 'application/json'}
)
response = conn.post('/baseUrl/bookings') do |req|
req.body = "{\n \"bookingContact\": \"\",\n \"end\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"paymentType\": \"\",\n \"rooms\": [\n {\n \"adults\": \"\",\n \"notes\": {\n \"fromGuest\": \"\",\n \"fromSeller\": \"\"\n },\n \"rateId\": \"\"\n }\n ],\n \"start\": \"\"\n}"
end
puts response.status
puts response.body
use serde_json::json;
use reqwest;
#[tokio::main]
pub async fn main() {
let url = "{{baseUrl}}/bookings";
let payload = json!({
"bookingContact": "",
"end": "",
"notes": json!({
"fromGuest": "",
"fromSeller": ""
}),
"paymentType": "",
"rooms": (
json!({
"adults": "",
"notes": json!({
"fromGuest": "",
"fromSeller": ""
}),
"rateId": ""
})
),
"start": ""
});
let mut headers = reqwest::header::HeaderMap::new();
headers.insert("content-type", "application/json".parse().unwrap());
let client = reqwest::Client::new();
let response = client.post(url)
.headers(headers)
.json(&payload)
.send()
.await;
let results = response.unwrap()
.json::()
.await
.unwrap();
dbg!(results);
}
curl --request POST \
--url {{baseUrl}}/bookings \
--header 'content-type: application/json' \
--data '{
"bookingContact": "",
"end": "",
"notes": {
"fromGuest": "",
"fromSeller": ""
},
"paymentType": "",
"rooms": [
{
"adults": "",
"notes": {
"fromGuest": "",
"fromSeller": ""
},
"rateId": ""
}
],
"start": ""
}'
echo '{
"bookingContact": "",
"end": "",
"notes": {
"fromGuest": "",
"fromSeller": ""
},
"paymentType": "",
"rooms": [
{
"adults": "",
"notes": {
"fromGuest": "",
"fromSeller": ""
},
"rateId": ""
}
],
"start": ""
}' | \
http POST {{baseUrl}}/bookings \
content-type:application/json
wget --quiet \
--method POST \
--header 'content-type: application/json' \
--body-data '{\n "bookingContact": "",\n "end": "",\n "notes": {\n "fromGuest": "",\n "fromSeller": ""\n },\n "paymentType": "",\n "rooms": [\n {\n "adults": "",\n "notes": {\n "fromGuest": "",\n "fromSeller": ""\n },\n "rateId": ""\n }\n ],\n "start": ""\n}' \
--output-document \
- {{baseUrl}}/bookings
import Foundation
let headers = ["content-type": "application/json"]
let parameters = [
"bookingContact": "",
"end": "",
"notes": [
"fromGuest": "",
"fromSeller": ""
],
"paymentType": "",
"rooms": [
[
"adults": "",
"notes": [
"fromGuest": "",
"fromSeller": ""
],
"rateId": ""
]
],
"start": ""
] as [String : Any]
let postData = JSONSerialization.data(withJSONObject: parameters, options: [])
let request = NSMutableURLRequest(url: NSURL(string: "{{baseUrl}}/bookings")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"bookedRooms": [
{
"adults": 1,
"notes": {
"fromGuest": "Please add an extra bed to this room",
"fromSeller": ""
},
"rate": {
"cancellationPolicies": [
{
"end": "2020-12-17 23:59:59.999",
"fee": {
"count": 100,
"price": {
"amount": 9500,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after October 19, 2021 00:00",
"start": "2020-12-15 23:59:59.999"
}
],
"components": [
{
"formatted": "Breakfast",
"includedInRate": true,
"type": "BREAKFAST"
}
],
"end": "2021-11-23",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "i8fIZ277SPDq4UohuxAft5Sr29UhMvyc0VypRxLiRFLoTk0XHmEbgSQ",
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 9500,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 9.5,
"start": "2021-11-20"
},
"roomType": {
"name": "Penthouse Suite",
"roomTypeId": "d5b192ce-c45f-46da-abf5-3880b429b7cc"
},
"sellerToImpalaPayment": {
"amount": 9500,
"currency": {
"code": "EUR"
}
}
}
],
"bookingId": "IM-0199-00000103",
"cancellation": {
"fee": {
"count": 100,
"price": {
"amount": 9500,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
}
},
"contact": {
"contactId": "3c8aa2ff-5e5e-4f23-bcfc-9036ba818a84",
"email": "jocelin.carreon.crespo@example.com",
"firstName": "Jocelín",
"lastName": "Carreón Sample"
},
"createdAt": "2020-10-20T12:38:22Z",
"end": "2020-10-24",
"hotel": {
"address": {
"city": "Impalaland",
"country": "GBR",
"countryName": "United Kingdom",
"line1": "12 Sample Avenue",
"line2": "string",
"postalCode": "12345",
"region": "string"
},
"hotelId": "60a06628-2c71-44bf-9685-efbd2df4179e",
"href": "/v1/hotels/60a06628-2c71-44bf-9685-efbd2df4179e",
"images": [
{
"altText": "A photo of an object",
"height": 4000,
"url": "https://cdn.impala.travel/ckhlsuxbb000b3b666rr9ussq.jpg",
"width": 4000
}
],
"location": {
"latitude": 58.386186,
"longitude": -9.952549
},
"name": "Impala Minimalist Palace",
"starRating": 2.5
},
"hotelConfirmationCode": "04M3995",
"notes": {
"fromGuest": "I am travelling with my family",
"fromSeller": ""
},
"paymentBearerToken": "xxxxx.yyyyy.zzzzz",
"start": "2020-10-21",
"status": "ACCEPTED",
"updatedAt": "2020-10-22T20:12:33Z"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"bookedRooms": [
{
"adults": 1,
"notes": {
"fromGuest": "Please add an extra bed to this room",
"fromSeller": ""
},
"rate": {
"cancellationPolicies": [
{
"end": "2020-12-17 23:59:59.999",
"fee": {
"count": 100,
"price": {
"amount": 9500,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after October 19, 2021 00:00",
"start": "2020-12-15 23:59:59.999"
}
],
"components": [
{
"formatted": "Breakfast",
"includedInRate": true,
"type": "BREAKFAST"
}
],
"end": "2021-11-23",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "i8fIZ277SPDq4UohuxAft5Sr29UhMvyc0VypRxLiRFLoTk0XHmEbgSQ",
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 9500,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 9.5,
"start": "2021-11-20"
},
"roomType": {
"name": "Penthouse Suite",
"roomTypeId": "d5b192ce-c45f-46da-abf5-3880b429b7cc"
},
"sellerToImpalaPayment": {
"amount": 9500,
"currency": {
"code": "EUR"
}
}
}
],
"bookingId": "IM-0199-00000103",
"cancellation": {
"fee": {
"count": 100,
"price": {
"amount": 9500,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
}
},
"contact": {
"contactId": "3c8aa2ff-5e5e-4f23-bcfc-9036ba818a84",
"email": "jocelin.carreon.crespo@example.com",
"firstName": "Jocelín",
"lastName": "Carreón Sample"
},
"createdAt": "2020-10-20T12:38:22Z",
"end": "2020-10-24",
"hotel": {
"address": {
"city": "Impalaland",
"country": "GBR",
"countryName": "United Kingdom",
"line1": "12 Sample Avenue",
"line2": "string",
"postalCode": "12345",
"region": "string"
},
"hotelId": "60a06628-2c71-44bf-9685-efbd2df4179e",
"href": "/v1/hotels/60a06628-2c71-44bf-9685-efbd2df4179e",
"images": [
{
"altText": "A photo of an object",
"height": 4000,
"url": "https://cdn.impala.travel/ckhlsuxbb000b3b666rr9ussq.jpg",
"width": 4000
}
],
"location": {
"latitude": 58.386186,
"longitude": -9.952549
},
"name": "Impala Minimalist Palace",
"starRating": 2.5
},
"hotelConfirmationCode": "04M3995",
"notes": {
"fromGuest": "I am travelling with my family",
"fromSeller": ""
},
"paymentBearerToken": null,
"start": "2020-10-21",
"status": "ACCEPTED",
"updatedAt": "2020-10-22T20:12:33Z"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "BAD_REQUEST",
"message": "There must be rate for each different day of the stay."
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "BAD_REQUEST",
"message": "Incorrect rate id provided. 47vP4lpKjW1giRX3ns6PSfoDwhccLqdzvRdMNNmCiaGaWK1DuFUm2qDvq is not a valid rate id"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "BAD_REQUEST",
"message": "No allocations remaining for dealId 'D123456'"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "BAD_REQUEST",
"message": "The requested guest count exceeds the maximum occupancy for one or more rooms"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "VALIDATION_ERROR",
"message": "\"start\" must be in YYYY-MM-DD format. \"foo\" is not allowed. \"lorem\" missing required peer \"ipsum\"",
"validations": [
{
"code": "DATE_FORMAT",
"message": "\"start\" must be in YYYY-MM-DD format",
"property": "start"
},
{
"code": "OBJECT_UNKNOWN",
"message": "\"foo\" is not allowed",
"property": "foo"
},
{
"code": "OBJECT_WITH",
"message": "\"lorem\" missing required peer \"ipsum\"",
"property": "lorem"
}
]
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "Invalid authentication credentials"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "No API key found in request"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "ERROR_CODE",
"message": "Resource not found"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "Internal Server Error"
}
GET
List all bookings
{{baseUrl}}/bookings
Examples
REQUEST
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "{{baseUrl}}/bookings");
CURLcode ret = curl_easy_perform(hnd);
(require '[clj-http.client :as client])
(client/get "{{baseUrl}}/bookings")
require "http/client"
url = "{{baseUrl}}/bookings"
response = HTTP::Client.get url
puts response.body
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("{{baseUrl}}/bookings"),
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}
var client = new RestClient("{{baseUrl}}/bookings");
var request = new RestRequest("", Method.Get);
var response = client.Execute(request);
package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "{{baseUrl}}/bookings"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
GET /baseUrl/bookings HTTP/1.1
Host: example.com
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("GET", "{{baseUrl}}/bookings")
.execute()
.toCompletableFuture()
.thenAccept(System.out::println)
.join();
client.close();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("{{baseUrl}}/bookings"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("{{baseUrl}}/bookings")
.get()
.build();
Response response = client.newCall(request).execute();
HttpResponse response = Unirest.get("{{baseUrl}}/bookings")
.asString();
const data = null;
const xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener('readystatechange', function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open('GET', '{{baseUrl}}/bookings');
xhr.send(data);
import axios from 'axios';
const options = {method: 'GET', url: '{{baseUrl}}/bookings'};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const url = '{{baseUrl}}/bookings';
const options = {method: 'GET'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
const settings = {
async: true,
crossDomain: true,
url: '{{baseUrl}}/bookings',
method: 'GET',
headers: {}
};
$.ajax(settings).done(function (response) {
console.log(response);
});
val client = OkHttpClient()
val request = Request.Builder()
.url("{{baseUrl}}/bookings")
.get()
.build()
val response = client.newCall(request).execute()
const http = require('https');
const options = {
method: 'GET',
hostname: 'example.com',
port: null,
path: '/baseUrl/bookings',
headers: {}
};
const req = http.request(options, function (res) {
const chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.end();
const request = require('request');
const options = {method: 'GET', url: '{{baseUrl}}/bookings'};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
const unirest = require('unirest');
const req = unirest('GET', '{{baseUrl}}/bookings');
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});
const axios = require('axios').default;
const options = {method: 'GET', url: '{{baseUrl}}/bookings'};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const fetch = require('node-fetch');
const url = '{{baseUrl}}/bookings';
const options = {method: 'GET'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
#import
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"{{baseUrl}}/bookings"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"%@", httpResponse);
}
}];
[dataTask resume];
open Cohttp_lwt_unix
open Cohttp
open Lwt
let uri = Uri.of_string "{{baseUrl}}/bookings" in
Client.call `GET uri
>>= fun (res, body_stream) ->
(* Do stuff with the result *)
"{{baseUrl}}/bookings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
request('GET', '{{baseUrl}}/bookings');
echo $response->getBody();
setUrl('{{baseUrl}}/bookings');
$request->setMethod(HTTP_METH_GET);
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
setRequestUrl('{{baseUrl}}/bookings');
$request->setRequestMethod('GET');
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$response = Invoke-WebRequest -Uri '{{baseUrl}}/bookings' -Method GET
$response = Invoke-RestMethod -Uri '{{baseUrl}}/bookings' -Method GET
import http.client
conn = http.client.HTTPSConnection("example.com")
conn.request("GET", "/baseUrl/bookings")
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
import requests
url = "{{baseUrl}}/bookings"
response = requests.get(url)
print(response.json())
library(httr)
url <- "{{baseUrl}}/bookings"
response <- VERB("GET", url, content_type("application/octet-stream"))
content(response, "text")
require 'uri'
require 'net/http'
url = URI("{{baseUrl}}/bookings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
require 'faraday'
conn = Faraday.new(
url: 'https://example.com',
)
response = conn.get('/baseUrl/bookings') do |req|
end
puts response.status
puts response.body
use reqwest;
#[tokio::main]
pub async fn main() {
let url = "{{baseUrl}}/bookings";
let client = reqwest::Client::new();
let response = client.get(url)
.send()
.await;
let results = response.unwrap()
.json::()
.await
.unwrap();
dbg!(results);
}
curl --request GET \
--url {{baseUrl}}/bookings
http GET {{baseUrl}}/bookings
wget --quiet \
--method GET \
--output-document \
- {{baseUrl}}/bookings
import Foundation
let request = NSMutableURLRequest(url: NSURL(string: "{{baseUrl}}/bookings")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "GET"
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"data": [
{
"bookedRooms": [
{
"adults": 1,
"cancellationPolicies": [
{
"end": "2020-12-17 23:59:59.999",
"fee": {
"count": 100,
"price": {
"amount": 9500,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after October 19, 2021 00:00",
"start": "2020-12-15 23:59:59.999"
}
],
"notes": {
"fromGuest": "Please add an extra bed to this room",
"fromSeller": ""
},
"rate": {
"cancellationPolicies": [
{
"end": "2020-12-17 23:59:59.999",
"fee": {
"count": 100,
"price": {
"amount": 9500,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after October 19, 2021 00:00",
"start": "2020-12-15 23:59:59.999"
}
],
"components": [
{
"formatted": "Breakfast",
"includedInRate": true,
"type": "BREAKFAST"
}
],
"end": "2021-11-23",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "i8fIZ277SPDq4UohuxAft5Sr29UhMvyc0VypRxLiRFLoTk0XHmEbgSQ",
"retailRate": {
"taxesAndFees": {
"includedInRate": [
{
"category": "VAT",
"charge": {
"amount": 9500,
"currency": {
"code": "EUR"
}
},
"formatted": "10% VAT"
}
],
"payAtHotel": [
{
"category": "VAT",
"charge": {
"amount": 9500,
"currency": {
"code": "EUR"
}
},
"formatted": "10% VAT"
}
]
},
"total": {
"amount": 9500,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 9.5,
"start": "2021-11-20"
},
"roomType": {
"name": "Penthouse Suite",
"roomTypeId": "d5b192ce-c45f-46da-abf5-3880b429b7cc"
},
"sellerToImpalaPayment": {
"amount": 9500,
"currency": {
"code": "EUR"
}
}
}
],
"bookingId": "IM-0199-00000103",
"cancellation": {
"fee": {
"count": 100,
"price": {
"amount": 9500,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
}
},
"contact": {
"contactId": "3c8aa2ff-5e5e-4f23-bcfc-9036ba818a84",
"email": "jocelin.carreon.crespo@example.com",
"firstName": "Jocelín",
"lastName": "Carreón Sample"
},
"createdAt": "2020-10-20T12:38:22Z",
"end": "2020-10-24",
"hotel": {
"address": {
"city": "Impalaland",
"country": "GBR",
"countryName": "United Kingdom",
"line1": "12 Sample Avenue",
"line2": "string",
"postalCode": "12345",
"region": "string"
},
"hotelId": "60a06628-2c71-44bf-9685-efbd2df4179e",
"href": "/v1/hotels/60a06628-2c71-44bf-9685-efbd2df4179e",
"images": [
{
"altText": "A photo of an object",
"height": 4000,
"url": "https://cdn.impala.travel/ckhlsuxbb000b3b666rr9ussq.jpg",
"width": 4000
}
],
"location": {
"latitude": 58.386186,
"longitude": -9.952549
},
"name": "Impala Minimalist Palace",
"starRating": 2.5
},
"hotelConfirmationCode": "04M3995",
"notes": {
"fromGuest": "I am travelling with my family",
"fromSeller": ""
},
"start": "2020-10-21",
"status": "ACCEPTED",
"updatedAt": "2020-10-22T20:12:33Z"
}
],
"pagination": {
"count": 10,
"next": "/v1/hotels?size=20&offset=120",
"prev": "/v1/hotels?size=20&offset=80",
"total": 1500
}
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "VALIDATION_ERROR",
"message": "\"start\" must be in YYYY-MM-DD format. \"foo\" is not allowed. \"lorem\" missing required peer \"ipsum\"",
"validations": [
{
"code": "DATE_FORMAT",
"message": "\"start\" must be in YYYY-MM-DD format",
"property": "start"
},
{
"code": "OBJECT_UNKNOWN",
"message": "\"foo\" is not allowed",
"property": "foo"
},
{
"code": "OBJECT_WITH",
"message": "\"lorem\" missing required peer \"ipsum\"",
"property": "lorem"
}
]
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "Invalid authentication credentials"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "No API key found in request"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "Internal Server Error"
}
GET
Retrieve a booking
{{baseUrl}}/bookings/:bookingId
QUERY PARAMS
bookingId
Examples
REQUEST
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "{{baseUrl}}/bookings/:bookingId");
CURLcode ret = curl_easy_perform(hnd);
(require '[clj-http.client :as client])
(client/get "{{baseUrl}}/bookings/:bookingId")
require "http/client"
url = "{{baseUrl}}/bookings/:bookingId"
response = HTTP::Client.get url
puts response.body
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("{{baseUrl}}/bookings/:bookingId"),
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}
var client = new RestClient("{{baseUrl}}/bookings/:bookingId");
var request = new RestRequest("", Method.Get);
var response = client.Execute(request);
package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "{{baseUrl}}/bookings/:bookingId"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
GET /baseUrl/bookings/:bookingId HTTP/1.1
Host: example.com
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("GET", "{{baseUrl}}/bookings/:bookingId")
.execute()
.toCompletableFuture()
.thenAccept(System.out::println)
.join();
client.close();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("{{baseUrl}}/bookings/:bookingId"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("{{baseUrl}}/bookings/:bookingId")
.get()
.build();
Response response = client.newCall(request).execute();
HttpResponse response = Unirest.get("{{baseUrl}}/bookings/:bookingId")
.asString();
const data = null;
const xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener('readystatechange', function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open('GET', '{{baseUrl}}/bookings/:bookingId');
xhr.send(data);
import axios from 'axios';
const options = {method: 'GET', url: '{{baseUrl}}/bookings/:bookingId'};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const url = '{{baseUrl}}/bookings/:bookingId';
const options = {method: 'GET'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
const settings = {
async: true,
crossDomain: true,
url: '{{baseUrl}}/bookings/:bookingId',
method: 'GET',
headers: {}
};
$.ajax(settings).done(function (response) {
console.log(response);
});
val client = OkHttpClient()
val request = Request.Builder()
.url("{{baseUrl}}/bookings/:bookingId")
.get()
.build()
val response = client.newCall(request).execute()
const http = require('https');
const options = {
method: 'GET',
hostname: 'example.com',
port: null,
path: '/baseUrl/bookings/:bookingId',
headers: {}
};
const req = http.request(options, function (res) {
const chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.end();
const request = require('request');
const options = {method: 'GET', url: '{{baseUrl}}/bookings/:bookingId'};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
const unirest = require('unirest');
const req = unirest('GET', '{{baseUrl}}/bookings/:bookingId');
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});
const axios = require('axios').default;
const options = {method: 'GET', url: '{{baseUrl}}/bookings/:bookingId'};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const fetch = require('node-fetch');
const url = '{{baseUrl}}/bookings/:bookingId';
const options = {method: 'GET'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
#import
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"{{baseUrl}}/bookings/:bookingId"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"%@", httpResponse);
}
}];
[dataTask resume];
open Cohttp_lwt_unix
open Cohttp
open Lwt
let uri = Uri.of_string "{{baseUrl}}/bookings/:bookingId" in
Client.call `GET uri
>>= fun (res, body_stream) ->
(* Do stuff with the result *)
"{{baseUrl}}/bookings/:bookingId",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
request('GET', '{{baseUrl}}/bookings/:bookingId');
echo $response->getBody();
setUrl('{{baseUrl}}/bookings/:bookingId');
$request->setMethod(HTTP_METH_GET);
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
setRequestUrl('{{baseUrl}}/bookings/:bookingId');
$request->setRequestMethod('GET');
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$response = Invoke-WebRequest -Uri '{{baseUrl}}/bookings/:bookingId' -Method GET
$response = Invoke-RestMethod -Uri '{{baseUrl}}/bookings/:bookingId' -Method GET
import http.client
conn = http.client.HTTPSConnection("example.com")
conn.request("GET", "/baseUrl/bookings/:bookingId")
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
import requests
url = "{{baseUrl}}/bookings/:bookingId"
response = requests.get(url)
print(response.json())
library(httr)
url <- "{{baseUrl}}/bookings/:bookingId"
response <- VERB("GET", url, content_type("application/octet-stream"))
content(response, "text")
require 'uri'
require 'net/http'
url = URI("{{baseUrl}}/bookings/:bookingId")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
require 'faraday'
conn = Faraday.new(
url: 'https://example.com',
)
response = conn.get('/baseUrl/bookings/:bookingId') do |req|
end
puts response.status
puts response.body
use reqwest;
#[tokio::main]
pub async fn main() {
let url = "{{baseUrl}}/bookings/:bookingId";
let client = reqwest::Client::new();
let response = client.get(url)
.send()
.await;
let results = response.unwrap()
.json::()
.await
.unwrap();
dbg!(results);
}
curl --request GET \
--url {{baseUrl}}/bookings/:bookingId
http GET {{baseUrl}}/bookings/:bookingId
wget --quiet \
--method GET \
--output-document \
- {{baseUrl}}/bookings/:bookingId
import Foundation
let request = NSMutableURLRequest(url: NSURL(string: "{{baseUrl}}/bookings/:bookingId")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "GET"
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"bookedRooms": [
{
"adults": 1,
"notes": {
"fromGuest": "Please add an extra bed to this room",
"fromSeller": ""
},
"rate": {
"cancellationPolicies": [
{
"end": "2020-12-17 23:59:59.999",
"fee": {
"count": 100,
"price": {
"amount": 9500,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after October 19, 2021 00:00",
"start": "2020-12-15 23:59:59.999"
}
],
"components": [
{
"formatted": "Breakfast",
"includedInRate": true,
"type": "BREAKFAST"
}
],
"end": "2021-11-23",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "i8fIZ277SPDq4UohuxAft5Sr29UhMvyc0VypRxLiRFLoTk0XHmEbgSQ",
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 9500,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 9.5,
"start": "2021-11-20"
},
"roomType": {
"name": "Penthouse Suite",
"roomTypeId": "d5b192ce-c45f-46da-abf5-3880b429b7cc"
},
"sellerToImpalaPayment": {
"amount": 9500,
"currency": {
"code": "EUR"
}
}
}
],
"bookingId": "IM-0199-00000103",
"cancellation": {
"fee": {
"count": 100,
"price": {
"amount": 9500,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
}
},
"contact": {
"contactId": "3c8aa2ff-5e5e-4f23-bcfc-9036ba818a84",
"email": "jocelin.carreon.crespo@example.com",
"firstName": "Jocelín",
"lastName": "Carreón Sample"
},
"createdAt": "2020-10-20T12:38:22Z",
"end": "2020-10-24",
"hotel": {
"address": {
"city": "Impalaland",
"country": "GBR",
"countryName": "United Kingdom",
"line1": "12 Sample Avenue",
"line2": "string",
"postalCode": "12345",
"region": "string"
},
"hotelId": "60a06628-2c71-44bf-9685-efbd2df4179e",
"href": "/v1/hotels/60a06628-2c71-44bf-9685-efbd2df4179e",
"images": [
{
"altText": "A photo of an object",
"height": 4000,
"url": "https://cdn.impala.travel/ckhlsuxbb000b3b666rr9ussq.jpg",
"width": 4000
}
],
"location": {
"latitude": 58.386186,
"longitude": -9.952549
},
"name": "Impala Minimalist Palace",
"starRating": 2.5
},
"hotelConfirmationCode": "04M3995",
"notes": {
"fromGuest": "I am travelling with my family",
"fromSeller": ""
},
"paymentBearerToken": null,
"start": "2020-10-21",
"status": "ACCEPTED",
"updatedAt": "2020-10-22T20:12:33Z"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "VALIDATION_ERROR",
"message": "\"start\" must be in YYYY-MM-DD format. \"foo\" is not allowed. \"lorem\" missing required peer \"ipsum\"",
"validations": [
{
"code": "DATE_FORMAT",
"message": "\"start\" must be in YYYY-MM-DD format",
"property": "start"
},
{
"code": "OBJECT_UNKNOWN",
"message": "\"foo\" is not allowed",
"property": "foo"
},
{
"code": "OBJECT_WITH",
"message": "\"lorem\" missing required peer \"ipsum\"",
"property": "lorem"
}
]
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "Invalid authentication credentials"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "No API key found in request"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "NOT_FOUND",
"message": "Cannot find booking with reference IM-0576-00000000"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "Internal Server Error"
}
GET
List all hotels
{{baseUrl}}/hotels
Examples
REQUEST
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "{{baseUrl}}/hotels");
CURLcode ret = curl_easy_perform(hnd);
(require '[clj-http.client :as client])
(client/get "{{baseUrl}}/hotels")
require "http/client"
url = "{{baseUrl}}/hotels"
response = HTTP::Client.get url
puts response.body
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("{{baseUrl}}/hotels"),
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}
var client = new RestClient("{{baseUrl}}/hotels");
var request = new RestRequest("", Method.Get);
var response = client.Execute(request);
package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "{{baseUrl}}/hotels"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
GET /baseUrl/hotels HTTP/1.1
Host: example.com
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("GET", "{{baseUrl}}/hotels")
.execute()
.toCompletableFuture()
.thenAccept(System.out::println)
.join();
client.close();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("{{baseUrl}}/hotels"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("{{baseUrl}}/hotels")
.get()
.build();
Response response = client.newCall(request).execute();
HttpResponse response = Unirest.get("{{baseUrl}}/hotels")
.asString();
const data = null;
const xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener('readystatechange', function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open('GET', '{{baseUrl}}/hotels');
xhr.send(data);
import axios from 'axios';
const options = {method: 'GET', url: '{{baseUrl}}/hotels'};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const url = '{{baseUrl}}/hotels';
const options = {method: 'GET'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
const settings = {
async: true,
crossDomain: true,
url: '{{baseUrl}}/hotels',
method: 'GET',
headers: {}
};
$.ajax(settings).done(function (response) {
console.log(response);
});
val client = OkHttpClient()
val request = Request.Builder()
.url("{{baseUrl}}/hotels")
.get()
.build()
val response = client.newCall(request).execute()
const http = require('https');
const options = {
method: 'GET',
hostname: 'example.com',
port: null,
path: '/baseUrl/hotels',
headers: {}
};
const req = http.request(options, function (res) {
const chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.end();
const request = require('request');
const options = {method: 'GET', url: '{{baseUrl}}/hotels'};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
const unirest = require('unirest');
const req = unirest('GET', '{{baseUrl}}/hotels');
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});
const axios = require('axios').default;
const options = {method: 'GET', url: '{{baseUrl}}/hotels'};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const fetch = require('node-fetch');
const url = '{{baseUrl}}/hotels';
const options = {method: 'GET'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
#import
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"{{baseUrl}}/hotels"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"%@", httpResponse);
}
}];
[dataTask resume];
open Cohttp_lwt_unix
open Cohttp
open Lwt
let uri = Uri.of_string "{{baseUrl}}/hotels" in
Client.call `GET uri
>>= fun (res, body_stream) ->
(* Do stuff with the result *)
"{{baseUrl}}/hotels",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
request('GET', '{{baseUrl}}/hotels');
echo $response->getBody();
setUrl('{{baseUrl}}/hotels');
$request->setMethod(HTTP_METH_GET);
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
setRequestUrl('{{baseUrl}}/hotels');
$request->setRequestMethod('GET');
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$response = Invoke-WebRequest -Uri '{{baseUrl}}/hotels' -Method GET
$response = Invoke-RestMethod -Uri '{{baseUrl}}/hotels' -Method GET
import http.client
conn = http.client.HTTPSConnection("example.com")
conn.request("GET", "/baseUrl/hotels")
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
import requests
url = "{{baseUrl}}/hotels"
response = requests.get(url)
print(response.json())
library(httr)
url <- "{{baseUrl}}/hotels"
response <- VERB("GET", url, content_type("application/octet-stream"))
content(response, "text")
require 'uri'
require 'net/http'
url = URI("{{baseUrl}}/hotels")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
require 'faraday'
conn = Faraday.new(
url: 'https://example.com',
)
response = conn.get('/baseUrl/hotels') do |req|
end
puts response.status
puts response.body
use reqwest;
#[tokio::main]
pub async fn main() {
let url = "{{baseUrl}}/hotels";
let client = reqwest::Client::new();
let response = client.get(url)
.send()
.await;
let results = response.unwrap()
.json::()
.await
.unwrap();
dbg!(results);
}
curl --request GET \
--url {{baseUrl}}/hotels
http GET {{baseUrl}}/hotels
wget --quiet \
--method GET \
--output-document \
- {{baseUrl}}/hotels
import Foundation
let request = NSMutableURLRequest(url: NSURL(string: "{{baseUrl}}/hotels")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "GET"
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"data": [
{
"address": {
"city": "Impalaland",
"country": "GBR",
"countryName": "United Kingdom of Great Britain and Northern Ireland",
"line1": "456 Impala Street",
"line2": null,
"postalCode": "0987-654",
"region": "Impalaland Beach"
},
"amenities": [
{
"code": 5,
"formatted": "Air conditioning"
},
{
"code": 7,
"formatted": "ATM/Cash machine"
},
{
"code": 8,
"formatted": "Baby sitting"
},
{
"code": 9,
"formatted": "BBQ/Picnic area"
},
{
"code": 14,
"formatted": "Business library"
},
{
"code": 16,
"formatted": "Casino"
},
{
"code": 22,
"formatted": "Concierge desk"
}
],
"checkIn": {
"from": "15:00"
},
"checkOut": {
"to": "12:00"
},
"contractable": true,
"createdAt": "2020-12-18T13:29:22.865Z",
"currency": "GBP",
"description": {
"short": "This fictional example hotel allows you to experience all the content, rates and features the Impala platform (https://impala.travel) has to offer. Testing with this hotel allows you to experience the full breadth of functionality and rate options hotels might offer on Impala – and to ensure your app displays everything correctly."
},
"emails": [
"mail@impala-all-avaialable-resort.hotel"
],
"externalUrls": [
{
"name": "BOOKING.COM",
"url": "https://www.booking.com/hotel/im/impala"
},
{
"name": "HOTELS.COM",
"url": "https://uk.hotels.com/imp123456/"
}
],
"hotelId": "0e25533a-2db2-4894-9db1-4c1ff92d798c",
"images": [
{
"altText": null,
"height": 1536,
"isHeroImage": true,
"url": "https://cdn.impala.travel/properties/ckiuattho00013e6ar0tiilgt.jpg",
"width": 2884
},
{
"altText": null,
"height": 2461,
"isHeroImage": false,
"url": "https://cdn.impala.travel/properties/ckiuavcvm00023e6aordygdiy.jpg",
"width": 3072
},
{
"altText": null,
"height": 3640,
"isHeroImage": false,
"url": "https://cdn.impala.travel/properties/ckiuavvr100033e6ajep6w5dl.jpg",
"width": 2912
},
{
"altText": null,
"height": 2848,
"isHeroImage": false,
"url": "https://cdn.impala.travel/properties/ckiuawdeo00043e6ajyqc70nm.jpg",
"width": 4288
},
{
"altText": null,
"height": 3072,
"isHeroImage": false,
"url": "https://cdn.impala.travel/properties/ckiuawt9y00053e6a76l0qgqe.jpg",
"width": 4608
}
],
"location": {
"latitude": 58.386186,
"longitude": -9.952549
},
"name": "Impala All-Inclusive Always Available Resort (Example Hotel)",
"phoneNumbers": [
"+48789789789"
],
"roomCount": 200,
"roomTypes": [
{
"amenities": [
{
"code": 11,
"formatted": "Bathroom amenities (free toiletries)"
},
{
"code": 15,
"formatted": "Bath or Shower"
},
{
"code": 28,
"formatted": "Desk"
},
{
"code": 50,
"formatted": "Hairdryer"
},
{
"code": 69,
"formatted": "Minibar"
},
{
"code": 85,
"formatted": "Private bathroom"
},
{
"code": 123,
"formatted": "Wireless internet connection"
},
{
"code": 144,
"formatted": "Soundproofed room"
},
{
"code": 210,
"formatted": "Satellite television"
},
{
"code": 228,
"formatted": "Slippers"
}
],
"description": "This is a fictional example room type that you can use to test all the features you might encounter on any hotel available on the Impala platform on the Impala platform (https://impala.travel). Testing with this room type means your app or site will be able to handle any values that you might find on Impala.",
"images": [
{
"altText": null,
"height": 3255,
"url": "https://cdn.impala.travel/area-types/ckiub6h8c00093e6ag7kufw24.jpg",
"width": 4890
}
],
"maxOccupancy": 1,
"name": "Single Room",
"rates": [
{
"cancellationPolicies": [
{
"fee": {
"count": 100,
"price": {
"amount": 10500,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after March 11, 2021 00:23",
"start": "2021-03-11 00:23:35.718"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "b0e2ec0fa2ae1b3697f467393558a69a:474f39c17490c46b4e622da1bffbd5c1",
"ratePlanId": 1,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 10500,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.718"
},
{
"fee": {
"count": 100,
"price": {
"amount": 12600,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "17b005e4c35575b654171d4589191b5d:bd277330e925805cad8686093554efe5",
"ratePlanId": 2,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 12600,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"fee": {
"count": 100,
"price": {
"amount": 9975,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after March 11, 2021 00:23",
"start": "2021-03-11 00:23:35.718"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "058e478777fe3b4248670c6d6be3722c:06bbe6754161b5991e02e51849c6ae83",
"ratePlanId": 3,
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 9975,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.718"
},
{
"fee": {
"count": 100,
"price": {
"amount": 11970,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "38143de2077774891c4f136d86ce817a:7fa93ac18e3851dec34dead83648148f",
"ratePlanId": 4,
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 11970,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
}
],
"roomTypeId": "7b4e914f-0551-4fdc-b349-db3c32c5afed"
},
{
"amenities": [
{
"code": 228,
"formatted": "Slippers"
},
{
"code": 144,
"formatted": "Soundproofed room"
},
{
"code": 210,
"formatted": "Satellite television"
},
{
"code": 11,
"formatted": "Bathroom amenities (free toiletries)"
},
{
"code": 15,
"formatted": "Bath or Shower"
},
{
"code": 28,
"formatted": "Desk"
},
{
"code": 50,
"formatted": "Hairdryer"
},
{
"code": 69,
"formatted": "Minibar"
},
{
"code": 85,
"formatted": "Private bathroom"
},
{
"code": 123,
"formatted": "Wireless internet connection"
}
],
"description": "This is a fictional example room type that you can use to test all the features you might encounter on any hotel available on the Impala platform on the Impala platform (https://impala.travel). Testing with this room type means your app or site will be able to handle any values that you might find on Impala.",
"images": [
{
"altText": null,
"height": 3024,
"url": "https://cdn.impala.travel/area-types/ckiub0igb00063e6am6q2b0w3.jpg",
"width": 4032
}
],
"maxOccupancy": 2,
"name": "Junior Suite",
"rates": [
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.719"
},
{
"fee": {
"count": 100,
"price": {
"amount": 31500,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "b815b95a5b6a847b7b0c09c1a9ea5827:77a228b50273fad2c224468c91739c3c",
"ratePlanId": 1,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 31500,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.719"
},
{
"fee": {
"count": 100,
"price": {
"amount": 28875,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "bcd9e5f11c6e747374d63d635b6f2d07:f5d244b004c18e3fef40606f83b72e76",
"ratePlanId": 22,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 28875,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.719"
},
{
"fee": {
"count": 100,
"price": {
"amount": 29925,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "e3d5af44011974bf705e792735778b44:88853f3b36a97a6adf8009d97102ad79",
"ratePlanId": 11,
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 29925,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.719"
},
{
"fee": {
"count": 100,
"price": {
"amount": 27431,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "5c0db8cb17c9e5316b2a62bda48f1dd4:39b27339fc838dfbfc48216e22a8ce44",
"ratePlanId": 19,
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 27431,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
}
],
"roomTypeId": "280b6f5a-c645-44c0-a63d-03f1d7bc3d55"
},
{
"amenities": [
{
"code": 2,
"formatted": "Air conditioning"
},
{
"code": 228,
"formatted": "Slippers"
},
{
"code": 210,
"formatted": "Satellite television"
},
{
"code": 144,
"formatted": "Soundproofed room"
},
{
"code": 123,
"formatted": "Wireless internet connection"
},
{
"code": 85,
"formatted": "Private bathroom"
},
{
"code": 69,
"formatted": "Minibar"
},
{
"code": 50,
"formatted": "Hairdryer"
},
{
"code": 28,
"formatted": "Desk"
},
{
"code": 15,
"formatted": "Bath or Shower"
},
{
"code": 11,
"formatted": "Bathroom amenities (free toiletries)"
}
],
"description": "This is a fictional example room type that you can use to test all the features you might encounter on any hotel available on the Impala platform on the Impala platform (https://impala.travel). Testing with this room type means your app or site will be able to handle any values that you might find on Impala.",
"images": [
{
"altText": null,
"height": 6000,
"url": "https://cdn.impala.travel/area-types/ckiub4vym00083e6amqnt3a6u.jpg",
"width": 4000
}
],
"maxOccupancy": 2,
"name": "Double Room",
"rates": [
{
"cancellationPolicies": [
{
"fee": {
"count": 100,
"price": {
"amount": 14700,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after March 11, 2021 00:23",
"start": "2021-03-11 00:23:35.719"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "470a4b225742d213e9182a8ca650fe61:7b5f9d774a96e402438537b1e73fcfe5",
"ratePlanId": 1,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 14700,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.719"
},
{
"fee": {
"count": 100,
"price": {
"amount": 15750,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "19ba73ba97cda6d3febfe533acc25ba1:338e5ff8073767a23fdf0edc4cec1892",
"ratePlanId": 2,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 15750,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.719"
},
{
"fee": {
"count": 100,
"price": {
"amount": 16800,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "e7df0bcb2d335124b609ad188b1c364d:7bee69f1eafb714cadcbd90bd06cf66d",
"ratePlanId": 3,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 16800,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"fee": {
"count": 100,
"price": {
"amount": 13650,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after March 11, 2021 00:23",
"start": "2021-03-11 00:23:35.719"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "2463f0474c058652951adbefd3bc8ff2:f2873919bedce820524ded4e2947e9b5",
"ratePlanId": 22,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 13650,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"fee": {
"count": 100,
"price": {
"amount": 13965,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after March 11, 2021 00:23",
"start": "2021-03-11 00:23:35.719"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "022166b0c439dc27b83a96be5e561d97:fc7b648edf136c63b7114a2d13bfc02d",
"ratePlanId": 23,
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 13965,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.720"
},
{
"fee": {
"count": 100,
"price": {
"amount": 14962,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "35a9baa5068ba59163e930b14af4949b:bf061e368daac6ac9d57172d91f01f1b",
"ratePlanId": 9,
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 14962,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.720"
},
{
"fee": {
"count": 100,
"price": {
"amount": 15960,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "caf9b66563911b0e1525debcd9cf0ada:6fa29977e8403d97cfca5f6dcd6da6eb",
"ratePlanId": 11,
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 15960,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"fee": {
"count": 100,
"price": {
"amount": 12967,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after March 11, 2021 00:23",
"start": "2021-03-11 00:23:35.720"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "891394f48e8ab2f406f4a9087c840768:933a218d184e74c5a67a59a649f4285f",
"ratePlanId": 4,
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 12967,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
}
],
"roomTypeId": "8cb8ce9e-221a-4220-a358-35b6852fb359"
},
{
"amenities": [
{
"code": 228,
"formatted": "Slippers"
},
{
"code": 144,
"formatted": "Soundproofed room"
},
{
"code": 123,
"formatted": "Wireless internet connection"
},
{
"code": 85,
"formatted": "Private bathroom"
},
{
"code": 69,
"formatted": "Minibar"
},
{
"code": 50,
"formatted": "Hairdryer"
},
{
"code": 28,
"formatted": "Desk"
},
{
"code": 15,
"formatted": "Bath or Shower"
},
{
"code": 11,
"formatted": "Bathroom amenities (free toiletries)"
}
],
"description": "This is a fictional example room type that you can use to test all the features you might encounter on any hotel available on the Impala platform on the Impala platform (https://impala.travel). Testing with this room type means your app or site will be able to handle any values that you might find on Impala.",
"images": [
{
"altText": null,
"height": 4480,
"url": "https://cdn.impala.travel/area-types/ckiub3dw100073e6alkifv3ok.jpg",
"width": 6720
}
],
"maxOccupancy": 4,
"name": "Presidential Suite",
"rates": [
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.720"
},
{
"fee": {
"count": 100,
"price": {
"amount": 47250,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "42efaad56d0f614f5cc65e0c5c30669f:1866b6b4e0b2ca054a68ee58565fc6e9",
"ratePlanId": 3,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 47250,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"fee": {
"count": 100,
"price": {
"amount": 42000,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after March 11, 2021 00:23",
"start": "2021-03-11 00:23:35.720"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "2fb14f477f41541d5598b61aab21f1b4:afc6e4cfb689d05fd17e9780be16af9d",
"ratePlanId": 2,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 42000,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.720"
},
{
"fee": {
"count": 100,
"price": {
"amount": 44625,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "896624e8d1733cf9f533d58080b0f217:f77b2b8805413ec948c3f609eb241c33",
"ratePlanId": 4,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 44625,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"fee": {
"count": 100,
"price": {
"amount": 39900,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after March 11, 2021 00:23",
"start": "2021-03-11 00:23:35.720"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "0fc4232f1726473c3f12c99849262e84:3fca5c554e779783c73a5ea293da831f",
"ratePlanId": 5,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 39900,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.720"
},
{
"fee": {
"count": 100,
"price": {
"amount": 44887,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "1471020e7f634138b7088a081e45231a:15006e156c471ef4a22d38fee7f84c68",
"ratePlanId": 22,
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 44887,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"fee": {
"count": 100,
"price": {
"amount": 39900,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after March 11, 2021 00:23",
"start": "2021-03-11 00:23:35.720"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "23888f2637881fed0fb1253d2ebeace6:a844bb82cab7f71f0514a7d458dfec99",
"ratePlanId": 7,
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 39900,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.720"
},
{
"fee": {
"count": 100,
"price": {
"amount": 42393,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "bacf1877347d8936da6ea4b9609f2e06:3b8938ba186b5788dae45a868d1a5228",
"ratePlanId": 9,
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 42393,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"fee": {
"count": 100,
"price": {
"amount": 37905,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after March 11, 2021 00:23",
"start": "2021-03-11 00:23:35.720"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "7f1f053b76157a70e19cade3e38fd763:8f82c19071c9f4d12f5bdf92e181c140",
"ratePlanId": 8,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 37905,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
}
],
"roomTypeId": "1bd16eed-e10f-47f6-8f28-67c40deb4f3b"
}
],
"starRating": 5,
"termsAndConditions": "",
"updatedAt": "2021-02-17T09:07:41.615Z",
"websiteUrl": "https://impala-all-avaialable-resort.hotel/"
}
]
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"data": [],
"pagination": {
"count": 0,
"next": null,
"prev": null,
"total": 0
}
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "VALIDATION_ERROR",
"message": "\"start\" must be in YYYY-MM-DD format. \"foo\" is not allowed. \"lorem\" missing required peer \"ipsum\"",
"validations": [
{
"code": "DATE_FORMAT",
"message": "\"start\" must be in YYYY-MM-DD format",
"property": "start"
},
{
"code": "OBJECT_UNKNOWN",
"message": "\"foo\" is not allowed",
"property": "foo"
},
{
"code": "OBJECT_WITH",
"message": "\"lorem\" missing required peer \"ipsum\"",
"property": "lorem"
}
]
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "Invalid authentication credentials"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "No API key found in request"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "InternalServerError"
}
GET
Retrieve a hotel
{{baseUrl}}/hotels/:hotelId
QUERY PARAMS
hotelId
Examples
REQUEST
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "{{baseUrl}}/hotels/:hotelId");
CURLcode ret = curl_easy_perform(hnd);
(require '[clj-http.client :as client])
(client/get "{{baseUrl}}/hotels/:hotelId")
require "http/client"
url = "{{baseUrl}}/hotels/:hotelId"
response = HTTP::Client.get url
puts response.body
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("{{baseUrl}}/hotels/:hotelId"),
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}
var client = new RestClient("{{baseUrl}}/hotels/:hotelId");
var request = new RestRequest("", Method.Get);
var response = client.Execute(request);
package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "{{baseUrl}}/hotels/:hotelId"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
GET /baseUrl/hotels/:hotelId HTTP/1.1
Host: example.com
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("GET", "{{baseUrl}}/hotels/:hotelId")
.execute()
.toCompletableFuture()
.thenAccept(System.out::println)
.join();
client.close();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("{{baseUrl}}/hotels/:hotelId"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("{{baseUrl}}/hotels/:hotelId")
.get()
.build();
Response response = client.newCall(request).execute();
HttpResponse response = Unirest.get("{{baseUrl}}/hotels/:hotelId")
.asString();
const data = null;
const xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener('readystatechange', function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open('GET', '{{baseUrl}}/hotels/:hotelId');
xhr.send(data);
import axios from 'axios';
const options = {method: 'GET', url: '{{baseUrl}}/hotels/:hotelId'};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const url = '{{baseUrl}}/hotels/:hotelId';
const options = {method: 'GET'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
const settings = {
async: true,
crossDomain: true,
url: '{{baseUrl}}/hotels/:hotelId',
method: 'GET',
headers: {}
};
$.ajax(settings).done(function (response) {
console.log(response);
});
val client = OkHttpClient()
val request = Request.Builder()
.url("{{baseUrl}}/hotels/:hotelId")
.get()
.build()
val response = client.newCall(request).execute()
const http = require('https');
const options = {
method: 'GET',
hostname: 'example.com',
port: null,
path: '/baseUrl/hotels/:hotelId',
headers: {}
};
const req = http.request(options, function (res) {
const chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.end();
const request = require('request');
const options = {method: 'GET', url: '{{baseUrl}}/hotels/:hotelId'};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
const unirest = require('unirest');
const req = unirest('GET', '{{baseUrl}}/hotels/:hotelId');
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});
const axios = require('axios').default;
const options = {method: 'GET', url: '{{baseUrl}}/hotels/:hotelId'};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const fetch = require('node-fetch');
const url = '{{baseUrl}}/hotels/:hotelId';
const options = {method: 'GET'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
#import
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"{{baseUrl}}/hotels/:hotelId"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"%@", httpResponse);
}
}];
[dataTask resume];
open Cohttp_lwt_unix
open Cohttp
open Lwt
let uri = Uri.of_string "{{baseUrl}}/hotels/:hotelId" in
Client.call `GET uri
>>= fun (res, body_stream) ->
(* Do stuff with the result *)
"{{baseUrl}}/hotels/:hotelId",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
request('GET', '{{baseUrl}}/hotels/:hotelId');
echo $response->getBody();
setUrl('{{baseUrl}}/hotels/:hotelId');
$request->setMethod(HTTP_METH_GET);
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
setRequestUrl('{{baseUrl}}/hotels/:hotelId');
$request->setRequestMethod('GET');
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$response = Invoke-WebRequest -Uri '{{baseUrl}}/hotels/:hotelId' -Method GET
$response = Invoke-RestMethod -Uri '{{baseUrl}}/hotels/:hotelId' -Method GET
import http.client
conn = http.client.HTTPSConnection("example.com")
conn.request("GET", "/baseUrl/hotels/:hotelId")
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
import requests
url = "{{baseUrl}}/hotels/:hotelId"
response = requests.get(url)
print(response.json())
library(httr)
url <- "{{baseUrl}}/hotels/:hotelId"
response <- VERB("GET", url, content_type("application/octet-stream"))
content(response, "text")
require 'uri'
require 'net/http'
url = URI("{{baseUrl}}/hotels/:hotelId")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
require 'faraday'
conn = Faraday.new(
url: 'https://example.com',
)
response = conn.get('/baseUrl/hotels/:hotelId') do |req|
end
puts response.status
puts response.body
use reqwest;
#[tokio::main]
pub async fn main() {
let url = "{{baseUrl}}/hotels/:hotelId";
let client = reqwest::Client::new();
let response = client.get(url)
.send()
.await;
let results = response.unwrap()
.json::()
.await
.unwrap();
dbg!(results);
}
curl --request GET \
--url {{baseUrl}}/hotels/:hotelId
http GET {{baseUrl}}/hotels/:hotelId
wget --quiet \
--method GET \
--output-document \
- {{baseUrl}}/hotels/:hotelId
import Foundation
let request = NSMutableURLRequest(url: NSURL(string: "{{baseUrl}}/hotels/:hotelId")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "GET"
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"address": {
"city": "Impalaland",
"country": "GBR",
"countryName": "United Kingdom of Great Britain and Northern Ireland",
"line1": "456 Impala Street",
"line2": null,
"postalCode": "0987-654",
"region": "Impalaland Beach"
},
"amenities": [
{
"code": 5,
"formatted": "Air conditioning"
},
{
"code": 7,
"formatted": "ATM/Cash machine"
},
{
"code": 8,
"formatted": "Baby sitting"
},
{
"code": 9,
"formatted": "BBQ/Picnic area"
},
{
"code": 14,
"formatted": "Business library"
},
{
"code": 16,
"formatted": "Casino"
},
{
"code": 22,
"formatted": "Concierge desk"
}
],
"checkIn": {
"from": "15:00"
},
"checkOut": {
"to": "12:00"
},
"contractable": true,
"createdAt": "2020-12-18T13:29:22.865Z",
"currency": "GBP",
"description": {
"short": "This fictional example hotel allows you to experience all the content, rates and features the Impala platform (https://impala.travel) has to offer. Testing with this hotel allows you to experience the full breadth of functionality and rate options hotels might offer on Impala – and to ensure your app displays everything correctly."
},
"emails": [
"mail@impala-all-avaialable-resort.hotel"
],
"externalUrls": [
{
"name": "BOOKING.COM",
"url": "https://www.booking.com/hotel/im/impala"
},
{
"name": "HOTELS.COM",
"url": "https://uk.hotels.com/imp123456/"
}
],
"hotelId": "0e25533a-2db2-4894-9db1-4c1ff92d798c",
"images": [
{
"altText": null,
"height": 1536,
"isHeroImage": true,
"url": "https://cdn.impala.travel/properties/ckiuattho00013e6ar0tiilgt.jpg",
"width": 2884
},
{
"altText": null,
"height": 2461,
"isHeroImage": false,
"url": "https://cdn.impala.travel/properties/ckiuavcvm00023e6aordygdiy.jpg",
"width": 3072
},
{
"altText": null,
"height": 3640,
"isHeroImage": false,
"url": "https://cdn.impala.travel/properties/ckiuavvr100033e6ajep6w5dl.jpg",
"width": 2912
},
{
"altText": null,
"height": 2848,
"isHeroImage": false,
"url": "https://cdn.impala.travel/properties/ckiuawdeo00043e6ajyqc70nm.jpg",
"width": 4288
},
{
"altText": null,
"height": 3072,
"isHeroImage": false,
"url": "https://cdn.impala.travel/properties/ckiuawt9y00053e6a76l0qgqe.jpg",
"width": 4608
}
],
"location": {
"latitude": 58.386186,
"longitude": -9.952549
},
"name": "Impala All-Inclusive Always Available Resort (Example Hotel)",
"phoneNumbers": [
"+48789789789"
],
"roomCount": 200,
"roomTypes": [
{
"amenities": [
{
"code": 11,
"formatted": "Bathroom amenities (free toiletries)"
},
{
"code": 15,
"formatted": "Bath or Shower"
},
{
"code": 28,
"formatted": "Desk"
},
{
"code": 50,
"formatted": "Hairdryer"
},
{
"code": 69,
"formatted": "Minibar"
},
{
"code": 85,
"formatted": "Private bathroom"
},
{
"code": 123,
"formatted": "Wireless internet connection"
},
{
"code": 144,
"formatted": "Soundproofed room"
},
{
"code": 210,
"formatted": "Satellite television"
},
{
"code": 228,
"formatted": "Slippers"
}
],
"description": "This is a fictional example room type that you can use to test all the features you might encounter on any hotel available on the Impala platform on the Impala platform (https://impala.travel). Testing with this room type means your app or site will be able to handle any values that you might find on Impala.",
"images": [
{
"altText": null,
"height": 3255,
"url": "https://cdn.impala.travel/area-types/ckiub6h8c00093e6ag7kufw24.jpg",
"width": 4890
}
],
"maxOccupancy": 1,
"name": "Single Room",
"rates": [
{
"cancellationPolicies": [
{
"fee": {
"count": 100,
"price": {
"amount": 10500,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after March 11, 2021 00:23",
"start": "2021-03-11 00:23:35.718"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"notes": {
"fromGuest": "",
"fromSeller": ""
},
"rateId": "b0e2ec0fa2ae1b3697f467393558a69a:474f39c17490c46b4e622da1bffbd5c1",
"ratePlanId": 7,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 10500,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.718"
},
{
"fee": {
"count": 100,
"price": {
"amount": 12600,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "17b005e4c35575b654171d4589191b5d:bd277330e925805cad8686093554efe5",
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 12600,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"fee": {
"count": 100,
"price": {
"amount": 9975,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after March 11, 2021 00:23",
"start": "2021-03-11 00:23:35.718"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "058e478777fe3b4248670c6d6be3722c:06bbe6754161b5991e02e51849c6ae83",
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 9975,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.718"
},
{
"fee": {
"count": 100,
"price": {
"amount": 11970,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "38143de2077774891c4f136d86ce817a:7fa93ac18e3851dec34dead83648148f",
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 11970,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
}
],
"roomTypeId": "7b4e914f-0551-4fdc-b349-db3c32c5afed"
},
{
"amenities": [
{
"code": 228,
"formatted": "Slippers"
},
{
"code": 144,
"formatted": "Soundproofed room"
},
{
"code": 210,
"formatted": "Satellite television"
},
{
"code": 11,
"formatted": "Bathroom amenities (free toiletries)"
},
{
"code": 15,
"formatted": "Bath or Shower"
},
{
"code": 28,
"formatted": "Desk"
},
{
"code": 50,
"formatted": "Hairdryer"
},
{
"code": 69,
"formatted": "Minibar"
},
{
"code": 85,
"formatted": "Private bathroom"
},
{
"code": 123,
"formatted": "Wireless internet connection"
}
],
"description": "This is a fictional example room type that you can use to test all the features you might encounter on any hotel available on the Impala platform on the Impala platform (https://impala.travel). Testing with this room type means your app or site will be able to handle any values that you might find on Impala.",
"images": [
{
"altText": null,
"height": 3024,
"url": "https://cdn.impala.travel/area-types/ckiub0igb00063e6am6q2b0w3.jpg",
"width": 4032
}
],
"maxOccupancy": 2,
"name": "Junior Suite",
"rates": [
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.719"
},
{
"fee": {
"count": 100,
"price": {
"amount": 31500,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "b815b95a5b6a847b7b0c09c1a9ea5827:77a228b50273fad2c224468c91739c3c",
"ratePlanId": 5,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 31500,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.719"
},
{
"fee": {
"count": 100,
"price": {
"amount": 28875,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "bcd9e5f11c6e747374d63d635b6f2d07:f5d244b004c18e3fef40606f83b72e76",
"ratePlanId": 1,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 28875,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.719"
},
{
"fee": {
"count": 100,
"price": {
"amount": 29925,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "e3d5af44011974bf705e792735778b44:88853f3b36a97a6adf8009d97102ad79",
"ratePlanId": 1,
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 29925,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.719"
},
{
"fee": {
"count": 100,
"price": {
"amount": 27431,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "5c0db8cb17c9e5316b2a62bda48f1dd4:39b27339fc838dfbfc48216e22a8ce44",
"ratePlanId": 1,
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 27431,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
}
],
"roomTypeId": "280b6f5a-c645-44c0-a63d-03f1d7bc3d55"
},
{
"amenities": [
{
"code": 2,
"formatted": "Air conditioning"
},
{
"code": 228,
"formatted": "Slippers"
},
{
"code": 210,
"formatted": "Satellite television"
},
{
"code": 144,
"formatted": "Soundproofed room"
},
{
"code": 123,
"formatted": "Wireless internet connection"
},
{
"code": 85,
"formatted": "Private bathroom"
},
{
"code": 69,
"formatted": "Minibar"
},
{
"code": 50,
"formatted": "Hairdryer"
},
{
"code": 28,
"formatted": "Desk"
},
{
"code": 15,
"formatted": "Bath or Shower"
},
{
"code": 11,
"formatted": "Bathroom amenities (free toiletries)"
}
],
"description": "This is a fictional example room type that you can use to test all the features you might encounter on any hotel available on the Impala platform on the Impala platform (https://impala.travel). Testing with this room type means your app or site will be able to handle any values that you might find on Impala.",
"images": [
{
"altText": null,
"height": 6000,
"url": "https://cdn.impala.travel/area-types/ckiub4vym00083e6amqnt3a6u.jpg",
"width": 4000
}
],
"maxOccupancy": 2,
"name": "Double Room",
"rates": [
{
"cancellationPolicies": [
{
"fee": {
"count": 100,
"price": {
"amount": 14700,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after March 11, 2021 00:23",
"start": "2021-03-11 00:23:35.719"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "470a4b225742d213e9182a8ca650fe61:7b5f9d774a96e402438537b1e73fcfe5",
"ratePlanId": 1,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 14700,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.719"
},
{
"fee": {
"count": 100,
"price": {
"amount": 15750,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "19ba73ba97cda6d3febfe533acc25ba1:338e5ff8073767a23fdf0edc4cec1892",
"ratePlanId": 3,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 15750,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.719"
},
{
"fee": {
"count": 100,
"price": {
"amount": 16800,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "e7df0bcb2d335124b609ad188b1c364d:7bee69f1eafb714cadcbd90bd06cf66d",
"ratePlanId": 5,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 16800,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"fee": {
"count": 100,
"price": {
"amount": 13650,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after March 11, 2021 00:23",
"start": "2021-03-11 00:23:35.719"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "2463f0474c058652951adbefd3bc8ff2:f2873919bedce820524ded4e2947e9b5",
"ratePlanId": 6,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 13650,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"fee": {
"count": 100,
"price": {
"amount": 13965,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after March 11, 2021 00:23",
"start": "2021-03-11 00:23:35.719"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "022166b0c439dc27b83a96be5e561d97:fc7b648edf136c63b7114a2d13bfc02d",
"ratePlanId": 7,
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 13965,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.720"
},
{
"fee": {
"count": 100,
"price": {
"amount": 14962,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "35a9baa5068ba59163e930b14af4949b:bf061e368daac6ac9d57172d91f01f1b",
"ratePlanId": 1,
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 14962,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.720"
},
{
"fee": {
"count": 100,
"price": {
"amount": 15960,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "caf9b66563911b0e1525debcd9cf0ada:6fa29977e8403d97cfca5f6dcd6da6eb",
"ratePlanId": 3,
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 15960,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"fee": {
"count": 100,
"price": {
"amount": 12967,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after March 11, 2021 00:23",
"start": "2021-03-11 00:23:35.720"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "891394f48e8ab2f406f4a9087c840768:933a218d184e74c5a67a59a649f4285f",
"ratePlanId": 3,
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 12967,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
}
],
"roomTypeId": "8cb8ce9e-221a-4220-a358-35b6852fb359"
},
{
"amenities": [
{
"code": 228,
"formatted": "Slippers"
},
{
"code": 144,
"formatted": "Soundproofed room"
},
{
"code": 123,
"formatted": "Wireless internet connection"
},
{
"code": 85,
"formatted": "Private bathroom"
},
{
"code": 69,
"formatted": "Minibar"
},
{
"code": 50,
"formatted": "Hairdryer"
},
{
"code": 28,
"formatted": "Desk"
},
{
"code": 15,
"formatted": "Bath or Shower"
},
{
"code": 11,
"formatted": "Bathroom amenities (free toiletries)"
}
],
"description": "This is a fictional example room type that you can use to test all the features you might encounter on any hotel available on the Impala platform on the Impala platform (https://impala.travel). Testing with this room type means your app or site will be able to handle any values that you might find on Impala.",
"images": [
{
"altText": null,
"height": 4480,
"url": "https://cdn.impala.travel/area-types/ckiub3dw100073e6alkifv3ok.jpg",
"width": 6720
}
],
"maxOccupancy": 4,
"name": "Presidential Suite",
"rates": [
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.720"
},
{
"fee": {
"count": 100,
"price": {
"amount": 47250,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "42efaad56d0f614f5cc65e0c5c30669f:1866b6b4e0b2ca054a68ee58565fc6e9",
"ratePlanId": 1,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 47250,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"fee": {
"count": 100,
"price": {
"amount": 42000,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after March 11, 2021 00:23",
"start": "2021-03-11 00:23:35.720"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "2fb14f477f41541d5598b61aab21f1b4:afc6e4cfb689d05fd17e9780be16af9d",
"ratePlanId": 2,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 42000,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.720"
},
{
"fee": {
"count": 100,
"price": {
"amount": 44625,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "896624e8d1733cf9f533d58080b0f217:f77b2b8805413ec948c3f609eb241c33",
"ratePlanId": 3,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 44625,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"fee": {
"count": 100,
"price": {
"amount": 39900,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after March 11, 2021 00:23",
"start": "2021-03-11 00:23:35.720"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "0fc4232f1726473c3f12c99849262e84:3fca5c554e779783c73a5ea293da831f",
"ratePlanId": 7,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 39900,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 10,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.720"
},
{
"fee": {
"count": 100,
"price": {
"amount": 44887,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "1471020e7f634138b7088a081e45231a:15006e156c471ef4a22d38fee7f84c68",
"ratePlanId": 8,
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 44887,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"fee": {
"count": 100,
"price": {
"amount": 39900,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after March 11, 2021 00:23",
"start": "2021-03-11 00:23:35.720"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 2,
"rateId": "23888f2637881fed0fb1253d2ebeace6:a844bb82cab7f71f0514a7d458dfec99",
"ratePlanId": 22,
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 39900,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"end": "2021-06-28 23:59:59.999",
"fee": {
"price": {
"amount": 0,
"currency": {
"code": "EUR"
}
},
"type": "NONE"
},
"formatted": "Fully refundable until June 28, 2021 23:59",
"start": "2021-03-11 00:23:35.720"
},
{
"fee": {
"count": 100,
"price": {
"amount": 42393,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after June 29, 2021 00:00",
"start": "2021-06-29 00:00:00.000"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "bacf1877347d8936da6ea4b9609f2e06:3b8938ba186b5788dae45a868d1a5228",
"ratePlanId": 19,
"retailRate": {
"deal": {
"conditions": [],
"dealId": "D3",
"discount": {
"count": 5,
"type": "PERCENTAGE"
}
},
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 42393,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
},
{
"cancellationPolicies": [
{
"fee": {
"count": 100,
"price": {
"amount": 37905,
"currency": {
"code": "EUR"
}
},
"type": "PERCENTAGE"
},
"formatted": "Non-refundable after March 11, 2021 00:23",
"start": "2021-03-11 00:23:35.720"
}
],
"components": [],
"end": "2021-07-02",
"hotelAgreement": null,
"maxOccupancy": 1,
"rateId": "7f1f053b76157a70e19cade3e38fd763:8f82c19071c9f4d12f5bdf92e181c140",
"ratePlanId": 7,
"retailRate": {
"taxesAndFees": {
"includedInRate": [],
"payAtHotel": []
},
"total": {
"amount": 37905,
"currency": {
"code": "EUR"
}
}
},
"sellerCommissionPercentage": 15,
"start": "2021-07-01"
}
],
"roomTypeId": "1bd16eed-e10f-47f6-8f28-67c40deb4f3b"
}
],
"starRating": 5,
"termsAndConditions": "",
"updatedAt": "2021-02-17T09:07:41.615Z",
"websiteUrl": "https://impala-all-avaialable-resort.hotel/"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "VALIDATION_ERROR",
"message": "\"start\" must be in YYYY-MM-DD format. \"foo\" is not allowed. \"lorem\" missing required peer \"ipsum\"",
"validations": [
{
"code": "DATE_FORMAT",
"message": "\"start\" must be in YYYY-MM-DD format",
"property": "start"
},
{
"code": "OBJECT_UNKNOWN",
"message": "\"foo\" is not allowed",
"property": "foo"
},
{
"code": "OBJECT_WITH",
"message": "\"lorem\" missing required peer \"ipsum\"",
"property": "lorem"
}
]
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "Invalid authentication credentials"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "No API key found in request"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "Forbidden resource"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"message": "Internal Server Error"
}
GET
List a rate plan (rate calendar) for a hotel (Beta endpoint).
{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId
Examples
REQUEST
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId");
CURLcode ret = curl_easy_perform(hnd);
(require '[clj-http.client :as client])
(client/get "{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId")
require "http/client"
url = "{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId"
response = HTTP::Client.get url
puts response.body
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId"),
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}
var client = new RestClient("{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId");
var request = new RestRequest("", Method.Get);
var response = client.Execute(request);
package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
GET /baseUrl/hotels/:hotelId/rate-plans/:ratePlanId HTTP/1.1
Host: example.com
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("GET", "{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId")
.execute()
.toCompletableFuture()
.thenAccept(System.out::println)
.join();
client.close();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId")
.get()
.build();
Response response = client.newCall(request).execute();
HttpResponse response = Unirest.get("{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId")
.asString();
const data = null;
const xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener('readystatechange', function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open('GET', '{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId');
xhr.send(data);
import axios from 'axios';
const options = {
method: 'GET',
url: '{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId'
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const url = '{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId';
const options = {method: 'GET'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
const settings = {
async: true,
crossDomain: true,
url: '{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId',
method: 'GET',
headers: {}
};
$.ajax(settings).done(function (response) {
console.log(response);
});
val client = OkHttpClient()
val request = Request.Builder()
.url("{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId")
.get()
.build()
val response = client.newCall(request).execute()
const http = require('https');
const options = {
method: 'GET',
hostname: 'example.com',
port: null,
path: '/baseUrl/hotels/:hotelId/rate-plans/:ratePlanId',
headers: {}
};
const req = http.request(options, function (res) {
const chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.end();
const request = require('request');
const options = {
method: 'GET',
url: '{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId'
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
const unirest = require('unirest');
const req = unirest('GET', '{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId');
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});
const axios = require('axios').default;
const options = {
method: 'GET',
url: '{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId'
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const fetch = require('node-fetch');
const url = '{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId';
const options = {method: 'GET'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
#import
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"%@", httpResponse);
}
}];
[dataTask resume];
open Cohttp_lwt_unix
open Cohttp
open Lwt
let uri = Uri.of_string "{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId" in
Client.call `GET uri
>>= fun (res, body_stream) ->
(* Do stuff with the result *)
"{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
request('GET', '{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId');
echo $response->getBody();
setUrl('{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId');
$request->setMethod(HTTP_METH_GET);
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
setRequestUrl('{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId');
$request->setRequestMethod('GET');
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$response = Invoke-WebRequest -Uri '{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId' -Method GET
$response = Invoke-RestMethod -Uri '{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId' -Method GET
import http.client
conn = http.client.HTTPSConnection("example.com")
conn.request("GET", "/baseUrl/hotels/:hotelId/rate-plans/:ratePlanId")
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
import requests
url = "{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId"
response = requests.get(url)
print(response.json())
library(httr)
url <- "{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId"
response <- VERB("GET", url, content_type("application/octet-stream"))
content(response, "text")
require 'uri'
require 'net/http'
url = URI("{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
require 'faraday'
conn = Faraday.new(
url: 'https://example.com',
)
response = conn.get('/baseUrl/hotels/:hotelId/rate-plans/:ratePlanId') do |req|
end
puts response.status
puts response.body
use reqwest;
#[tokio::main]
pub async fn main() {
let url = "{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId";
let client = reqwest::Client::new();
let response = client.get(url)
.send()
.await;
let results = response.unwrap()
.json::()
.await
.unwrap();
dbg!(results);
}
curl --request GET \
--url {{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId
http GET {{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId
wget --quiet \
--method GET \
--output-document \
- {{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId
import Foundation
let request = NSMutableURLRequest(url: NSURL(string: "{{baseUrl}}/hotels/:hotelId/rate-plans/:ratePlanId")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "GET"
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"description": "NON_REFUNDABLE,DINNER"
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "VALIDATION_ERROR",
"message": "\"start\" must be in YYYY-MM-DD format. \"foo\" is not allowed. \"lorem\" missing required peer \"ipsum\"",
"validations": [
{
"code": "DATE_FORMAT",
"message": "\"start\" must be in YYYY-MM-DD format",
"property": "start"
},
{
"code": "OBJECT_WITH",
"message": "\"lorem\" missing required peer \"ipsum\"",
"property": "lorem"
}
]
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "NOT_FOUND",
"message": "Cannot find property with id 6f86fd08-5378-4ac4-a6e0-ae099d5ce512"
}
GET
List all rate plans (rate calendar) for a hotel (Beta endpoint)
{{baseUrl}}/hotels/:hotelId/rate-plans
Examples
REQUEST
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "{{baseUrl}}/hotels/:hotelId/rate-plans");
CURLcode ret = curl_easy_perform(hnd);
(require '[clj-http.client :as client])
(client/get "{{baseUrl}}/hotels/:hotelId/rate-plans")
require "http/client"
url = "{{baseUrl}}/hotels/:hotelId/rate-plans"
response = HTTP::Client.get url
puts response.body
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("{{baseUrl}}/hotels/:hotelId/rate-plans"),
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}
var client = new RestClient("{{baseUrl}}/hotels/:hotelId/rate-plans");
var request = new RestRequest("", Method.Get);
var response = client.Execute(request);
package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "{{baseUrl}}/hotels/:hotelId/rate-plans"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
GET /baseUrl/hotels/:hotelId/rate-plans HTTP/1.1
Host: example.com
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("GET", "{{baseUrl}}/hotels/:hotelId/rate-plans")
.execute()
.toCompletableFuture()
.thenAccept(System.out::println)
.join();
client.close();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("{{baseUrl}}/hotels/:hotelId/rate-plans"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("{{baseUrl}}/hotels/:hotelId/rate-plans")
.get()
.build();
Response response = client.newCall(request).execute();
HttpResponse response = Unirest.get("{{baseUrl}}/hotels/:hotelId/rate-plans")
.asString();
const data = null;
const xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener('readystatechange', function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open('GET', '{{baseUrl}}/hotels/:hotelId/rate-plans');
xhr.send(data);
import axios from 'axios';
const options = {method: 'GET', url: '{{baseUrl}}/hotels/:hotelId/rate-plans'};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const url = '{{baseUrl}}/hotels/:hotelId/rate-plans';
const options = {method: 'GET'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
const settings = {
async: true,
crossDomain: true,
url: '{{baseUrl}}/hotels/:hotelId/rate-plans',
method: 'GET',
headers: {}
};
$.ajax(settings).done(function (response) {
console.log(response);
});
val client = OkHttpClient()
val request = Request.Builder()
.url("{{baseUrl}}/hotels/:hotelId/rate-plans")
.get()
.build()
val response = client.newCall(request).execute()
const http = require('https');
const options = {
method: 'GET',
hostname: 'example.com',
port: null,
path: '/baseUrl/hotels/:hotelId/rate-plans',
headers: {}
};
const req = http.request(options, function (res) {
const chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.end();
const request = require('request');
const options = {method: 'GET', url: '{{baseUrl}}/hotels/:hotelId/rate-plans'};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
const unirest = require('unirest');
const req = unirest('GET', '{{baseUrl}}/hotels/:hotelId/rate-plans');
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});
const axios = require('axios').default;
const options = {method: 'GET', url: '{{baseUrl}}/hotels/:hotelId/rate-plans'};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const fetch = require('node-fetch');
const url = '{{baseUrl}}/hotels/:hotelId/rate-plans';
const options = {method: 'GET'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
#import
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"{{baseUrl}}/hotels/:hotelId/rate-plans"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"%@", httpResponse);
}
}];
[dataTask resume];
open Cohttp_lwt_unix
open Cohttp
open Lwt
let uri = Uri.of_string "{{baseUrl}}/hotels/:hotelId/rate-plans" in
Client.call `GET uri
>>= fun (res, body_stream) ->
(* Do stuff with the result *)
"{{baseUrl}}/hotels/:hotelId/rate-plans",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
request('GET', '{{baseUrl}}/hotels/:hotelId/rate-plans');
echo $response->getBody();
setUrl('{{baseUrl}}/hotels/:hotelId/rate-plans');
$request->setMethod(HTTP_METH_GET);
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
setRequestUrl('{{baseUrl}}/hotels/:hotelId/rate-plans');
$request->setRequestMethod('GET');
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$response = Invoke-WebRequest -Uri '{{baseUrl}}/hotels/:hotelId/rate-plans' -Method GET
$response = Invoke-RestMethod -Uri '{{baseUrl}}/hotels/:hotelId/rate-plans' -Method GET
import http.client
conn = http.client.HTTPSConnection("example.com")
conn.request("GET", "/baseUrl/hotels/:hotelId/rate-plans")
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
import requests
url = "{{baseUrl}}/hotels/:hotelId/rate-plans"
response = requests.get(url)
print(response.json())
library(httr)
url <- "{{baseUrl}}/hotels/:hotelId/rate-plans"
response <- VERB("GET", url, content_type("application/octet-stream"))
content(response, "text")
require 'uri'
require 'net/http'
url = URI("{{baseUrl}}/hotels/:hotelId/rate-plans")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
require 'faraday'
conn = Faraday.new(
url: 'https://example.com',
)
response = conn.get('/baseUrl/hotels/:hotelId/rate-plans') do |req|
end
puts response.status
puts response.body
use reqwest;
#[tokio::main]
pub async fn main() {
let url = "{{baseUrl}}/hotels/:hotelId/rate-plans";
let client = reqwest::Client::new();
let response = client.get(url)
.send()
.await;
let results = response.unwrap()
.json::()
.await
.unwrap();
dbg!(results);
}
curl --request GET \
--url {{baseUrl}}/hotels/:hotelId/rate-plans
http GET {{baseUrl}}/hotels/:hotelId/rate-plans
wget --quiet \
--method GET \
--output-document \
- {{baseUrl}}/hotels/:hotelId/rate-plans
import Foundation
let request = NSMutableURLRequest(url: NSURL(string: "{{baseUrl}}/hotels/:hotelId/rate-plans")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "GET"
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"data": [
{
"components": [
{
"formatted": "breakfast",
"includedInRate": true,
"type": "BREAKFAST"
},
{
"formatted": "lunch",
"includedInRate": false,
"type": "LUNCH"
},
{
"formatted": "dinner",
"includedInRate": false,
"type": "DINNER"
},
{
"formatted": "allInclusive",
"includedInRate": false,
"type": "ALL_INCLUSIVE"
}
],
"conditions": {
"cancellationDeadline": null,
"cancellationPolicy": "NON_REFUNDABLE"
},
"description": "BREAKFAST,NON_REFUNDABLE",
"hotelId": "55b6ae0d-2de3-4ec4-b8b5-042a7003cd87",
"ratePlanId": 6,
"restrictions": {
"lengthOfStay": {
"min": 1
}
},
"roomTypes": [
{
"dates": [
{
"closed": false,
"date": "2021-05-21",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-05-22",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-05-23",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-05-24",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-05-25",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-05-26",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-05-27",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-05-28",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-05-29",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-05-30",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-05-31",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-01",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-02",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-03",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-04",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-05",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-06",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-07",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-08",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-09",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-10",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-11",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-12",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-13",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-14",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-15",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-16",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-17",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-18",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-19",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-20",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-21",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-22",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-23",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-24",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-25",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-26",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-27",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-28",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-29",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-06-30",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-01",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-02",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-03",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-04",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-05",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-06",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-07",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-08",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-09",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-10",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-11",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-12",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-13",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-14",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-15",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-16",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-17",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-18",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-19",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-20",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-21",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-22",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-23",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-24",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-25",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-26",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-27",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-28",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-29",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-30",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-07-31",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-01",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-02",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-03",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-04",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-05",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-06",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-07",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-08",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-09",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-10",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-11",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-12",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-13",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-14",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-15",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-16",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-17",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-18",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-19",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-20",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-21",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-22",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-23",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-24",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-25",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-26",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-27",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-28",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-29",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-30",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-08-31",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-01",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-02",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-03",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-04",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-05",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-06",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-07",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-08",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-09",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-10",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-11",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-12",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-13",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-14",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-15",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-16",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-17",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-18",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-19",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-20",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-21",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-22",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-23",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-24",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-25",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-26",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-27",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-28",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-29",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-09-30",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-01",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-02",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-03",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-04",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-05",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-06",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-07",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-08",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-09",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-10",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-11",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-12",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-13",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-14",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-15",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-16",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-17",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-18",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-19",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-20",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-21",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-22",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-23",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-24",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-25",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-26",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-27",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-28",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-29",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-30",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-10-31",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-01",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-02",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-03",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-04",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-05",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-06",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-07",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-08",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-09",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-10",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-11",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-12",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-13",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-14",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-15",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-16",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-17",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-18",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-19",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-20",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-21",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-22",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-23",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-24",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-25",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-26",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-27",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-28",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-29",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-11-30",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-12-01",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-12-02",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-12-03",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-12-04",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-12-05",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
},
{
"closed": false,
"date": "2021-12-06",
"rates": [
{
"adults": 1,
"retailRate": {
"amount": 70000,
"currency": {
"code": "EUR"
}
},
"roomsSellable": 100
}
]
}
],
"maxOccupancy": 2,
"name": "Double Room",
"roomTypeId": "b301f494-d11d-4f9e-9425-c3883f082078"
}
]
}
],
"pagination": {
"count": 1,
"next": "https://api.impala.travel/v1/085c034a-955c-42b7-81a9-a5ec445b18c6/rate-plans?size=1&offset=1",
"prev": null,
"total": 2
}
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "VALIDATION_ERROR",
"message": "\"start\" must be in YYYY-MM-DD format. \"foo\" is not allowed. \"lorem\" missing required peer \"ipsum\"",
"validations": [
{
"code": "DATE_FORMAT",
"message": "\"start\" must be in YYYY-MM-DD format",
"property": "start"
},
{
"code": "OBJECT_WITH",
"message": "\"lorem\" missing required peer \"ipsum\"",
"property": "lorem"
}
]
}
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"code": "NOT_FOUND",
"message": "Cannot find property with id 6f86fd08-5378-4ac4-a6e0-ae099d5ce512"
}