Charter Boats
Charter Boats API
AI Integrations

Search POIs (AI)

Find restaurants, fuel stations, shops, and attractions near a sailing destination

GET/ai/pois

Find points of interest near a sailing destination. Accepts a location name (fuzzy matched), a location ID from a previous search, or a direct POI-name query. Returns POIs sorted by distance from the nearest marina.

Authentication

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

Query Parameters

ParameterTypeRequiredDescription
locationstringNoLocation name (fuzzy matched against name + city). Use this, location_id, or q.
location_idstringNoExact location ID from a previous searchLocations call.
qstringNoDirect POI-name search (no location required). Returns each POI with location: null.
categorystringNoFilter by POI category (see below). Omit for all categories.
limitintegerNoMax results (default: 10, max: 30)

At least one of location, location_id, or q is required.

Categories

ValueDescription
restaurantRestaurants, cafes, bars
fuelMarine and regular fuel stations
grocerySupermarkets, bakeries, convenience stores
chandleryBoat supplies, marine equipment
pharmacyPharmacies
bankBanks, ATMs, currency exchange
laundryLaundromats
entertainmentAttractions, museums, nightlife
parkingParking
fishingFishing supplies

Categories present at a given location are returned in categories_available (sorted by count).

Request

# Find restaurants near Split (by name)
curl "https://charter.boats/api/ai/pois?location=split&category=restaurant"
 
# Find all POIs near a specific location ID
curl "https://charter.boats/api/ai/pois?location_id=21157&limit=20"
 
# Direct POI name search
curl "https://charter.boats/api/ai/pois?q=Nava"

Response

{
  "pois": [
    {
      "id": "297cb8af-90cd-4acc-ad6a-28325cb105c8",
      "name": "Nautika centar Nava",
      "category": "chandlery",
      "subcategory": "boat_shop",
      "description": "Authorized dealer for Lagoon, Beneteau, X-Yachts, and Nimbus...",
      "rating": null,
      "cuisine": null,
      "phone": null,
      "website": "https://www.navaboats.com/",
      "opening_hours": null,
      "image_url": "https://navaboats.com/wp-content/uploads/2022/12/yacht-sales-croatia-1920x1080.jpg",
      "location": "100 meters from Split, West Coast (Zapadna obala)",
      "url": "https://charter.boats/pois/297cb8af-90cd-4acc-ad6a-28325cb105c8"
    }
  ],
  "locations_searched": ["Split, West Coast (Zapadna obala)"],
  "categories_available": ["parking", "chandlery", "restaurant"]
}

When using q (direct name search), each POI has location: null and the response omits locations_searched.

Response Fields

FieldTypeDescription
poisarrayPoints of interest sorted by distance
pois[].idstringPOI UUID
pois[].namestringPOI name
pois[].categorystringPOI category
pois[].subcategorystring|nullMore specific category
pois[].descriptionstring|nullDescription
pois[].ratingnumber|nullRating (1-5)
pois[].cuisinestring|nullCuisine type (restaurants only)
pois[].phonestring|nullPhone number
pois[].websitestring|nullWebsite URL
pois[].opening_hoursstring|nullOpening hours
pois[].image_urlstring|nullImage URL
pois[].locationstring|nullDistance + nearest marina (e.g. "100 meters from Split, West Coast"). null for direct q searches.
pois[].urlstringLink to the POI page on charter.boats
locations_searchedarrayNames of the marinas searched (omitted for q searches)
categories_availablearrayCategories that have results, sorted by count

Errors

StatusMessage
400Provide location, location_id, or q (search by name)

POI Details

GET/ai/pois/{id}

Full detail for a single point of interest, including address, nearby marinas with walking times, and any special offers. The {id} must be a POI UUID.

Request

curl "https://charter.boats/api/ai/pois/297cb8af-90cd-4acc-ad6a-28325cb105c8"

Response

{
  "id": "297cb8af-90cd-4acc-ad6a-28325cb105c8",
  "name": "Nautika centar Nava",
  "category": "chandlery",
  "subcategory": "boat_shop",
  "description": "Authorized dealer for Lagoon, Beneteau, X-Yachts, and Nimbus...",
  "cuisine": null,
  "address": null,
  "city": null,
  "country": null,
  "phone": null,
  "website": "https://www.navaboats.com/",
  "opening_hours": null,
  "rating": null,
  "rating_count": null,
  "nearby_locations": [
    { "name": "Split, West Coast (Zapadna obala)", "distance_meters": 100, "walking_time_minutes": 2 },
    { "name": "ACI Marina Split", "distance_meters": 230, "walking_time_minutes": 3 }
  ],
  "special_offers": [],
  "url": "https://charter.boats/pois/297cb8af-90cd-4acc-ad6a-28325cb105c8"
}

Response Fields

FieldTypeDescription
idstringPOI UUID
namestringPOI name
categorystringPOI category
subcategorystring|nullMore specific category
descriptionstring|nullDescription (trimmed to ~500 chars)
cuisinestring|nullCuisine type (restaurants only)
addressstring|nullStreet address
citystring|nullCity
countrystring|nullCountry
phonestring|nullPhone number
websitestring|nullWebsite URL
opening_hoursstring|nullOpening hours
ratingnumber|nullRating (1-5)
rating_countinteger|nullNumber of ratings
nearby_locationsarrayUp to 3 nearby marinas with name, distance_meters, walking_time_minutes
special_offersarrayUp to 3 offers with title, description, discount_type, discount_value
urlstringLink to the POI page on charter.boats

Errors

StatusMessage
400Valid POI UUID required
404POI not found

On this page