curl --request POST \
--url https://partners.crewpass.co.uk/api/v2/employers/me/crew/{crew_unique_id}/compliance-checks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://partners.crewpass.co.uk/api/v2/employers/me/crew/{crew_unique_id}/compliance-checks"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://partners.crewpass.co.uk/api/v2/employers/me/crew/{crew_unique_id}/compliance-checks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://partners.crewpass.co.uk/api/v2/employers/me/crew/{crew_unique_id}/compliance-checks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://partners.crewpass.co.uk/api/v2/employers/me/crew/{crew_unique_id}/compliance-checks"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://partners.crewpass.co.uk/api/v2/employers/me/crew/{crew_unique_id}/compliance-checks")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://partners.crewpass.co.uk/api/v2/employers/me/crew/{crew_unique_id}/compliance-checks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"crew_unique_id": "<string>",
"as_of": "2023-11-07T05:31:56Z",
"overall_status": "<string>",
"compliance_source": "<string>",
"vessel_id": "<string>",
"position_name": "<string>",
"summary": {
"total": 0,
"met": 0,
"expiring": 0,
"expired": 0,
"missing": 0,
"pending": 0
},
"requirements": [
{
"key": "<string>",
"group": "<string>",
"status": "<string>",
"category": "<string>",
"title": "<string>",
"code": "<string>",
"constraint": "<string>",
"expiry_date": "<string>",
"days_until_expiry": 123,
"required": true,
"satisfied_by": [
{
"document_id": "<string>",
"title": "<string>",
"expiry_date": "<string>",
"download_path": "<string>"
}
],
"modules": [
{
"code": "<string>",
"name": "<string>",
"status": "<string>",
"days_until_expiry": 123,
"document_id": "<string>"
}
]
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Check a crew member's compliance
A crew member’s compliance with the requirements of their role on your vessel.
Each row in requirements is one requirement (medical, STCW, certificate or
qualification) with its own status and the documents that satisfy it.
compliance_source says how the result was produced. If the crew member is
on more than one of your vessels, pass vessel_id to choose the vessel.
Returns 404 if the crew member is not on one of your vessels.
Requires crew:compliance:read.
curl --request POST \
--url https://partners.crewpass.co.uk/api/v2/employers/me/crew/{crew_unique_id}/compliance-checks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://partners.crewpass.co.uk/api/v2/employers/me/crew/{crew_unique_id}/compliance-checks"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://partners.crewpass.co.uk/api/v2/employers/me/crew/{crew_unique_id}/compliance-checks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://partners.crewpass.co.uk/api/v2/employers/me/crew/{crew_unique_id}/compliance-checks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://partners.crewpass.co.uk/api/v2/employers/me/crew/{crew_unique_id}/compliance-checks"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://partners.crewpass.co.uk/api/v2/employers/me/crew/{crew_unique_id}/compliance-checks")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://partners.crewpass.co.uk/api/v2/employers/me/crew/{crew_unique_id}/compliance-checks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"crew_unique_id": "<string>",
"as_of": "2023-11-07T05:31:56Z",
"overall_status": "<string>",
"compliance_source": "<string>",
"vessel_id": "<string>",
"position_name": "<string>",
"summary": {
"total": 0,
"met": 0,
"expiring": 0,
"expired": 0,
"missing": 0,
"pending": 0
},
"requirements": [
{
"key": "<string>",
"group": "<string>",
"status": "<string>",
"category": "<string>",
"title": "<string>",
"code": "<string>",
"constraint": "<string>",
"expiry_date": "<string>",
"days_until_expiry": 123,
"required": true,
"satisfied_by": [
{
"document_id": "<string>",
"title": "<string>",
"expiry_date": "<string>",
"download_path": "<string>"
}
],
"modules": [
{
"code": "<string>",
"name": "<string>",
"status": "<string>",
"days_until_expiry": 123,
"document_id": "<string>"
}
]
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Partner API key (cpk_live_* / cpk_test_*) as a Bearer token.
Headers
Your API key, as an alternative to the Authorization: Bearer header.
Path Parameters
Query Parameters
Body
No fields yet: send an empty JSON object ({}).
Response
Successful Response
A crew member's compliance with the requirements of their role.
overall_status is compliant, at_risk, non_compliant or no_role.
compliance_source is live_evaluator when the result was worked out for
this request, or crewCompliance_fallback when CrewPass returned its most
recent stored result instead. summary counts the rows in requirements.
How many requirements are in each status. The counts add up to total,
which equals the number of rows in requirements.
Show child attributes
Show child attributes
Show child attributes
Show child attributes