Quick Start
Start importing boats in under 5 minutes
This guide walks you through importing a boat listing using the Charter Boats API.
Prefer not to write code? You can also add a boat through the dashboard UI at charter.boats/dashboard/boats/new — no API key required. This API guide is for bulk or automated imports.
Prerequisites
- An API key (generate one from your dashboard)
- Boat details ready (title, type, capacity, and the marina's coordinates)
Import Your First Boat
1. Prepare your request
Create a JSON payload with your boat details:
title, boat_type (see Boat Types) and capacity are the only required fields. See the full field list in the Import Boat reference.
How the marina is found
Send the marina's coordinates, or a known location's location_id — they are what places the boat:
- With
location_id, that location is used as sent (an id that names no location is a400). - Otherwise, with
latitude/longitude, the boat is linked to the nearest known location within roughly 1 km of that point. - If nothing is that close, a new marina is created there, named after
location_address(without one it has no name and shows as its type, "Marina"), withlocation_statestored as its country.
A name never finds a location — location_address, location_city and location_state only fill in a new marina. A boat sent with neither location_id nor coordinates ends up with no location at all, and a boat without a location cannot be published.
2. Send the request
3. Check the response
A successful response returns the created boat:
Store the boat's id (UUID) — the slug in view_url can change when the listing is renamed.
Imported boats are created unpublished. Going live needs a location, a capacity, at least one image and check-in days (charter_day or check_in_periods, fields of both the import and Update Boat). Send "is_published": true and a complete import is published straight away; otherwise fill what is missing — a location, capacity or check-in days through Update Boat, images in the dashboard — and it publishes once complete.
Boat Types
The following boat_type values are accepted. Leave boat_type out and a boat whose model we already know takes that model's type; a model we don't know yet (or know no type for) needs it sent, or the request is a 400.
| Value | Description |
|---|---|
sailboat | Sailing yacht |
catamaran | Catamaran |
yacht | Motor yacht |
motorboat | Motorboat |
gulet | Gulet |
rib | Rigid inflatable boat |
other | Anything else (river and canal boats, for example) |
Any other value is rejected with 400.
Set Pricing & Availability
Imported boats need pricing before they can be booked. Seasonal prices and fees are configured from the dashboard — these edits are tied to your logged-in session and aren't exposed as keyed API endpoints. To read the resulting price for specific dates, use Resolve Pricing; for the raw seasonal rules, see Seasonal Pricing.