---
title: "Create a manual booking (captain)"
method: POST
path: "/api/v1/bookings"
tags: ["Bookings"]
---

# Create a manual booking (captain)

`POST /api/v1/bookings`

## Request

- Base URL: `http://localhost:3002`
- URL: `http://localhost:3002/api/v1/bookings`
- Auth: HTTP bearer

## Headers

- `Idempotency-Key` string, uuid: Client-supplied UUID v4. Repeat requests with the same key return the cached response.

## Request body

- object
  - `date` string, required
  - `startTime` string, required
  - `endTime` string, required
  - `durationId` string
  - `harborId` string, required
  - `pricingTierId` string, required
  - `firstName` string
  - `lastName` string
  - `email` union
    - ''
    - string, email
  - `phone` string
  - `partySize` integer, required
  - `specialRequests` string
  - `slipNumber` string, nullable
  - `gateCode` string, nullable
  - `slipInstructions` string, nullable
  - `status` 'CONFIRMED' | 'DEPOSIT_PAID' | 'BALANCE_PAID' | 'COMPLETED', required
  - `totalPriceOverride` integer
  - `depositOverride` integer
  - `balanceOverride` integer
  - `tipAmount` integer
  - `payments` object[]
    - `type` 'DEPOSIT' | 'BALANCE' | 'TIP', required
    - `amount` integer, required
    - `note` string

## Response `201`

Created

- object
  - `data` object, required
    - `bookingId` string, required

## Other responses

- `400`: Request body or query parameters failed validation.
- `401`: Authentication required, or the bearer token is missing or invalid.
- `404`: The requested resource does not exist (existence is not leaked).
- `409`: Idempotency-Key was reused with a different request body

---

[API](https://skmtc.dev/chartercaptain/apis/charter-captain-api.md) · [All operations](https://skmtc.dev/chartercaptain/apis/charter-captain-api/llms.txt) · [OpenAPI document](https://skmtc.dev/chartercaptain/apis/charter-captain-api/revisions/1ffea1113adb?raw)
