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
/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:mmsiorimo(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
/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:mmsiorimo(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
/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:mmsiorimo(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.