This page will help you get started with Hospitable Connect

Hospitable Connect provides a seamless integration with your application and a number of OTAs.

Obtaining a Bearer token

In order to make use of Hospitable Connect you must have a valid bearer token. Bearer tokens are provided to qualifying partners who share the following information:

  • The name of your product, as you'd like it displayed to your customers.
  • A URL pointing to a hosted image of your logo in square format, which will be visible in the end-user connection flow.
  • A webhook URL, where your webhooks will be sent.

To request access, please complete this form.

Changes

In order to better meet the needs of our partners, hosts, and guests, we are constantly adding to and enhancing the numerous services and capabilities available to you through the Hospitable Connect API. We will always let you know about these updates in advance.

Rate Limits

Our endpoints are rate-limited to 60 requests/minute. In case of too many requests, you will receive a 429 Too Many Requests response.

Fetching more data in a single request

Our API offers flexibility with regards to what payload you can fetch in each endpoint, including nested data.

For example you may want to make a few fast, small requests to get only subset of the JSON (a simple list of reservations in a mobile app would be a perfect example):

GET /customers/{customer}/reservations?_select=id,status,listing.id,listing.public_name,listing.picture

Alternatively, you may want to optimise for single, potentially slower, large request with more and nested data (that is usually direction we take in backend-backend calls):

# full dataset for reservation.listing.channel

GET /customers/{customer}/reservations?  
_select=id,platform,platform_id,booking_date,arrival_date,departure_date,status,guests,guest,listing,listing.id,listing.platform,listing.platform_id,listing.public_name,listing.private_name,listing.picture,listing.address,listing.bathrooms,listing.bedrooms,listing.available,listing.pricing,listing.availability,listing.platform_settings,listing.channel,listing.channel.id,listing.channel.platform,listing.channel.platform_id,listing.channel.name,listing.channel.picture,listing.channel.location,listing.channel.description,listing.channel.first_connected_at

Example of reservation.listing.channel nesting:

# subset of data for reservation.listing.channel

GET /customers/{customer}/reservations?
_select=id,platform_id,listing.id,listing.platform_id,listing.channel.id,listing.public_name,listing.picture

📘

Always select what you need

We do not support select all here (listing.* will not work). This gives us much better visibility and helps improve the API in the long run

Check the next section of the documentation on filters, sorting, select & includes to learn more.