Endpoints & Capabilities

OCTO defines several Core Endpoints that apply 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

Returns availability for a given Product & Option as a single object per start time (or day). You have to perform this step to retrieve an availabilityId required for Bookings.

POST

Creates a booking that reserves the availability (e.g. while you collect payment and contact information from the customer) for a given availabilityId. The booking will remain with the status ON_HOLD until Booking Confirmation or when the reservation hold expires.

POST

Confirms previously placed Booking Reservation, finalizing the booking and making it ready to be used.

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

Extends the Booking Reservation availability hold if the booking status is ON_HOLD.

GET

Returns the status and details of your existing booking.

GET

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

Capabilities

Name
ID
Description

pricing

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

notifications

Allows to subscribe to be notified when something changes against products, availability or bookings.

content

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

pickups

Adds structured pickup support, allowing predefined or customer-defined pickup locations, including pickup time windows.

dropoffs

Adds structured dropoff support, allowing predefined or customer-defined end-of-tour return locations, including time-window details.

promotions

🚨 In development, not reviewed or ratified. Adds promotional pricing to availability and bookings, exposing promotional offers and their details.

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

Was this helpful?