Update Boat
Update a boat listing
/boats/:idUpdate an existing boat listing. Only the fields you include in the request body will be changed. Requires an authenticated session -- this is a dashboard endpoint used by company members.
Authentication
Requires an authenticated user session (cookie-based). The user must be a member of the company that owns the boat.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Boat UUID |
Request Body
All fields are optional. Only include the fields you want to change.
Allowed Fields
| Field | Type | Description |
|---|---|---|
title | string | Boat name/title |
description | string | Full description |
boat_type | string | yacht, catamaran, sailboat, motorboat, rib, or other |
capacity | integer | Maximum guests |
length_ft | number | Length in feet |
year | integer | Year built |
location_id | integer | Location/marina ID |
latitude | number | GPS latitude |
longitude | number | GPS longitude |
price_per_day | number | Daily rate |
instant_book | boolean | Allow instant booking |
is_active | boolean | Whether the listing is active |
is_published | boolean | Whether the listing is visible to guests |
Amenities
Pass an array of amenity IDs to replace all amenities. Omit to leave amenities unchanged.
Request
Response
Returns the full updated boat object. If the boat is missing required fields for publishing, a missing array is included.
Auto-Unpublish
If an update causes the boat to no longer meet publishing requirements (e.g., removing required fields), the boat is automatically unpublished. In that case, the response includes:
Errors
| Status | Message |
|---|---|
400 | Boat ID is required |
401 | Unauthorized (no valid session) |
403 | Not a member of the boat's company |
404 | Boat not found |