Charter Boats
Charter Boats API
Fees

List Boat Fees

Get all fees for a specific boat

GET/boats/:id/fees

Retrieve all fees for a boat, filtered by its active pricing source. Fees are ordered by sort_order.

Path Parameters

ParameterTypeDescription
idstringBoat ID (UUID)

Query Parameters

ParameterTypeRequiredDescription
startstringNoStart date (YYYY-MM-DD) -- filter to fees valid in this range
endstringNoEnd date (YYYY-MM-DD) -- filter to fees valid in this range
productstringNoRestrict to fees for a product variant (e.g. Bareboat, Crewed); fees with no product_name are always included

When start and end are both provided, only fees that overlap the date range are returned. Fees with no valid_from/valid_to dates are always included.

The id path parameter must be a UUID. Non-UUID values return an empty array.

Request

curl https://charter.boats/api/boats/550e8400-e29b-41d4-a716-446655440000/fees

With date range filter:

curl "https://charter.boats/api/boats/550e8400-e29b-41d4-a716-446655440000/fees?start=2024-07-01&end=2024-07-14"

Response

Returns an array of fee objects.

[
  {
    "id": "700d75e6-e2a7-4273-a0b0-834317f699ee",
    "boat_id": "3a121be0-c1f8-4432-8e18-4a125b46da65",
    "description": "End cleaning Tranz log",
    "amount": 270,
    "period": "per_booking",
    "required": true,
    "sort_order": 0,
    "created_at": "2026-04-08T04:54:31.253295+00:00",
    "category": "service",
    "on_request": false,
    "valid_from": "1970-01-01",
    "valid_to": "2124-10-16",
    "min_duration": null,
    "max_duration": 365,
    "amount_is_percentage": false,
    "calculation_type": "separate_payment",
    "product_name": "Bareboat"
  },
  {
    "id": "747f015b-c7fb-45fe-98ef-044468cd814b",
    "boat_id": "3a121be0-c1f8-4432-8e18-4a125b46da65",
    "description": "Skipper (+ food)",
    "amount": 160,
    "period": "per_day",
    "required": true,
    "sort_order": 0,
    "created_at": "2026-04-08T04:54:31.253295+00:00",
    "category": "service",
    "on_request": false,
    "valid_from": "1970-01-01",
    "valid_to": "2127-06-21",
    "min_duration": null,
    "max_duration": 365,
    "amount_is_percentage": false,
    "calculation_type": "separate_payment",
    "product_name": "Crewed"
  }
]

Response Fields

FieldTypeDescription
idstringFee ID (UUID)
boat_idstringBoat this fee belongs to
descriptionstringFee name/description
amountnumberFee amount in the boat's operator currency (or a percentage if amount_is_percentage is true)
periodstringBilling period (see below)
requiredbooleanIf true, fee is mandatory for every booking
categorystring | nullFee category (e.g., crew, equipment)
on_requestbooleanIf true, fee must be requested separately
sort_orderintegerDisplay order
valid_fromstring | nullStart date of validity period (YYYY-MM-DD)
valid_tostring | nullEnd date of validity period (YYYY-MM-DD)
amount_is_percentagebooleanWhether amount is a percentage rather than a fixed value
calculation_typestring | nullHow the fee is settled (e.g. separate_payment)
min_durationinteger | nullMinimum booking duration (days) for this fee to apply
max_durationinteger | nullMaximum booking duration (days) for this fee to apply
product_namestring | nullProduct/package variant this fee belongs to (e.g. Bareboat, Crewed)
created_atstringISO 8601 timestamp

Fee Periods

PeriodDescription
per_bookingCharged once per booking
per_dayMultiplied by the number of rental days
per_personCharged per guest
per_person_per_dayPer guest per day
per_person_per_nightPer guest per night
per_weekCharged per week
one_wayOne-way delivery fee

On this page