Charter Boats
Charter Boats API
AI Integrations

Search Locations (AI)

Search sailing destinations with diacritics-safe matching and boat counts

GET/ai/locations

Search for sailing locations — marinas, harbours, and anchorages where a boat can berth or drop anchor and stay overnight (charter bases are locations too). Uses normalized matching that handles diacritics and special characters. Returns locations with boat counts.

Authentication

No authentication required. Rate limited to 60 requests per 10 minutes.

Query Parameters

ParameterTypeRequiredDescription
qstringYesSearch query (minimum 2 characters). Marina name, city, island, or country.
limitintegerNoMax results (default: 5, max: 20)

Request

curl "https://charter.boats/api/ai/locations?q=split&limit=3"

Response

{
  "locations": [
    {
      "id": 21166,
      "name": "Split, MCI Marine Club International",
      "city": "Split",
      "country": "Croatia",
      "type": "marina",
      "lat": 43.527441,
      "lon": 16.461807,
      "boat_count": 7,
      "url": "https://charter.boats/locations/21166"
    },
    {
      "id": 21157,
      "name": "Split, West Coast (Zapadna obala)",
      "city": "Split",
      "country": "Croatia",
      "type": "marina",
      "lat": 43.504576,
      "lon": 16.430397,
      "boat_count": 39,
      "url": "https://charter.boats/locations/21157"
    }
  ]
}

Response Fields

FieldTypeDescription
locationsarrayMatching locations
locations[].idnumberLocation ID
locations[].namestringLocation name
locations[].citystring|nullCity
locations[].countrystring|nullCountry
locations[].typestringLocation type (harbour_category, defaults to marina)
locations[].latnumberLatitude
locations[].lonnumberLongitude
locations[].boat_countintegerNumber of published boats at this location
locations[].urlstringLink to location page on charter.boats

Errors

StatusMessage
400Search query must be at least 2 characters

Location Details

GET/ai/locations/{id}

Full detail for a single location: description, coordinates, facilities, rating, and a summary of nearby points of interest.

Request

curl "https://charter.boats/api/ai/locations/21157"

Response

{
  "id": 21157,
  "name": "Split, West Coast (Zapadna obala)",
  "city": "Split",
  "municipality": "Grad Split",
  "country": "Croatia",
  "type": "marina",
  "description": "Split's West Coast Marina (Zapadna Obala) puts you right in the heart of the city, with Diocletian's Palace and the buzzing Riva promenade just steps from your berth...",
  "lat": 43.504576,
  "lon": 16.430397,
  "capacity": null,
  "max_draft": null,
  "vhf_channel": null,
  "phone": null,
  "website": null,
  "rating": 3.8,
  "rating_count": 19,
  "boat_count": 0,
  "amenities": [],
  "poi_categories": [
    "parking", "chandlery", "restaurant", "fuel", "grocery",
    "bank", "pharmacy", "fishing", "entertainment", "laundry"
  ],
  "poi_count": 200,
  "url": "https://charter.boats/locations/21157"
}

Response Fields

FieldTypeDescription
idnumberLocation ID
namestringLocation name
citystring|nullCity
municipalitystring|nullMunicipality
countrystring|nullCountry
typestringLocation type (harbour_category, defaults to marina)
descriptionstring|nullDescription (trimmed to ~500 chars)
latnumberLatitude
lonnumberLongitude
capacitynumber|nullBerth capacity
max_draftnumber|nullMaximum draft in metres
vhf_channelstring|nullMarina VHF channel
phonestring|nullContact phone
websitestring|nullWebsite URL
ratingnumber|nullAverage rating
rating_countinteger|nullNumber of ratings
boat_countintegerBoats listed directly at this location
amenitiesarrayList of amenity names
poi_categoriesarrayPOI categories present near this location
poi_countintegerTotal nearby points of interest
urlstringLink to location page on charter.boats

Errors

StatusMessage
400Location ID required
404Location not found

On this page