Impala Hotel Booking API
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"
}