Skip to main content
Restricted — requires a sponsorship program. See the Sponsorship API overview for access and auth.
Auto-provisions one crew member into a sponsored Premium seat in a single call (just-in-time). DSS creates or reuses the account, attaches the vessel by IMO, turns on Premium, and starts billing the seat to you. The member is active on success.

Request body

Response

201 Created when a new seat is provisioned; 200 OK on an idempotent replay (an open seat already existed for this email — see below).
vessel_resolved: false is not an error. A 7-digit IMO that DSS hasn’t seen yet still yields a provisioned, Premium seat. Pass vessel_name to help, and DSS resolves and back-fills tracking asynchronously. Poll the seat on the roster if you want to confirm resolution.

Idempotency

Provisioning is idempotent per email within your program:
  • If the email already holds an open seat (active), the call returns that existing seat with 200 and does not create a second seat or a second bill.
  • Otherwise a new seat is created and returned with 201.
You may also send an optional Idempotency-Key header for your own tracing/retry safety:
The header is accepted for convenience, but the email is the primary idempotency key — an open seat for the same email is never duplicated, regardless of the header value.

Members with no vessel

vessel_imo is optional. A member between jobs, working shoreside, or on a hull with no IMO still gets their account and Premium — provision them without it:
The seat comes back with vessel_resolved: false and no vessel_id. Everything else works normally: the member is Premium immediately and is billed to you from that moment. When they join a vessel, re-submit the same email with the IMO. That is treated as a vessel move — it attaches the vessel and starts tracking, and does not create a second seat or a second charge.
vessel_resolved: false also comes back when an IMO is supplied that we cannot validate. We do not create a placeholder vessel for an IMO we could not confirm, because tracking a member against a hull that may not exist is worse than reporting the vessel as unresolved. Re-submit once the IMO is correct.
Omitting vessel_imo is not the same as sending a wrong one. A malformed value is rejected with 422 rather than ignored — silently dropping a typo’d IMO would leave the member with no vessel and no signal that anything went wrong.

Errors