Endpoints & Capabilities

OCTO defines a number of Core Endpoints that are applicable to most use cases and are required for the implementation.

Since not all use cases can be fulfilled with just the core endpoints, OCTO provides a concept of Capabilities, allowing for enhancement to the integrations based on specific needs. Capabilities are optional for implementation and to enhance integration by, for example, adding additional information about pricing, content, pickups, etc.

OCTO API Core Endpoints

Name
Method
Description

GET

Returns a single Supplier and associated details for a given Supplier ID.

GET

Returns a list of Products and associated details.

GET

Returns a single Product and associated details for a given Product ID.

POST

Returns availability for a given Product & Option as a single object per day. Optimized to be queried for large date ranges and to populate an availability calendar.

POST

POST

POST

PATCH

Updates/changes your booking before and after it has been confirmed as long as it hasn't yet been redeemed or within the cancellation cutoff window.

POST

Cancels your booking. You can only cancel a booking if booking.cancellable is TRUE, and is within the booking cancellation cut-off window.

POST

GET

Returns the status and details of your existing booking.

GET

Returns the list of the bookings you made for the given filters.

Capabilities

Note the Capabilities listed on this page are NOT yet part of the official OCTO Specification and are provided for reference only.

Name
ID
Description

octo/pricing

Adds pricing to most endpoints giving you advanced static and dynamic pricing capabilities.

octo/content

Extends the core product, option, and unit schemas to provide rich content and images.

octo/pickups

Adds hotel pickup options to the booking allowing the guest to be picked up and set which pickup location they want to be picked up from.

octo/webhooks

You control which capabilities you want to enable by using the Octo-Capabilities header. For example:

GET /availability HTTP/1.1
Host: {host}
Authorization: Bearer {your_API_key}
Octo-Capabilities: octo/content, octo/offers

It's also possible to use the _capabilities query parameter if you're unable to use headers:

GET /availability?_capabilities=octo/content,octo/pricing HTTP/1.1
Host: {host}
Authorization: Bearer {your_API_key}

You can list all the capabilities with a comma to separate each one.

Last updated