Charter

Charter bookings.

GET/charter/{vesselId}/bookings

List a vessel's charter bookings

Supports `?cursor=` pagination. Bookings are annotated `isLocked: true` when the owning vessel's plan has downgraded below the `bookings_guests` feature tier.

Path parameters
NameInTypeRequiredDescription
vesselIdpathstring (uuid)required
Query parameters
NameInTypeRequiredDescription
cursorquerystringoptionalOpaque pagination cursor from a previous response's `pagination.cursor`. Omit this param entirely for the first page of cursor mode; pass `cursor=` (empty) is also accepted as "start from the beginning in cursor mode." Omitting `cursor` altogether (not even as an empty string) falls back to legacy `?page=` semantics on endpoints that still support it.
limitqueryintegeroptional
Response
FieldTypeRequiredDescription
dataarray<object>required
data[].idstring (uuid)optional
data[].vesselIdstring (uuid) | nulloptional
data[].bookingReferencestringoptional
data[].charterCompanystring | nulloptional
data[].startDatestring (date-time)optional
data[].endDatestring (date-time)optional
data[].embarkPortstring | nulloptional
data[].disembarkPortstring | nulloptional
data[].itineraryobject | array | nulloptional
data[].totalPricestring | nulloptionalSerialized as string to preserve Decimal precision.
data[].currencystringoptional
data[].depositPaidstring | nulloptionalSerialized as string to preserve Decimal precision.
data[].statusenum(inquiry | confirmed | in_progress | completed | cancelled)optional
data[].specialRequestsstring | nulloptional
data[].provisioningNotesstring | nulloptional
data[].notesstring | nulloptional
data[].apaAmountstring | nulloptionalSerialized as string to preserve Decimal precision.
data[].apaPercentagestring | nulloptionalSerialized as string to preserve Decimal precision.
data[].deliveryFeestring | nulloptionalSerialized as string to preserve Decimal precision.
data[].redeliveryFeestring | nulloptionalSerialized as string to preserve Decimal precision.
data[].taxRatestring | nulloptionalSerialized as string to preserve Decimal precision.
data[].taxAmountstring | nulloptionalSerialized as string to preserve Decimal precision.
data[].brokerNamestring | nulloptional
data[].brokerCommissionstring | nulloptionalSerialized as string to preserve Decimal precision.
data[].agentCommissionstring | nulloptionalSerialized as string to preserve Decimal precision.
data[].isArchivedbooleanoptional
data[].isLockedbooleanoptionalPresent only when the plan has downgraded below bookings_guests full-charter access.
data[].lockReasonstringoptional
data[].guestsarray<object>optional
data[].guests[].idstring (uuid)optional
data[].guests[].profileobjectoptional
data[].createdAtstring (date-time)optional
data[].updatedAtstring (date-time)optional
paginationobjectoptionalCanonical cursor-pagination block. On endpoints not yet retrofitted for true cursor support, `cursor` is a best-effort display-only value (not decodable, no `?cursor=` branch accepts it back) — see each endpoint's description for whether it has full cursor support.
pagination.cursorstring | nulloptionalOpaque token for the next page, or `null` when `hasMore` is `false`.
pagination.limitintegerrequired
pagination.hasMorebooleanrequired
pagination.totalintegerrequiredTotal row count matching the filter (not just this page).
metaobjectoptionalEndpoint-specific extra fields promoted out of the top level by envelope normalization (e.g. `totalAmount`, `planContext`, `hasApproximations`).
POST/charter/{vesselId}/bookings

Create a charter booking

Requires `bookingReference`, `startDate`, `endDate`. Financial fields (`totalPrice`, `apaAmount`, broker/agent commissions, etc.) are silently stripped unless the vessel's plan is Pro tier or higher for `bookings_guests`.

Path parameters
NameInTypeRequiredDescription
vesselIdpathstring (uuid)required
Request body
FieldTypeRequiredDescription
bookingReferencestringrequired
charterCompanystringoptional
startDatestring (date-time)required
endDatestring (date-time)required
embarkPortstringoptional
disembarkPortstringoptional
itineraryobjectoptional
totalPricestringoptionalSilently stripped unless the vessel plan is bookings_guests Pro+. Serialized as string to preserve Decimal precision.
currencystringoptional
depositPaidstringoptionalSerialized as string to preserve Decimal precision.
statusenum(inquiry | confirmed | in_progress | completed | cancelled)optional
specialRequestsstringoptional
provisioningNotesstringoptional
notesstringoptional
apaAmountstringoptionalSerialized as string to preserve Decimal precision.
apaPercentagestringoptionalSerialized as string to preserve Decimal precision.
deliveryFeestringoptionalSerialized as string to preserve Decimal precision.
redeliveryFeestringoptionalSerialized as string to preserve Decimal precision.
taxRatestringoptionalSerialized as string to preserve Decimal precision.
taxAmountstringoptionalSerialized as string to preserve Decimal precision.
brokerNamestringoptional
brokerCommissionstringoptionalSerialized as string to preserve Decimal precision.
agentCommissionstringoptionalSerialized as string to preserve Decimal precision.
Response
FieldTypeRequiredDescription
dataobjectrequired
data.idstring (uuid)optional
data.vesselIdstring (uuid) | nulloptional
data.bookingReferencestringoptional
data.charterCompanystring | nulloptional
data.startDatestring (date-time)optional
data.endDatestring (date-time)optional
data.embarkPortstring | nulloptional
data.disembarkPortstring | nulloptional
data.itineraryobject | array | nulloptional
data.totalPricestring | nulloptionalSerialized as string to preserve Decimal precision.
data.currencystringoptional
data.depositPaidstring | nulloptionalSerialized as string to preserve Decimal precision.
data.statusenum(inquiry | confirmed | in_progress | completed | cancelled)optional
data.specialRequestsstring | nulloptional
data.provisioningNotesstring | nulloptional
data.notesstring | nulloptional
data.apaAmountstring | nulloptionalSerialized as string to preserve Decimal precision.
data.apaPercentagestring | nulloptionalSerialized as string to preserve Decimal precision.
data.deliveryFeestring | nulloptionalSerialized as string to preserve Decimal precision.
data.redeliveryFeestring | nulloptionalSerialized as string to preserve Decimal precision.
data.taxRatestring | nulloptionalSerialized as string to preserve Decimal precision.
data.taxAmountstring | nulloptionalSerialized as string to preserve Decimal precision.
data.brokerNamestring | nulloptional
data.brokerCommissionstring | nulloptionalSerialized as string to preserve Decimal precision.
data.agentCommissionstring | nulloptionalSerialized as string to preserve Decimal precision.
data.isArchivedbooleanoptional
data.isLockedbooleanoptionalPresent only when the plan has downgraded below bookings_guests full-charter access.
data.lockReasonstringoptional
data.guestsarray<object>optional
data.guests[].idstring (uuid)optional
data.guests[].profileobjectoptional
data.createdAtstring (date-time)optional
data.updatedAtstring (date-time)optional
GET/charter/{vesselId}/bookings/{bookingId}

Get a charter booking

Returns `{ data: { booking: BookingDetail, planContext: {...} } }` — the booking is nested under a `booking` key (not returned bare), matching what the underlying handler emits before envelope normalization wraps the whole thing in `data`.

Path parameters
NameInTypeRequiredDescription
vesselIdpathstring (uuid)required
bookingIdpathstring (uuid)required
Response
FieldTypeRequiredDescription
dataobjectrequired
data.bookinganyoptional
data.planContextobjectoptional
data.planContext.isEnabledbooleanoptional
data.planContext.currentTierstring | nulloptional