impala.travel – hotels
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 , enter your details and receive your sandbox API key immediately (no credit card needed).
2. Start building within minutes: Build against a sandbox API with realistic test data. Use a to see what's possible. Check for available hotels and their rates. Make and manage fake bookings without any risk. Add room booking to your existing website or app, or start an online travel agency from scratch.
3. Go live within hours: Once your app or integration is ready for prime time, move to production within your Impala dashboard and start making real hotel bookings for your customers right away.
Want to see how it all works? Watch of the two API requests you need to make a booking, and a demo of one of our customer's apps.
- Homepage
- https://api.apis.guru/v2/specs/impala.travel:hotels/1.003.json
- Provider
- impala.travel:hotels / hotels
- OpenAPI version
- 3.0.0
- Spec (JSON)
- https://api.apis.guru/v2/specs/impala.travel/hotels/1.003/openapi.json
- Spec (YAML)
- https://api.apis.guru/v2/specs/impala.travel/hotels/1.003/openapi.yaml
Tools (12)
Extracted live via the executor SDK.
-
bookings.cancelBookingCancels the specified booking with immediate effect. This action might result in a cancellation charge being charged.
Submitting this request means we'll notify the hotel of the cancellation and that they won't expect your guest.
You can use
GET /bookings/{bookingId}to see the cancellation policies that apply to a booking at a given point in time. Please note that cancelling a booking will incur a cancellation fee according to the rules that apply at the time of cancellation. You can find the cancellation fee that has been charged in the response of this call in thecancellation.feeobject.If the booking you cancelled allows for a partial or full refund, we'll credit your Impala balance with the amount we charged you as the seller of this booking – meaning we'll deduct the amount the next time we're requesting payment for the sum of all the bookings you made.
-
bookings.createBookingCreates a booking for for the rate and dates you specify in the request body.
You'll need a
roomTypes[].rates[].rateIdthat's bookable for those dates, which you can find using the endpoint.If you have provided a credit card on the dashboard then Impala will send the booking to the hotel immediately. We'll ensure payment is taken care of before your guest arrives at the hotel.
- Your guest needs to be paying you the rate specified in
retailRate(as listed in the response) before you submit this request. - Once your request is received and the booking is confirmed, Impala will charge you as the seller this
retailRateminus thesellerCommissionPercentage(which is the affiliate commission you get to keep). We'll use the business credit card you've added to your account as payment method for this. - The difference between the amount you charge your guest (
retailRate, e.g. 200 €) and what Impala charges you (retailRateminussellerCommissionPercentage, e.g. 200 €) is your commission (in this example: 20 €) to keep.
You can find more information on how money flows between your guest and you, and you and Impala,
This request might take up to 20 seconds to load. While we work to return a response to your request within milliseconds in most cases, some bookings require us to re-verify current pricing in real-time and doing so might take up to 20 seconds. Please make sure your app handles this waiting state appropriately.
- Your guest needs to be paying you the rate specified in
-
bookings.listBookingsReturns 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), lower than or equal to (lte), greater than or equal to (gte) and equal to (eq).Example: Adding the query parameters
start[gt]=2021-05-20&updated[lte]=2020-11-20T11:11:00.000Zwould return bookings arriving after May 20th, 2020 that were updated before or on November 20th, 2020 at 11:11 am UTC.You can specify the sorting order in which bookings are returned:
- This is done by using the
sortByquery parameter. - Results can be sorted by
createdAtandupdatedAt - The parameter allows for a comma-separated list of arguments with
:asc(ascending, the default if no sorting is specified) and:desc(descending) modifiers.
- This is done by using the
-
bookings.retrieveBookingReturns all details for the specified booking.
-
bookings.updateBookingUpdates the specified booking with immediate effect. This action might result in a cancellation charge being charged.
Please note that if you wish to change the contact details associated with a booking, you should use the endpoint.
Changes / updates a confirmed booking with the details you provide in the request body.
When your guest needs to change their booking, you can use this endpoint to change any of the details you initially supplied when you , e.g. you'll need to query for availability and use the
roomTypes[].rates[].rateIdthat are available currently for their new stay dates. Any new rates selected must be for the same hotel as the original booking.A booking cannot be updated on or after the check in day of the original or new stay.
In addition, we require you do supply a
updateBookingVersionAtTimestampfield with theupdatedAttimestamp of the booking. You can find this value by looking up the booking via the endpoint. This is to avoid race conditions where another update might have happened since the last time you have checked for the current details of this booking.The
statusof this booking will switch back toPENDINGuntil we have submitted and confirmed the new details with the hotel.This request might take up to 20 seconds to load. While we work to return a response to your request within milliseconds in most cases, some bookings require us to re-verify current pricing in real-time and doing so might take up to 20 seconds. Please make sure your app handles this waiting state appropriately.
-
bookings.updateBookingContactUpdates a confirmed booking with the booking contact details you provide in the request body.
In addition, we require you to supply a
updateBookingVersionAtTimestampfield with theupdatedAttimestamp of the booking. You can find this value by looking up the booking via the endpoint. This is to avoid race conditions where another update might have happened since the last time you have checked for the current details of this booking. -
hotels.listHotelsReturns a list of all hotels worldwide that can be booked through Impala.
You can filter the results:
-
Adding
longitude,latitudeand aradius(in meters) query parameters will filter the results to hotels around this location. -
Adding
startandenddates (in ISO 8601 notation, e.g.2021-12-31) for the expected arrival and departure dates of your guests will limit the results to hotels that have at least one room bookable for this timeframe. -
Adding
starRating,nameorcountryallows you to filter to hotels based on these values (e.g.?starRating[gte]=4&name[like]=palacefor hotels with a rating of 4 or up with a name containing "palace") -
Adding
hotelIdsallows you to limit the results to include only hotels with the ids listed. Its value should be a comma-separated list of hotel ids (e.g.?hotelIds[]=hotelIdA,hotelIdB) -
Adding
contractableallows you to filter to hotels that you can directly negotiate with through our . (e.g?contractable=trueor?contractable=false)
You can specify the sorting order in which hotels are returned:
- This is done by using the
sortByquery parameter. - Results can be sorted by
namealphabetically, starratinganddistance_m(in meters from the specified latitude/longitude location). - The parameter allows for a comma-separated list of arguments with optional
:asc(ascending, the default if the modifier is omitted) and:desc(descending) modifiers.
If no hotels match your filter criteria, an empty array will be returned.
-
-
hotels.retrieveHotelReturns 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
startandendparameters. Requests without these values will be considered a query without dates.Querying without dates:
When you query without dates, the search result will include all properties that match your request. Including all content that is associated with those properties. However you will find that the
ratesattribute for each room will always be empty.Querying with dates:
When you query with dates, the search result will include all properties that match your request, including all content that is associated with those properties. Rooms which do not have available prices for the provided dates will appear with an empty
ratesarray.For rooms where there are available prices the
ratesarray will include both the public rates of the hotel, along with prices that come from deals in which you are participating. This would include private deals which you have negotiated with a hotel, along with Impala deals which you have been verified for.Using the
rateIdof any of those rates, you can use the endpoint to make a booking. -
rateCalendar.listRatePlanForHotelForRatePlanIdReturns a single rate plan available for you for a hotel.
Rate plans are products the hotel is offering. They typically consist of a combination of restrictiveness in case of cancellations or changes, the time they're bookable, minimum or maximum length of stay restrictions (e.g. week-long bookings), included components like breakfast or dinner and/or the conditions under which the room can be sold (e.g. private rates that can only be offered and sold to a closed user group behind login).
Examples of rate plans:
- Non-refundable room rate that includes breakfast
- Room-only rate with free cancellation up to 14 days before arrival
This endpoint returns a singular available rate plan.
-
rateCalendar.listRatePlansForHotelReturns a list of all rate plans available for you for a hotel.
Rate plans are products the hotel is offering. They typically consist of a combination of restrictiveness in case of cancellations or changes, the time they're bookable, minimum or maximum length of stay restrictions (e.g. week-long bookings), included components like breakfast or dinner and/or the conditions under which the room can be sold (e.g. private rates that can only be offered and sold to a closed user group behind login).
Examples of rate plans:
- Non-refundable room rate that includes breakfast
- Room-only rate with free cancellation up to 14 days before arrival
For each such rate plan this endpoint returns the room types it's available for, alongside prices for each date and occupancy that can be sold – or the information that the room isn't available (closed) for a certain date.
For the vast majority of our customers, availability searches using the endpoint are the best choice. It accepts the dates your guest is looking for and provides the rates to display.
This endpoint can help augment this for two additional use cases:
This endpoint allows you to query rate prices for all future dates in one go, making it a great choice to feed availability information and prices into your own system or displaying a rate calender to guide your guests to gain an overview of future availability and prices.
-
openapi.previewSpecPreview an OpenAPI document before adding it as a source
-
openapi.addSourceAdd an OpenAPI source and register its operations as tools