Shell Lube Monitor Marine Engine Monitoring API
Overview
The Shell Lube Monitor Marine Engine Monitoring API is a RESTful API that provides engine monitoring data and inspection insights for marine vessels. This API offers access to onboard engine data including cylinder logbook data, running hours, and operational metrics, as well as inspection insights based on piston ring images after cleaning to determine deposit presence.
Version: 1.0.0
Base URL: https://api.shell.com/gcc/lubemonitor
Authentication
All API endpoints require the following authentication headers:
| Header | Type | Required | Description |
|---|---|---|---|
Username |
string | Yes | Username for authentication |
Password |
string | Yes | Password for authentication |
Authorization |
string | Yes | Bearer OAuth 2.0 Token |
Example:
Username: user@shell.com
Password: password123
Authorization: Bearer hbGciOiJSUzI1NiIsImtpZCI6
API Endpoints
1. Get Onboard Engine Monitoring Data
Retrieves engine monitoring data captured onboard for marine vessels, including cylinder logbook data, running hours, and operational data.
Endpoint: GET /onboard-sample
Parameters
Required Parameters
| Parameter | Type | Location | Description |
|---|---|---|---|
laVesselCode |
string | query | Unique code identifying the vessel |
engineNo |
integer | query | Identifier for the specific engine on the vessel |
Optional Parameters
| Parameter | Type | Location | Description |
|---|---|---|---|
dateCaptured |
string (ISO 8601) | query | Specific date for which the data is requested |
lastNSamples |
integer (1-20) | query | Number of recent samples to retrieve (maximum 20) |
latestSample |
boolean | query | Flag to indicate if only the latest sample is needed |
Validation Rules
At least one of the following must be provided:
dateCapturedlastNSampleslatestSample
Use Case Examples
- Latest engine data: Set
latestSample=true - Last 10 samples: Set
lastNSamples=10 - Specific date data: Set
dateCaptured=2025-09-01T00:00:00.000Z
Sample Request
GET /onboard-sample?laVesselCode=61301&engineNo=1&latestSample=true
Host: api.shell.com/gcc/lubemonitor
Username: user@shell.com
Password: password123
Authorization: Bearer hbGciOiJSUzI1NiIsImtpZCI6
Response Schema
Success Response (200):
[
{
"vesselIdText": "136246",
"noOfEngines": 2,
"customerName": "THENAMARIS LNG ",
"marineCenter": "Hellenic Mariners (Greece)",
"mainEngine": "Wartsila X72 DF",
"reportAlertLevel": "Attention",
"cylinderCondition": "Cylinder(s) 4,5 are in the Normal area, Cylinder(s) 1,2,3 are in the Attention area",
"summary": "save comments and exit 3uL",
"engineNo": 1,
"dateCaptured": "2025-10-03T00:00:00.000Z",
"updatedBy": "COOL RACER",
"portLocation": "SEA",
"cylinderData": [
{
"cylinderNo": 1,
"pMax": 21,
"fuelIndex": 30,
"coolingTempCOut": 41,
"linerWallTempCMin": 26,
"linerWallTempCMax": 26,
"magneticIron": 26,
"feedrateSetpoint": 0.4,
"bnMeasuresOnboard": 22,
"corrosiveIron": 26,
"onboardTotalIron": 52
}
],
"runningHourData": [
{
"cylinderNo": 1,
"pistonRing": 1,
"pCrown": 1,
"pistonCrown": 3,
"comments": "AA"
}
],
"runningData": {
"comments": "Test 123",
"oilGrade": "Alexia 40 (40 BN)",
"oilDensity": 0.915,
"totalEngineHours": 1222,
"rpm": 100,
"power": 6000,
"sulphur": 0.1,
"catfines": 40,
"vanadiumContent": 30,
"fuelConsumption": 22,
"relHum": 32,
"ambientTemperature": 30,
"scavAirTemp": 26,
"engineRoomTC": 26,
"cylinderOilCons": 122,
"sampleSentToLab": "Yes",
"noOfTurboInUse": 2,
"feedRateCalculated": 0.775
},
"recommendation": {
"participation": "Engine Inspections - Monthly.Onboard Samples - Weekly and 48 hours after change of fuel bunker, feed rate adjustment or change in load more than +/-10%.Lab Samples - Monthly.For lab samples - first test onboard, note results in the logbook. Then land the same set of samples for laboratory analysis.",
"onboardSampling": null
}
}
]
2. Get Engine Inspection Deposits Data
Provides inspection insights based on piston ring images after cleaning to determine whether deposits are present on the piston rings.
Endpoint: GET /inspection-deposits
Parameters
Required Parameters
| Parameter | Type | Location | Description |
|---|---|---|---|
laVesselCode |
string | query | Unique code identifying the vessel |
engineNo |
integer | query | Identifier for the specific engine on the vessel |
Optional Parameters
| Parameter | Type | Location | Description |
|---|---|---|---|
dateCaptured |
string (ISO 8601) | query | Specific date for which inspection data is requested |
lastNSamples |
integer (1-20) | query | Number of recent inspection samples to retrieve (maximum 20) |
latestSample |
boolean | query | Flag to indicate if only the latest inspection result is needed |
Validation Rules
At least one of the following must be provided:
dateCapturedlastNSampleslatestSample
Use Case Examples
- Most recent inspection: Set
latestSample=true - Inspection trends: Set
lastNSamples=5 - Specific date inspection: Set
dateCaptured=2025-03-07T00:00:00.000Z
Sample Request
GET /inspection-deposits?laVesselCode=136246&engineNo=1&latestSample=true
Host: api.shell.com/gcc/lubemonitor
Username: user@shell.com
Password: password123
Authorization: Bearer hbGciOiJSUzI1NiIsImtpZCI6
Response Schema
Success Response (200):
[
{
"vesselIdText": "136246",
"vesselName": "COOL RACER",
"customerName": "THENAMARIS LNG ",
"dateCaptured": "2025-03-07T00:00:00.000Z",
"engineNo": 1,
"cylinderData": [
{
"cylinderNo": 1,
"deposit": "Yes"
},
{
"cylinderNo": 2,
"deposit": "No"
},
{
"cylinderNo": 3,
"deposit": "Yes"
},
{
"cylinderNo": 4,
"deposit": "No"
},
{
"cylinderNo": 5,
"deposit": "Yes"
}
],
"comments": "test"
}
]
Error Handling
The API uses standard HTTP status codes and provides detailed error information in the response body.
HTTP Status Codes
| Status Code | Description |
|---|---|
| 200 | Success |
| 400 | Bad Request - Invalid parameters or validation rule not met |
| 401 | Unauthorized - Authentication failed |
| 403 | Forbidden - Access denied |
| 404 | Not Found - Path not found |
| 500 | Internal Server Error |
Error Response Formats
400 Bad Request
{
"error": {
"errorCode": "BAD_REQUEST",
"errorDateTime": "2025-10-10T12:00:00.000Z",
"errorMessage": "At least one of dateCaptured, lastNSamples, or latestSample must be provided",
"errorDescription": "The request parameters do not meet the validation requirements"
}
}
401 Unauthorized
{
"fault": {
"faultstring": "Invalid Access Token",
"detail": {
"errorcode": "keymanagement.service.invalid_access_token"
}
}
}
403 Forbidden
{
"error": {
"errorCode": "FORBIDDEN",
"errorDateTime": "2025-10-10T07:11:56.984Z",
"errorMessage": "Access denied to the requested resource",
"errorDescription": "Client does not have access to the selected resource",
"additionalProp1": {}
},
"additionalProp1": {}
}
404 Not Found
{
"fault": {
"faultstring": "/onboard-sample not found",
"detail": {
"errorcode": "PathNotFound"
}
}
}
500 Internal Server Error
{
"error": {
"errorCode": "INTERNAL_SERVER_ERROR",
"errorDateTime": "2025-10-10T07:11:56.984Z",
"errorMessage": "The request could not be completed due to an internal error",
"errorDescription": "Internal server error",
"additionalProp1": {}
},
"additionalProp1": {}
}
Data Models
Cylinder Data (Onboard)
| Field | Type | Description |
|---|---|---|
cylinderNo |
integer | Cylinder number |
pMax |
number | Maximum pressure |
fuelIndex |
number | Fuel index value |
coolingTempCOut |
number | Cooling temperature outlet in Celsius |
linerWallTempCMin |
number | Minimum liner wall temperature in Celsius |
linerWallTempCMax |
number | Maximum liner wall temperature in Celsius |
magneticIron |
number | Magnetic iron content |
feedrateSetpoint |
number | Feed rate setpoint |
bnMeasuresOnboard |
number | BN measures onboard |
corrosiveIron |
number | Corrosive iron content |
onboardTotalIron |
number | Total iron content onboard |
Running Data
| Field | Type | Description |
|---|---|---|
comments |
string | General comments |
oilGrade |
string | Oil grade used |
oilDensity |
number | Oil density |
totalEngineHours |
number | Total engine running hours |
rpm |
number | Engine RPM |
power |
number | Engine power output |
sulphur |
number | Sulphur content |
catfines |
number | Cat fines content |
vanadiumContent |
number | Vanadium content |
fuelConsumption |
number | Fuel consumption rate |
relHum |
number | Relative humidity |
ambientTemperature |
number | Ambient temperature |
scavAirTemp |
number | Scavenge air temperature |
engineRoomTC |
number | Engine room temperature |
cylinderOilCons |
number | Cylinder oil consumption |
sampleSentToLab |
string | Whether sample was sent to lab ("Yes"/"No") |
noOfTurboInUse |
number | Number of turbos in use |
feedRateCalculated |
number | Calculated feed rate |
Cylinder Data (Inspection)
| Field | Type | Description |
|---|---|---|
cylinderNo |
integer | Cylinder number being inspected |
deposit |
string | Whether deposits were detected ("Yes"/"No") |
Rate Limiting
Please refer to Shell Developer Portal for current rate limiting policies.
Support
For technical support and questions:
- Email: LubesAPI@shell.com
- Documentation: Shell Developer Portal
- Support Portal: https://developer.shell.com/support
Terms of Service
By using this API, you agree to the Shell Terms of Use.
Last Updated: October 10, 2025
