githubEdit

Resources

Adds the ability to see and edit resource allocations

To use this capability, add octo/resources to your Octo-Capabilities header.

Resources are allocated to each booking and determine availability for resource-based products (for example vehicles, rooms, or seat maps).

circle-info

Even for products that rely on resources, this capability is optional. If you do not provide resource selections, allocations are assigned automatically.

circle-info

Operations below use the /octo prefix.

Check Available Resources

get

Retrieve available resources for a specific availability.

Responses
chevron-right
200

Successful response

application/json

From capability octo/resources.

resourceIdstringRequired

Resource identifier.

Example: res_bus_12
namestringOptional

Name value.

Example: Coach 12
remainingintegerOptional

Remaining numeric value.

Example: 24
totalintegerOptional

Total numeric value.

Example: 30
statusstringRequired

Current status value.

Example: AVAILABLE
startstringOptional

Start value.

Example: 2026-03-01T08:30:00-08:00
endstringOptional

End value.

Example: 2026-03-01T12:30:00-08:00
resourceGroupIdstringOptional

Resource group identifier.

Example: resource_group_front_row
get
/availability/resources
200

Successful response

Check Available Resources

post

Retrieve available resources for a specific availability.

Body

From capability octo/resources.

availabilityIdstringOptional

Availability identifier (local date or local date-time).

Example: 2026-05-14T09:00:00-04:00
dropoffPointIdstringOptional

From capability octo/pickups.

Example: dropoff_fishermans_wharf
pickupPointIdstringOptional

From capability octo/pickups.

Example: pickup_union_square
Responses
chevron-right
200

Successful response

application/json

From capability octo/resources.

resourceIdstringRequired

Resource identifier.

Example: res_bus_12
namestringOptional

Name value.

Example: Coach 12
remainingintegerOptional

Remaining numeric value.

Example: 24
totalintegerOptional

Total numeric value.

Example: 30
statusstringRequired

Current status value.

Example: AVAILABLE
startstringOptional

Start value.

Example: 2026-03-01T08:30:00-08:00
endstringOptional

End value.

Example: 2026-03-01T12:30:00-08:00
resourceGroupIdstringOptional

Resource group identifier.

Example: resource_group_front_row
post
/availability/resources
200

Successful response

Returns resources grouped by resourceGroupId for a single availabilityId.

Request Fields

For GET, send these as query parameters. For POST, send them in the JSON body.

Response Fields

Response is an array of resource-group objects.

Seat Object

Used in resource.seats[], availableSeats[], selectedSeats[], and booking allocation seats[].

Seller Object (driver/guide)

See the resource operations above for response payload examples.

circle-info

Each booking must allocate enough resources from every required resource group. When resourceGroup.split is false, one resource in that group must cover the full requested size.

Booking Reservation / Update

Resource allocations are accepted on all booking write routes that call booking create/update logic:

  • POST /bookings

  • PATCH /bookings/{uuid}

  • POST /bookings/{uuid}/confirm

circle-info

Request resourceAllocations[].paxCount and resourceAllocations[].seatIds are ignored by current booking write parsing. Pax and seat assignment are computed server-side from allocation/unit data.

circle-info

When resourceAllocations is present and non-empty, allocations not included in the submitted list are removed from the booking. Sending resourceAllocations: [] is currently a no-op (existing allocations remain unchanged).

resourceAllocations is appended to serialized booking objects on:

  • POST /bookings

  • PATCH /bookings/{uuid}

  • POST /bookings/{uuid}/confirm

  • GET /bookings/{uuid}

  • GET /bookings

  • POST /bookings/{uuid}/cancel

  • POST /bookings/{uuid}/extend

The same booking-response additions are also present in any other response that serializes a booking object.

Base booking schema: Bookings.

Added Availability Field

This capability also adds hasResources to serialized availability objects returned by:

  • POST /availability

  • POST /availability/batch

  • booking.availability inside serialized booking responses

Base availability schema: Availability.

circle-info

hasResources is added to /availability responses, not /availability/calendar responses.

Schema Additions (JSON)

These are additive fragments showing only fields introduced by this capability.

Availability

AvailabilityBatchRow

AvailabilityResourcesRequest

Booking

BookingWriteRequest

PackageAvailability

Last updated