Skip to main content
The API is versioned in the path (/api/v2/). Additive changes (new endpoints, new optional response fields) are not breaking. Removing a field, changing a type, or tightening a scope is breaking and ships under a new path version.

2026-07-02 — compliance as a unified requirement matrix

POST /api/v2/employers/me/crew/{id}/compliance-checks now returns a full requirement matrix, so you can see at a glance exactly which requirements a crew member holds, which document satisfies each, and what is still outstanding.
  • requirements[] — one row per requirement, grouped as medical, stcw, certificate, or qualification. Each row has its own status (met · expiring · expired · missing · pending), plus title, optional expiry_date, and days_until_expiry.
  • satisfied_by[] — the actual document(s) meeting each requirement, each with document_id, title, expiry_date, and a branded download_path you can fetch directly. Empty when the requirement is unmet.
  • STCW rows carry per-module detail under modules[].
  • summary — totals per status that always reconcile with requirements[].
  • overall_status with compliance_source — the verdict comes straight from the CrewPass compliance engine (live_evaluator). If the engine is briefly unavailable the response falls back to the stored projection and flags it via compliance_source, so the provenance of every verdict is explicit.
This supersedes the earlier interim compliance breakdown with a single, consistent shape.

2026-06-30 — richer crew profile & document detail

Several read fields now carry more detail and map more precisely to the underlying records. All changes are additive except the two field-value changes noted below.
  • Profile phone is now returned in full international (E.164) form (dial code
    • national number, e.g. +447700900000), with a new ISO country_code alongside it. Value change: phone previously returned the national number only.
  • Profile address.full_address (new) gives the composed single-line address; line1 stays null when no street was supplied.
  • Employment history source now reports the verification level of each entry — self_reported or employer_verified. Value change: it previously returned the dashboard origin (crew_dashboard / employer_dashboard).
  • Documents now return only current, live documents — rejected, replaced/deduplicated, and inactive placeholders are excluded from listings, expiring counts, and downloads, so what you see reflects what a crew member actually holds.

2026-06-23 — simpler read authentication (no request signing)

Reads now authenticate with just your API key as a Bearer token over TLS — request signing has been dropped from all reads, so there is nothing to sign on a GET. HMAC signing is retained only for verifying outbound webhook deliveries. See Authentication. No request or response shapes changed; only the read auth requirement is simpler.

2026-06 — v1 management read surface + webhooks

The v1 management-company surface: read-only plus webhooks, on top of the auth → scope → rate-limit → HMAC → isolation → consent → audit spine. Your fleet is derived from your CrewPass employer account; there is nothing to attach. Endpoints
  • GET /api/v2/partners/me — identity + granted scopes.
  • GET /api/v2/employers/me/vessels — your vessels (vessels:fleet:read).
  • GET /api/v2/employers/me/fleet — crew across your vessels, with verification + background-check status and documents-expiring counts, paginated (vessels:fleet:read + per-crew crew:status:read).
  • POST /api/v2/employers/me/crew/lookup — resolve a crew member by email (crew:status:read).
  • GET /api/v2/employers/me/crew/{id}/profile — base profile, plus an identity block under crew:profile:full:read.
  • GET /api/v2/employers/me/crew/{id}/photo — branded photo proxy (crew:profile:read).
  • GET /api/v2/employers/me/crew/{id}/documents — documents with issuer + verification status (crew:documents:read).
  • GET /api/v2/employers/me/crew/{id}/documents/{document_id}/download — short-lived, branded file link (crew:documents:download).
  • POST /api/v2/employers/me/crew/{id}/compliance-checks — compliance as a unified requirement matrix (crew:compliance:read).
Webhooks
  • crew.document.processed, crew.document.updated, crew.compliance.changed, crew.status.changed, crew.profile.updated. See Webhooks.