Skip to content
Developers
esc
  • Type an endpoint, an object or a word from a guide.

Getting started

Conventions

Eight rules that hold on every endpoint.

JSON, over HTTPS, server to server

Every request and response body is JSON, except the PDF download and the token form. There are no CORS headers. Credentials belong on your server, never in a browser.

Money is integer euro-cents

€2,400.00 is 240000. There are no floats in this API, so don’t introduce one on your side. A null amount means the operator has not set one. It is not zero.

Dates are days, not instants

A tenancy date is a YYYY-MM-DD string, a calendar day local to the property. Parsed into a UTC datetime, it can shift by a day. Instants (createdAt, sentAt, …) are ISO 8601 in UTC and carry the Z.

Check-out is exclusive

A tenancy from the 1st to the 30th occupies the 1st through the 29th, and the 30th is available. The calendar agrees: a day is booked up to, not including, check-out. nights on a reservation is endDate minus startDate.

Ids are opaque strings

Store them as they come. Nothing is encoded in them, and their shape may change. A listing id is the same id a reservation’s propertyId carries, so the two join.

The listings response is the complete set

It is neither a delta nor paginated. A row that vanishes was unpublished; delete it from your mirror. Reservations do page and filter. Use updatedSince for an incremental sync.

Nothing is cacheable

Every response carries Cache-Control: no-store. Cache in your own database, and let webhooks tell you when to refresh.

Versioned in the path

This is /api/v1. Fields are added without notice, so ignore fields you don’t know. Nothing documented here is removed or renamed without a new prefix.