Outdated version

This documentation is outdated and is soon going to be deprecated. For the latest in Reservations API documentation, see the Reservations overview section.

The following section is outdated and Booking.com does not actively verify its accuracy. Use at your own discretion.


Use the Reservations API module to retrieve and modify reservations on Booking.com. If you are using Java, our downloadable Reservations API Java library will make your implementation easier.

Retrieval process

We recommend periodically calling the API — every minute, for example — to retrieve a list of recently created, modified, or cancelled reservations. You can do this with either the B.XML or OTA endpoint.

If you use OTA, be aware that there is an extra step to the retrieval process. In addition to successfully retrieving reservations, you must also send a call to let the API know that you have received everything in good order. The steps are described in more detail on the /ota/OTA_HotelResNotif endpoint page.

See our overview of recommendations for all Reservation API implementations.

Retrieval time limit

You should strive to process new, modified, and cancelled reservations almost instantly (see Retrieval process). However, if you do not successfully retrieve a reservation within 30 minutes after creation or modification, we forward it to the property as an e-mail. This ensures that a property never misses important updates.

As described under Retrieval process, the steps for processing are different depending on the endpoint you use.

Java library

If your software uses Java, our Java library will make it easier to implement the Reservations API:

This is a generic example that demonstrates how to use the library:

BookingReservationAPI api = new BookingReservationAPI("<username>",
                                                      new BookingReservationHandler() {
                                                          public BookingReservationAcknowledgement handle(BookingReservation reservation) {
                                                              // Handle reservation.
api.pullPeriodically();  // Create a separate thread internally.
api.cancelPeriodicPull();  // Only use if you really need to cancel periodic pull!

For more details about the available methods, see the Javadoc library.


The API returns errors both as HTTP status codes, as well as in the response body as XML elements.

The most common error response is HTTP 403 Forbidden. This usually indicates that you are trying to retrieve reservations for a property to which you don't have access.