Requires
crew:compliance:read. Authenticated with your API key as a Bearer token over TLS; reads are not signed. It’s a read-only POST with an empty JSON body.What feeds compliance
Four kinds of requirement are checked, each a row in the matrix with its owngroup:
- Medical (
group: "medical") — the ENG1 (or equivalent) seafarer medical: status and expiry. CrewPass never exposes the doctor or clinic. - STCW basic safety training (
group: "stcw") — the standard safety modules (Personal Survival, Fire Prevention, First Aid, Personal Safety…), with a per-modulemodules[]breakdown. - Certificates (
group: "certificate") — the specific certificates the crew member’s position requires (e.g. Ship Security Officer, Helideck courses). - Qualifications (
group: "qualification") — advanced/rank qualifications and endorsements (e.g. Master<3000GT, ECDIS, GMDSS), matched from the crew’s maritime competence profile.
Get a compliance snapshot
cURL
?vessel_id=<ves_…>
(from their fleet row) so the check is for the right position.
The response is a single requirement matrix: one row per role requirement —
Medical, STCW, each Certificate, each Qualification — with its own status and
the document(s) that satisfy it. The summary always reconciles (the parts sum
to total, and total equals the number of rows).
Response
Reading the result
Start withoverall_status (compliant · at_risk · non_compliant · no_role),
then work the requirements[] matrix:
groupbuckets the requirement:medical·stcw·certificate·qualification.statusis the verdict:met·expiring·expired·missing·pending.satisfied_by[]is the document(s) that meet it — each with adocument_id,title,expiry_date, and a readydownload_path(pass it to the document download flow). Empty when the requirement is unmet.- The STCW basic row carries a
modules[]breakdown (per-module status). summarygives the counts and always reconciles with the rows.
compliance_source tells you how the result was produced: live_evaluator
(the full matrix incl. certificates + qualifications) or crewCompliance_fallback
(STCW + Medical only, used if the evaluation service is briefly unavailable).
The verdict is computed by CrewPass’s compliance engine — you read it, you don’t
recompute it. A practical “who needs attention” filter: any crew member with
overall_status non_compliant/at_risk, or any requirement whose status is
missing, expired, or expiring.
Next
- Documents & downloads — pull the certificate behind a requirement.
- Webhooks — get a
crew.compliance.changedevent instead of polling.