Open Data Interface (ODI) for Suppliers

Overview

As a provider of accommodations services you can connect your system to OpenBooking via the OpenBooking Data Interface ODI. Based on open standards (JSON/REST) you provide your core and booking data to OpenBooking directly from your system.

There are 3 different parts of ODI you have to implement:

  1. Core data of accommodations and offers including general availability information for apartments

  2. Real-time webservice for availability-search and price calculation

  3. Data of bookings that took place via OpenBooking leads

All data is exchanged in JSON format. We provide the appropriate JSON schema files which you can use to validate your JSON files against.

Before you can start integrating into OpenBooking, you must request an Import-Key. The Import-Key is a string token which indicates for which OpenBooking client you provide the data. You need one Import-Key per client you provide data for through OpenBooking.

Step 1: Providing core data

OpenBooking imports core data for accommodations and offers via JSON/HTTP on a daily basis. You provide the data in the following way:

  1. Creating an Index JSON file per OpenBooking client/Import key. The Index JSON includes URL-based references to all the accommodation files for this client.

  2. Create one JSON file per accommodation/offer.

  3. Place the files on an HTTP/HTTPS accessible server where OpenBooking has access to.

  4. Register the Index JSON for every client with OpenBooking incl. an escalation email address where our index process can send error reports to (currently you have to send us an email with the details. We’re working on a self-service dashboard solution).

Create the Index JSON

The Index JSON is like a sitemap.xml, but in JSON format. It contains an array with URLs to all the accommodation JSON files that OpenBooking should index/crawl for a specific client daily. It looks like this:

{
"_v": 1,
"importkey":882a4ee419”,
"comment": “This is for Wallis Valais Promotion”,
"accommodations": [
{
"url": "https://www.mybookingsystem.ch/acco1.json",
"ts": 232321323
},
{
"url": "https://www.mybookingsystem.ch/acco2.json",
"ts": 242424242
}
]
}

The Index JSON can have any name, it doesn’t have to be “index.json”.

Schema:

Make sure your Index JSON validates against this JSON schema.

Fields descriptions:

Key

Data Type

Usage

_v

string

ODI format version specifier. Must be 1

importkey

string

Identifies the relation between the data provider (you) and the OpenBooking client. The import key is provided to you by OpenBooking.

comment

string

Free text, not used by OpenBooking

accommodations

array

.url

string

URL of the JSON for a single accommodation

.ts

integer

Unix Timestamp when this file was last updated. OpenBooking will only import/process files which where the timestamp changed since the last import

Create the accommodation JSON files

You have to create one JSON file per accommodation/offer you want to ingest into OpenBooking. Accommodation JSON files can be reused for different clients/import keys, if they do not contain any client specific data. Otherwise you must create different JSON files for every client. An accommodation JSON file looks like this:

Schema: https://jsonschema.scalingo.io/accommodation.json

Make sure your JSON validates against this JSON schema. The fields are documented in the JSON schema. You can access our JSON schema viewer for your convenience:

Step 2: Real-time webservice for availability-search with price calculation

Whenever a user is searching for vacancies on one of the OpenBooking implementations, our backend system retrieves availabilities and prices from a number of different data sources in real-time. To connect to OpenBooking, you must provide a live web service.

The webservice gets search parameters like checkin, checkout date, number of persons, etc.

and must respond with free vacancies and the prices matching exactly the given search parameters.

This is how your API must look like:

https://docs.openbooking.ch/odi_riae.html

Step 3: Bookings JSON file

OpenBooking provides its clients a multi-channel view for bookings and overall booking revenue. To accomplish this, you need to provide historical booking data for every booking that took place coming from OpenBooking leads.

Please contact OpenBooking if you're able to send bookings.