Charter Boats API
Experiences

Register as Provider

Register as an experience provider

Endpoint

POST /experiences/register

Description

Register as an experience provider to list your local business (dive shop, restaurant, tours, etc.) on Charter Boats.

Authentication

Session authentication required. User must be logged in.

Request Body

FieldTypeRequiredDescription
business_namestringYesYour business name
business_typestringYesType of business (see below)
descriptionstringNoBusiness description
websitestringNoWebsite URL
phonestringNoContact phone
emailstringNoContact email
logo_urlstringNoLogo image URL

Business Types

ValueDescription
dive_shopScuba diving, snorkeling
restaurantWaterfront dining, catering
tour_operatorGuided tours, excursions
equipment_rentalKayaks, paddleboards, gear
marina_servicesDocking, fuel, repairs
provisioningGroceries, supplies delivery
water_sportsJet skis, parasailing, wakeboarding
fishing_charterGuided fishing trips
sailing_schoolLessons, certifications
yacht_clubMembership, events
otherOther marine-related business

Example Request

curl -X POST "https://charter.boats/api/experiences/register" \
  -H "Content-Type: application/json" \
  -d '{
    "business_name": "Ionian Dive Center",
    "business_type": "dive_shop",
    "description": "Premier dive shop on Lefkada since 2010",
    "website": "https://ioniandive.com",
    "phone": "+30 2645 012345",
    "email": "info@ioniandive.com"
  }'

Example Response

{
  "id": "e5f6a7b8-...",
  "user_id": "f9a0b1c2-...",
  "business_name": "Ionian Dive Center",
  "business_type": "dive_shop",
  "description": "Premier dive shop on Lefkada since 2010",
  "website": "https://ioniandive.com",
  "phone": "+30 2645 012345",
  "email": "info@ioniandive.com",
  "logo_url": null,
  "is_verified": false,
  "is_active": true,
  "created_at": "2026-03-08T10:00:00Z"
}

Error Responses

400 Bad Request

{
  "statusCode": 400,
  "message": "Business name and type are required"
}

400 Already Registered

{
  "statusCode": 400,
  "message": "Already registered as an experience provider"
}

400 Invalid Business Type

{
  "statusCode": 400,
  "message": "Invalid business type. Must be one of: dive_shop, restaurant, tour_operator, ..."
}

401 Unauthorized

{
  "statusCode": 401,
  "message": "Unauthorized"
}

Notes

  • Each user can only register as a provider once.
  • New providers start unverified (is_verified: false).
  • After registering, add locations and offerings from the dashboard at /dashboard/experiences.

On this page