Impala Hotel Booking API
impala · Commerce
Add room selling to your app with ease, or expand your existing hotel portfolio. Access all the marketing material you need to sell a room, from hotel amenities to images. Constantly updated, ever expanding and always correct. Impala allows you to start selling hotel rooms and earn a commission with every booking in hours. Getting started is easy: > **1. Sign-up within seconds**: Head to the [Impala website](https://impala.travel), enter your details and receive your sandbox API key immediatel
Authentication
Sample Requests
Returns a list of all the bookings you've made. You can filter the list based on when bookings were created or last updated, as well as their arrival (`start`) and departure (`end`). These date-based filters allow to narrow down the result with modifiers for less than (`lt`), greater than (`gt`), l
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/impala.travel/hotels/1.003/bookings?end=example&size=100&start=example&offset=0&sortBy=createdAt%3Adesc%2CupdatedAt%3Aasc&created=example&updated=example"
import requests
params = {
"end": "example",
"size": "100",
"start": "example",
"offset": "0",
"sortBy": "createdAt:desc,updatedAt:asc",
"created": "example",
"updated": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/impala.travel/hotels/1.003/bookings",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/impala.travel/hotels/1.003/bookings');
url.searchParams.set('end', 'example');
url.searchParams.set('size', '100');
url.searchParams.set('start', 'example');
url.searchParams.set('offset', '0');
url.searchParams.set('sortBy', 'createdAt:desc,updatedAt:asc');
url.searchParams.set('created', 'example');
url.searchParams.set('updated', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/impala.travel/hotels/1.003/bookings")
q := baseURL.Query()
q.Set("end", "example")
q.Set("size", "100")
q.Set("start", "example")
q.Set("offset", "0")
q.Set("sortBy", "createdAt:desc,updatedAt:asc")
q.Set("created", "example")
q.Set("updated", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/impala.travel/hotels/1.003/bookings")
uri.query = URI.encode_www_form({
"end" => "example",
"size" => "100",
"start" => "example",
"offset" => "0",
"sortBy" => "createdAt:desc,updatedAt:asc",
"created" => "example",
"updated" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/impala.travel/hotels/1.003/bookings?" . http_build_query([
"end" => "example",
"size" => "100",
"start" => "example",
"offset" => "0",
"sortBy" => "createdAt:desc,updatedAt:asc",
"created" => "example",
"updated" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Returns a list of all hotels worldwide that can be booked through Impala. You can **filter** the results: * Adding `longitude`, `latitude` and a `radius` (in meters) query parameters will filter the results to hotels around this location. * Adding `start` and `end` dates (in ISO 8601 notation, e.g
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/impala.travel/hotels/1.003/hotels?end=2021-05-22&name=test&size=40&start=2021-05-20&offset=25&radius=25000&sortBy=name%3Aasc%2Cdistance_m%3Adesc&country=US&created=example&updated=example&hotelIds=0e25533a-2db2-4894-9db1-4c1ff92d798c%2C77c272b6-18e6-4036-b9c3-7fc5454e3f6a&latitude=58.386186&longitude=-9.952549&starRating=example"
import requests
params = {
"end": "2021-05-22",
"name": "test",
"size": "40",
"start": "2021-05-20",
"offset": "25",
"radius": "25000",
"sortBy": "name:asc,distance_m:desc",
"country": "US",
"created": "example",
"updated": "example",
"hotelIds": "0e25533a-2db2-4894-9db1-4c1ff92d798c,77c272b6-18e6-4036-b9c3-7fc5454e3f6a",
"latitude": "58.386186",
"longitude": "-9.952549",
"starRating": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/impala.travel/hotels/1.003/hotels",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/impala.travel/hotels/1.003/hotels');
url.searchParams.set('end', '2021-05-22');
url.searchParams.set('name', 'test');
url.searchParams.set('size', '40');
url.searchParams.set('start', '2021-05-20');
url.searchParams.set('offset', '25');
url.searchParams.set('radius', '25000');
url.searchParams.set('sortBy', 'name:asc,distance_m:desc');
url.searchParams.set('country', 'US');
url.searchParams.set('created', 'example');
url.searchParams.set('updated', 'example');
url.searchParams.set('hotelIds', '0e25533a-2db2-4894-9db1-4c1ff92d798c,77c272b6-18e6-4036-b9c3-7fc5454e3f6a');
url.searchParams.set('latitude', '58.386186');
url.searchParams.set('longitude', '-9.952549');
url.searchParams.set('starRating', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/impala.travel/hotels/1.003/hotels")
q := baseURL.Query()
q.Set("end", "2021-05-22")
q.Set("name", "test")
q.Set("size", "40")
q.Set("start", "2021-05-20")
q.Set("offset", "25")
q.Set("radius", "25000")
q.Set("sortBy", "name:asc,distance_m:desc")
q.Set("country", "US")
q.Set("created", "example")
q.Set("updated", "example")
q.Set("hotelIds", "0e25533a-2db2-4894-9db1-4c1ff92d798c,77c272b6-18e6-4036-b9c3-7fc5454e3f6a")
q.Set("latitude", "58.386186")
q.Set("longitude", "-9.952549")
q.Set("starRating", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/impala.travel/hotels/1.003/hotels")
uri.query = URI.encode_www_form({
"end" => "2021-05-22",
"name" => "test",
"size" => "40",
"start" => "2021-05-20",
"offset" => "25",
"radius" => "25000",
"sortBy" => "name:asc,distance_m:desc",
"country" => "US",
"created" => "example",
"updated" => "example",
"hotelIds" => "0e25533a-2db2-4894-9db1-4c1ff92d798c,77c272b6-18e6-4036-b9c3-7fc5454e3f6a",
"latitude" => "58.386186",
"longitude" => "-9.952549",
"starRating" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/impala.travel/hotels/1.003/hotels?" . http_build_query([
"end" => "2021-05-22",
"name" => "test",
"size" => "40",
"start" => "2021-05-20",
"offset" => "25",
"radius" => "25000",
"sortBy" => "name:asc,distance_m:desc",
"country" => "US",
"created" => "example",
"updated" => "example",
"hotelIds" => "0e25533a-2db2-4894-9db1-4c1ff92d798c,77c272b6-18e6-4036-b9c3-7fc5454e3f6a",
"latitude" => "58.386186",
"longitude" => "-9.952549",
"starRating" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Returns the full content, room types and rates for the specified hotel. When querying the hotels API you can query with or without dates. Where querying with dates requires providing valid values for the `start` and `end` parameters. Requests without these values will be considered a query without
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/impala.travel/hotels/1.003/hotels/{hotelId}?end=2021-05-22&start=2021-05-20"import requests
params = {
"end": "2021-05-22",
"start": "2021-05-20"
}
response = requests.get(
"https://api.apis.guru/v2/specs/impala.travel/hotels/1.003/hotels/{hotelId}",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/impala.travel/hotels/1.003/hotels/{hotelId}');
url.searchParams.set('end', '2021-05-22');
url.searchParams.set('start', '2021-05-20');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/impala.travel/hotels/1.003/hotels/{hotelId}")
q := baseURL.Query()
q.Set("end", "2021-05-22")
q.Set("start", "2021-05-20")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/impala.travel/hotels/1.003/hotels/{hotelId}")
uri.query = URI.encode_www_form({
"end" => "2021-05-22",
"start" => "2021-05-20"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/impala.travel/hotels/1.003/hotels/{hotelId}?" . http_build_query([
"end" => "2021-05-22",
"start" => "2021-05-20"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with Impala Hotel Booking API?
Impala Hotel Booking API is a Commerce API. Developers commonly use commerce APIs for:
- syncing product catalogues and inventory levels
- building price comparison and deal-finder tools
- processing orders and tracking shipments
- managing customer wishlists and reviews
- automating abandoned-cart and promotional emails
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. Impala Hotel Booking API is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?