Search Link: https://www.apis.guru.com
Overview
- GET /bookings
- POST /bookings
- DELETE /bookings/{bookingId}
- GET /bookings/{bookingId}
- PUT /bookings/{bookingId}
- PUT /bookings/{bookingId}/booking-contact
- GET /hotels
- GET /hotels/{hotelId}
- GET /hotels/{hotelId}/rate-plans
- PARAMETERS /hotels/{hotelId}/rate-plans
- GET /hotels/{hotelId}/rate-plans/{ratePlanId}
- PARAMETERS /hotels/{hotelId}/rate-plans/{ratePlanId}
GET /bookings
Summary: List all bookings
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), 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.000Z would 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.
OpenAPI snippet URL
POST /bookings
Summary: Create a booking
Creates a booking for for the rate and dates you specify in the request body.
You’ll need a roomTypes[].rates[].rateId that’s bookable for those dates, which you can find using the Retrieve a hotel 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 Retrieve a hotel 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, in this article
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.
OpenAPI snippet URL
DELETE /bookings/{bookingId}
Summary: Cancel a booking
Cancels 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 the cancellation.fee object.
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.
OpenAPI snippet URL
GET /bookings/{bookingId}
Summary: Retrieve a booking
Returns all details for the specified booking.
OpenAPI snippet URL
PUT /bookings/{bookingId}
Summary: Change a booking
Updates 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 Change a Booking’s Contact Details 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 made their booking, e.g. you’ll need to query for availability and use the roomTypes[].rates[].rateId that 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 updateBookingVersionAtTimestamp field with the updatedAt timestamp of the booking. You can find this value by looking up the booking via the Retrieve a booking 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 status of this booking will switch back to PENDING until 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.
OpenAPI snippet URL
PUT /bookings/{bookingId}/booking-contact
Summary: Change a booking contact
Updates a confirmed booking with the booking contact details you provide in the request body.
In addition, we require you to supply a updateBookingVersionAtTimestamp field with the updatedAt timestamp of the booking. You can find this value by looking up the booking via the Retrieve a booking 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.
OpenAPI snippet URL
GET /hotels
Summary: List all hotels
Returns 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 deals feature. (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.
OpenAPI snippet URL
GET /hotels/{hotelId}
Summary: Retrieve a hotel
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 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 rates attribute 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 rates array.
For rooms where there are available prices the rates array 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 rateId of any of those rates, you can use the Create a booking endpoint to make a booking.
OpenAPI snippet URL
GET /hotels/{hotelId}/rate-plans
Summary: List all rate plans (rate calendar) for a hotel (Beta endpoint)
Returns 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 List all hotels 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 snippet URL
PARAMETERS /hotels/{hotelId}/rate-plans
OpenAPI snippet URL
GET /hotels/{hotelId}/rate-plans/{ratePlanId}
Summary: List a rate plan (rate calendar) for a hotel (Beta endpoint).
Returns 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.
OpenAPI snippet URL
PARAMETERS /hotels/{hotelId}/rate-plans/{ratePlanId}
OpenAPI snippet URL