Safety & Compliance API

Access marine casualty records and port state control inspection history. The safety & compliance API provides casualty event data, inspection reports, and deficiency details for vessels worldwide.

What is Safety & Compliance Data?

Safety and compliance data covers two critical areas of maritime oversight: marine casualty investigations and port state control inspections. Casualty records document maritime incidents including collisions, groundings, fires, and other safety events. Port state control inspection records track the results of vessel inspections conducted by port authorities, including deficiency findings and detention decisions. Together, these records provide a comprehensive view of a vessel's safety track record.

Coverage: Casualty records cover incidents investigated by maritime authorities worldwide. Inspection records include port state control inspections across all major MOU regions, with deficiency details and detention outcomes.

Use Cases

Vessel Vetting

Screen vessels based on casualty history and inspection records before chartering, berthing, or entering commercial agreements.

Insurance Underwriting

Assess vessel risk profiles using casualty records and inspection deficiency history for premium calculation and coverage decisions.

Regulatory Compliance

Monitor inspection outcomes and deficiency trends across a fleet. Track detention records and corrective actions.

Port State Control Analysis

Analyze inspection patterns by port, authority, MOU region, or vessel type. Identify systemic deficiency categories.

Available Endpoints

GET /vessel/{id}/casualties

Get Marine Casualty Records

Retrieve marine casualty records for a vessel, including incident details, severity classification, investigation status, and outcome information.

Parameters:

  • id (path) - Vessel identifier (MMSI or IMO number)
  • filter.idType - Identifier type: mmsi or imo (required)
  • pagination.limit - Results per page (max 50, default 20)
  • pagination.nextToken - Cursor for next page of results

Response includes:

  • Occurrence UUID, vessel names, IMO numbers
  • Date of occurrence and severity classification
  • Event type classifications
  • Investigating state and investigation status
  • Lives lost and pollution details
GET /vessel/{id}/inspections

Get Port State Control Inspections

Retrieve port state control inspection summary records for a vessel, including inspection dates, ports, deficiency counts, and detention status.

Parameters:

  • id (path) - Vessel identifier (MMSI or IMO number)
  • filter.idType - Identifier type: mmsi or imo (required)

Response includes:

  • Inspection date, port, and authority
  • MOU region and inspection type
  • Deficiency count and detention status
  • Detail ID for fetching full inspection report
GET /vessel/{id}/inspections/{detail_id}

Get Inspection Detail

Retrieve a detailed inspection report including individual deficiency records and detention grounds. Use the detail_id from the inspections list endpoint.

Parameters:

  • id (path) - Vessel identifier (MMSI or IMO number)
  • detail_id (path) - Inspection detail identifier (from inspections list)
  • filter.idType - Identifier type: mmsi or imo (required)

Response includes:

  • Total deficiency count
  • Deficiencies array with category, description, and count
  • Detention grounds array (if vessel was detained)

Code Examples

Get Vessel Inspections (cURL)

curl -X GET "https://api.vesselapi.com/v1/vessel/9074729/inspections?filter.idType=imo" \
     -H "Authorization: Bearer YOUR_API_KEY"

List Inspections with Detention Check (Python)

import requests

response = requests.get(
    "https://api.vesselapi.com/v1/vessel/9074729/inspections",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    params={"filter.idType": "imo"}
)

data = response.json()
for inspection in data["inspections"]:
    status = "DETAINED" if inspection["detained"] else "OK"
    print(f"{inspection['inspection_date']} - {inspection['port']} - {status}")

Analyze Inspection History (JavaScript)

const response = await fetch(
  "https://api.vesselapi.com/v1/vessel/9074729/inspections?" +
  new URLSearchParams({ "filter.idType": "imo" }),
  {
    headers: { "Authorization": "Bearer YOUR_API_KEY" }
  }
);

const data = await response.json();
const detained = data.inspections.filter(i => i.detained);
console.log(`${data.inspections.length} inspections, ${detained.length} detentions`);

Response Fields

Casualty Data (/vessel/{id}/casualties)

Field Description Example
occurrenceUuid Unique identifier for the casualty event 550e8400-e29b-41d4...
nameOfShip Array of vessel names involved ["EVER GIVEN"]
imoNr Array of IMO numbers of vessels involved ["9074729"]
dateOfOccurrence Date the incident occurred 2021-03-23
occurrenceSeverity Severity classification Very Serious
eventType Array of event type classifications ["Grounding"]
investigatingState State conducting the investigation Panama
finishedInvestigation Whether investigation is complete true
livesLostTotal Total fatalities "0"
peopleInjuredTotal Total number of people injured (string) "0"
casualtyReportNr Casualty report reference number MCA/2021/001
pollution Whether pollution resulted from the incident false

Inspection Summary (/vessel/{id}/inspections)

Field Description Example
inspection_date Date of the inspection 2024-08-15
port Port where inspection was conducted Rotterdam
authority Inspecting authority name Netherlands
mou_region MOU region of the inspection Paris MOU
inspection_type Type of inspection Initial
deficiencies Number of deficiencies found 3
detained Whether the vessel was detained false
detail_id ID for fetching detailed inspection data abc123

Inspection Detail (/vessel/{id}/inspections/{detail_id})

Field Description Example
deficiency_count Total number of deficiencies 3
deficiencies[] Array of deficiency records (array)
deficiencies[].category Deficiency category Fire Safety
deficiencies[].deficiency Specific deficiency description Fire doors not operational
deficiencies[].count Number of instances 1
detention_grounds[] Array of detention reasons (if detained) (array)

Ready to Assess Vessel Safety?

Try these endpoints interactively in the API Explorer, complete with live examples and response previews.

Related Documentation