---
title: "Claim a marketplace-expanded sub-out booking"
method: POST
path: "/api/v1/sub-out/bookings/{bookingId}/claim"
tags: ["sub-out"]
---

# Claim a marketplace-expanded sub-out booking

`POST /api/v1/sub-out/bookings/{bookingId}/claim`

## Request

- Base URL: `http://localhost:3002`
- URL: `http://localhost:3002/api/v1/sub-out/bookings/{bookingId}/claim`
- Auth: HTTP bearer

Candidate captain claims an OWNER_APPROVED sub-out referral that was posted to the marketplace expansion. URL is keyed on bookingId for friendlier iOS UX; the route resolves the corresponding referral. Atomic guard rejects races with 409.

## Path parameters

- `bookingId` string, required

## Headers

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

## Request body

- EmptyBody

## Response `200`

Booking claimed

- object
  - `data` SubOutReferral, required
    - `id` string, required
    - `sourceType` string, required
    - `sourceId` string, required
    - `bookingId` string, nullable, required
    - `subOutState` string, nullable, required
    - `subOutReason` string, nullable, required
    - `status` string, required
    - `targetType` string, required
    - `targetId` string, required
    - `currentOfferId` string, nullable
    - `offerExpiresAt` string, date-time, nullable
    - `ownerApproval` string, nullable

## Other responses

- `401`: Authentication required, or the bearer token is missing or invalid.
- `403`: Authenticated but not permitted to access this resource.
- `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)
