Availability
The first step when making a sale is to check for availability. Note if allowFreesale is set to true on the product then this step is optional but it is advised you check it anyway if you can to check for closures.
OCTO has two main availability calls:
Availability Calendar endpoint is designed to be highly optimized and returns a single object per day. It's designed to be queried for large date ranges and the result is used to populate an availability calendar.
Availability Check endpoint may be slightly slower as it will return an object for each individual departure time (or day).
Availability Calendar
This endpoint is highly optimised and will return a single object per day. It's designed to be queried for large date ranges and the result is used to populate an availability calendar.
When the end user selects an open date you can call on /availability endpoint to get the availabilityId to create the booking.
The product id.
6b903d44-dc24-4ca4-ae71-6bde6c4f4854The option id.
DEFAULTStart date to query for (YYYY-MM-DD).
2022-05-23End date to query for (YYYY-MM-DD).
2022-05-29OK
Example response
POST /octo/availability/calendar HTTP/1.1
Host: api.example.com
Content-Type: application/json
Accept: */*
Content-Length: 131
{
"productId": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
"optionId": "DEFAULT",
"localDateStart": "2022-06-14",
"localDateEnd": "2022-06-16"
}[
{
"localDate": "2022-06-14",
"available": true,
"status": "AVAILABLE",
"vacancies": 20,
"capacity": 20,
"openingHours": []
},
{
"localDate": "2022-06-15",
"available": true,
"status": "AVAILABLE",
"vacancies": 10,
"capacity": 10,
"openingHours": []
},
{
"localDate": "2022-06-16",
"available": true,
"status": "AVAILABLE",
"vacancies": 10,
"capacity": 10,
"openingHours": []
}
]Availability Check
A reseller has to perform Availability Check to retrieve an availabilityId in order to make a Booking Reservation, so this endpoint is critical for the booking flow.
This endpoint is slightly slower as it will return an object for each individual departure time (or day). You have to perform this step to retrieve an availabilityId in order to confirm a sale, so if you just want to use this endpoint and skip the calendar endpoint then that's perfectly ok.
You must pass in one of the following combinations of parameters for this endpoint:
localDatelocaleDateStartandlocalDateEndavailabilityIds
The product id.
6b903d44-dc24-4ca4-ae71-6bde6c4f4854The option id.
DEFAULTStart date to query for (YYYY-MM-DD). Required if localDateEnd is set.
2022-05-23End date to query for (YYYY-MM-DD). Required if localDateStart is set.
2022-05-29Filter the results by the given ids.
["2022-05-23T00:00:00+01:00"]OK
Example response
POST /octo/availability HTTP/1.1
Host: api.example.com
Content-Type: application/json
Accept: */*
Content-Length: 131
{
"productId": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
"optionId": "DEFAULT",
"localDateStart": "2022-05-23",
"localDateEnd": "2022-05-29"
}[
{
"id": "2022-06-30T00:00:00+01:00",
"localDateTimeStart": "2022-06-30T00:00:00+01:00",
"localDateTimeEnd": "2022-07-01T00:00:00+01:00",
"allDay": true,
"available": true,
"status": "FREESALE",
"vacancies": null,
"capacity": null,
"maxUnits": null,
"utcCutoffAt": "2022-06-29T22:00:00Z",
"openingHours": [
{
"from": "09:00",
"to": "17:00"
}
]
}
]Last updated