RS Inspections (RSI) API
Access RightShip inspection records, deficiencies, and risk summaries programmatically. All endpoints require authentication via a bearer token obtained through Auth0.
Overview
The RSI API exposes inspection and deficiency data collected through the RightShip Inspection platform. It is available under the base path /api/rsi/ and returns JSON-formatted responses.
Three endpoints are available:
- GET /inspections – retrieve inspection records filtered by inspection ID or IMO.
- GET /deficiencies – retrieve deficiencies.
- GET /deficiencies/riskSummary – retrieve an aggregated risk summary by company or vessel.
Authentication
All APIs require authentication, which is delegated to Auth0. Before any of the following external APIs can be accessed, the requestor must authenticate using the Private Key JWT flow with a registered client. The returned bearer token must then be included in the Authorization header of every request.
To obtain API credentials, contact your RightShip account manager or reach out to the Data team via the internal request process.
Request Headers
All requests must be formatted as JSON and include the following headers:
|
Header Name |
Header Value |
Required |
Comments |
|
Authorization |
Bearer <access-token> |
Yes |
Bearer token obtained via Auth0 authentication. |
|
Content-Type |
application/json |
Yes |
|
Response Structure
Each response follows a standard envelope. The data field contains the actual payload.
|
Property Name |
Type |
Can be Empty |
|
data |
array |
Yes |
Response Codes
|
HTTP Code |
Description |
|
200 |
Successful |
|
400 |
Bad Request – missing or invalid input parameters. |
|
401 |
Unauthenticated – the access token is missing or expired. |
|
403 |
Unauthorized – the user is authenticated but lacks permission to access the resource. |
|
500 |
Unexpected error – contact support with any returned error messages. |
GET /inspections
Returns a list of inspection records. Results can be filtered by a specific inspection platform ID or by IMO number. If no filters are provided, all inspections accessible to the authenticated service principal are returned.
|
GET |
/api/rsi/inspections |
Request Parameters
|
Parameter |
Type |
Required |
Description |
|
rs_inspection_platform_id |
integer nullable |
No |
Filter results to a specific inspection by its platform ID. |
|
imo |
string nullable |
No |
Filter results to inspections for the specified vessel IMO number. |
Response Fields
Returns a
array where each object represents a single inspection record.
|
Field |
Type |
Description |
|
rs_inspection_platform_id |
integer |
Unique identifier for the inspection on the RightShip platform. |
|
imo |
string nullable |
Vessel IMO number. |
|
vessel_name |
string nullable |
Name of the inspected vessel. |
|
company_platform_id |
integer nullable |
Platform ID of the DOC company associated with the vessel. |
|
safety_score |
integer nullable |
RightShip Safety Score at the time of inspection. |
|
ghg_rating |
string nullable |
GHG rating of the vessel (e.g. A, B, C). |
|
requested_inspection_date |
string nullable |
Date the inspection was originally requested (ISO 8601). |
|
actual_inspection_date |
string nullable |
Date the inspection was conducted (ISO 8601). |
|
port_locode |
string nullable |
UN/LOCODE of the port where the inspection took place. |
|
port_name |
string nullable |
Name of the inspection port. |
|
port_country |
string nullable |
Country of the inspection port. |
|
inspector_name |
string nullable |
Name of the attending inspector. |
|
rs_inspection_outcome_status_utc_datetime |
string nullable |
UTC datetime when the outcome status was recorded. |
|
rs_inspection_outcome_status |
string nullable |
Current outcome status (e.g. Passed, Failed). |
|
validity_duration_months |
integer nullable |
Number of months the inspection certificate is valid for. |
|
validity_expiry_date |
string nullable |
Date the inspection certificate expires (ISO 8601). |
|
closeout_quality |
string nullable |
Quality assessment of the deficiency close-out process. |
Example Response
{
"data": [
{
"rs_inspection_platform_id": 10045,
"imo": "9876543",
"vessel_name": "OCEAN PIONEER",
"company_platform_id": 321,
"safety_score": 4,
"ghg_rating": "B",
"requested_inspection_date": "2025-03-10",
"actual_inspection_date": "2025-03-12",
"port_locode": "SGSIN",
"port_name": "Singapore",
"port_country": "Singapore",
"inspector_name": "Jane Smith",
"rs_inspection_outcome_status_utc_datetime": "2025-03-15T08:00:00Z",
"rs_inspection_outcome_status": "Passed",
"validity_duration_months": 12,
"validity_expiry_date": "2026-03-12",
"closeout_quality": "Good"
}
]
}
GET /deficiencies
Returns deficiency records for a given inspection. This endpoint is paginated; use the cursor and page_size parameters to iterate through large result sets.
|
GET |
/api/rsi/deficiencies |
Request Parameters
|
Parameter |
Type |
Required |
Description |
|
rs_inspection_platform_id |
integer nullable |
No |
Filter deficiencies to a specific inspection. |
|
page_size |
integer nullable |
No |
Number of records to return per page. Defaults to a system-defined limit if omitted. |
|
cursor |
string nullable |
No |
Pagination cursor from a previous response. Pass this to retrieve the next page. |
To paginate, pass the next_cursor value from the current response as the cursor parameter in your next request. Repeat until next_cursor is null.
Pagination Response Fields
|
Field |
Type |
Description |
|
page_size |
integer |
The number of records returned in this page. |
|
next_cursor |
string nullable |
Cursor to retrieve the next page. null when no further pages exist. |
Deficiency Object Fields
|
Field |
Type |
Description |
|
rs_insp_deficiency_platform_id |
integer |
Unique identifier for the deficiency record. |
|
rs_inspection_platform_id |
integer |
The parent inspection this deficiency belongs to. |
|
section_number |
string nullable |
Section number within the inspection form. |
|
question_number |
string nullable |
Question number within the inspection form. |
|
imo |
string nullable |
IMO number of the inspected vessel. |
|
section_name |
string nullable |
Name of the inspection section (e.g. Firefighting, Lifesaving). |
|
manual_defect_text |
string nullable |
Free-text description of the deficiency as entered by the inspector. |
|
comment |
string nullable |
Additional commentary on the deficiency. |
|
classifications |
string[] nullable |
List of classification labels assigned to the deficiency. |
|
severity |
string nullable |
Severity level (e.g. Minor, Major). |
|
risk_classification |
string nullable |
Risk classification assigned (e.g. High, Medium, Low). |
Example Response
{
"data": [
{
"rs_insp_deficiency_platform_id": 88001,
"rs_inspection_platform_id": 10045,
"section_number": "3",
"question_number": "3.2",
"imo": "9876543",
"section_name": "Fire Safety",
"manual_defect_text": "CO2 system pressure gauge unreadable.",
"comment": "Gauge replaced during inspection.",
"classifications": ["Fire Fighting Equipment"],
"severity": "Major",
"risk_classification": "High"
}
],
"page_size": 25,
"next_cursor": "eyJpZCI6ODgwMDIsInRzIjoiMjAyNS0wMy0xMiJ9"
}
GET /deficiencies/riskSummary
Returns an aggregated risk summary of deficiencies, broken down by risk classification (High, Medium, Low). Benchmarks at vessel, DOC company, and world fleet level are provided for each tier, enabling comparative analysis.
|
GET |
/api/rsi/deficiencies/riskSummary |
Request Parameters
|
Parameter |
Type |
Required |
Description |
|
company_platform_id |
integer nullable |
No |
Filter results to vessels belonging to a specific DOC company. |
|
imo |
string nullable |
No |
Filter results to a specific vessel by IMO number. |
Response Fields
|
Field |
Type |
Description |
|
vessel_platform_id |
integer |
Platform ID of the vessel. |
|
company_platform_id |
integer |
Platform ID of the DOC company. |
|
imo |
string nullable |
IMO number of the vessel. |
|
company_name |
string nullable |
Name of the DOC company. |
|
total_high_risk_def_vessel |
integer nullable |
Total high-risk deficiencies for this vessel. |
|
total_high_risk_def_doc |
integer nullable |
Average high-risk deficiencies across the DOC company fleet. |
|
total_high_risk_def_world_fleet |
integer nullable |
Average high-risk deficiencies across the world fleet. |
|
total_medium_risk_def_vessel |
integer nullable |
Total medium-risk deficiencies for this vessel. |
|
total_medium_risk_def_doc |
integer nullable |
Average medium-risk deficiencies across the DOC company fleet. |
|
total_medium_risk_def_world_fleet |
integer nullable |
Average medium-risk deficiencies across the world fleet. |
|
total_low_risk_def_vessel |
integer nullable |
Total low-risk deficiencies for this vessel. |
|
total_low_risk_def_doc |
integer nullable |
Average low-risk deficiencies across the DOC company fleet. |
|
total_low_risk_def_world_fleet |
integer nullable |
Average low-risk deficiencies across the world fleet. |
Example Response
{
"data": [
{
"vessel_platform_id": 5501,
"company_platform_id": 321,
"imo": "9876543",
"company_name": "Pacific Shipping Co.",
"total_high_risk_def_vessel": 2,
"total_high_risk_def_doc": 3,
"total_high_risk_def_world_fleet": 4,
"total_medium_risk_def_vessel": 5,
"total_medium_risk_def_doc": 6,
"total_medium_risk_def_world_fleet": 7,
"total_low_risk_def_vessel": 1,
"total_low_risk_def_doc": 2,
"total_low_risk_def_world_fleet": 3
}
]
}