Skip to main content

API Clean Up - What Changed in the Last Week?

Being close to going live, we wanted to take the opportunity for some last minute cleanup. Because we want to go live with a version 1 that we're happy with, not just whatever we ended up with after eight months of developing.

Turned out, there was a lot we wanted to improve. Here's the list of updates from last week, and some tips on how to migrate over.

Big changes

We combined rate plans and extra services into a new module called 'rateplan'. Just change the paths:
catalog/services => rateplan/services
catalog/inventory => rateplan/inventory
rates/rateplans => rateplan/rateplan
rates/rates => rateplan/rates

Rate plans, inventory and services now all have a service type and a VAT type. The two values where previously concatenated, which was a bit dirty.

The booking model changed to accomodate new requirements:

  • In the output model, we do not include the reservations anymore. You can still get them, just call GET reservations and filter by bookingId.
  • The guest is now called 'primaryGuest', as a preparation to support more than one registered person in a room, instead of one registered person and a bunch of strangers.
  • We added a second comment field. Now there is one for the guest ("I am horribly allergic to peanuts and cats."), and one for the hotel team ("Forward the *peanut* allergy information to the restaurant team.")
  • We have less required fields in the addresses of booker and guest, to not annoy potential guests with filling out long forms. That also means you cannot rely on them being there. For the booker, only email and name are required, for the guest, only the name.
  • The guest and booker title now have actual values, not numbers. For now, there are Mr, Ms, Dr and 'other', if you are none of those, or don't want to tell.

Small changes

  • When amending a reservation, you now have to specify the number of persons.
  • Rate plans must have a cancellation policy set. You can define those using
  • renamed 'serviceIds' to 'extraServiceIds' in reservations, to make it clearer that those are not the services included in a predefined package.

Fix Spelling

The service type enum value 'accommodation' finally got its second 'm', and addressline1 and addressline2 were renamed to addressLine1 and addressLine2. Capital L.

Added - gives you the VAT types and percentages for one specific country. We don't support many now, but that list will grow as we go.


The links are gone. We realized nobody was using them, and keeping them around seemed pretty useless.

That's all. We tried our best to come up with a clean structure and understandable names. If you have any feedback on what to improve or change (or also what you like), it would be amazing if you'd let us know - we build the API for you, and want you to like it.


Popular posts from this blog

Getting Started with apaleo APIs

Have a look You can find all of apaleo's API on We use Swagger to describe it, and to generate our documentation.

Sign up The first step is to sign up for an account. After you finish signup you will be able to login to our apaleo app and start configuring your properties. Also you can use the same credentials to access our API using Swagger. Get access for app We're still new and want to get in touch with you before we grant you access. Contact us at, to get your very own client credentials that lets you play with the API in our sandbox.
Use it apaleo APIs are protected using OAuth2 - the de-facto standard for API security. Here's a short guide to get you started:

Step 1: To get access to our APIs, you need to use your client id and secret to obtain an access token. Don't have one? Contact us at

Combine your client id and secret into a string, separated by colon yourClientId:YourClientSecret and encode with Base64. This wi…

Connect your app with OAuth 2.0

What is this all about? When you connect your app to apaleo, it can read or modify data, or even trigger entire business flows of a hotel. But before gaining access to any of the resources in the REST API, it must get permission from the hotel. This guide will walk you through the authorization process (described in greater detail by the OAuth 2.0 specification). Note: apaleo's OAuth 2.0 implementation supports the standard authorization code grant type. You should implement the application flow described below to obtain an authorization code and then exchange it for a token. (The implicit grant type is not supported.) Terminology Before learning more about the details of the authorization process, make sure that you are familiar with some of the key terms that are used in this guide: Client: Any application that would like access to a hotel's data. A user (usually the hotel's owner or admin) must grant permission before the client can access any data.API: apaleo REST API. T…

Channel Integration Guide

With the channel integration you can subscribe for availability, rates and inventory (ARI), create new bookings and modify existing bookings. 
The BasicsGet your sandbox account and check out this guide to learn how you can connect to the apaleo APIs.
API Client All apaleo APIs are described as swagger documents. That lets you generate API clients directly from the swagger.json files. There is a large community, providing client generators for almost every language. For example, swagger code generator is a good project, which allows generation of API clients for Java, PHP, C#, NodeJS and more. This gets you up to speed very fast and as a bonus you can access API documentation within the auto-generated methods and models. is our – and your – playground to do first steps with the API, up to your final integration. Use it to interactively explore the API or to learn the apaleo concepts by navigating the user interface.

These are the links you need to know