/
FleetHD Integration API

FleetHD Integration API

Base URL:

Test: https://integration-test.fleethd.com/

Live: https://integration.fleethd.com/

Auth Base URL:

Test: https://identity-test.fleethd.com

Live: https://identity.fleethd.com

Authenticating

The API authenticates using OpenID Connect.

Client Credentials Flow

HttpPost

{AuthBaseUrl}/connect/token

Header:
Content-Type: application/x-www-form-urlencoded

Body:

grant_type: string scope: string client_id: string client_secret: string

Example:

grant_type: “client_credentials” scope: “integration-api” client_id: “{clientId}” client_secret: “{ClientSecret}”

Response:

{ "access_token": string, "expires_in": int, "token_type": string, "scope": string }

All subsequent calls to the API should include a header with the access token:
Authorization: bearer {accessToken}

EndPoints

Vehicle Update

HTTP Patch

{baseUrl}/v1/{tenant}/vehicles/{vin}

*uses Json Patch standard https://jsonpatch.com/

Body:

[ { path: string op: string (add | replace | remove | test) value: any } ]

Example:

[ { "path": "/attributes/-", "op": "add", "value": { "key": "CompassUnit", "value": "12345" } } ]

 

Bulk Vehicle Update

HTTP Post

{baseUrl}/v1/{tenant}/vehicles

Providing the make, model and modelYear currently does not update the vehicle but the data will be collected for comparison.

Body:

[ { vin: string make: string model: string modelYear: string attributes: KeyValueDto[] TelematicGroups: TelematicGroupRequest[] Provider: string } ]

Objects:

KeyValueDto: key: string value: string extra: string TelematicGroupRequest: id: string name: string description: string

Example:

[ { "vin": "12345678912345678", "make": "FREIGHTLINER", "model": "M2", "modelYear": "2011", "attributes": [ { "key": "CompassUnit", "value": "5678" } ], "telematicGroups": [ { "id": "5678", "name": "5678", "description": "group 5678" } ], "provider": "CompanyA" } ]

 

Get Vehicle By Vin

HTTP Get

{baseUrl}/v1/{tenant}/vehicles/{vin}

Response:

{ "vin": "string", "name": "string", "attribures": [ { "key": "string", "value": "string", "extra": "string" } ], "make": "string", "model": "string", "modelYear": "string" }

Get Vehicles

HTTP Get

{baseUrl}/v1/{tenant}/vehicles?offset=0&limit=100

Use offset and limit query string parameters to page through data. If no limit is provided the default will be 100.

Response:

[ { "vin": "string", "name": "string", "attribures": [ { "key": "string", "value": "string", "extra": "string" } ], "make": "string", "model": "string", "modelYear": "string" } ]

 

Get Vehicle Details By Vin

HTTP Get

{baseUrl}/v1/{tenant}/vehicles/{vin}/details

Response:

{ "vehicle": { "vin": "string", "name": "string", "attributes": [ { "key": "string", "value": "string", "extra": "string" } ], "make": "string", "model": "string", "modelYear": "string" }, "layout": { "position1": { "type": "string", "sensors": [ "string" ], "partTypes": [ 0 ] } }, "sensors": [ { "sensorId": "string", "sensorType": "string", "description": "string", "dataLastReceived": "2025-04-01T03:40:53.290Z", "location": "string", "overallSeverityValue": 0, "sensorValues": [ { "type": "string", "value": 0 } ] } ], "alerts": [ { "id": "string", "sentDate": "2025-04-01T03:40:53.290Z", "subject": "string", "message": "string", "faults": [ { "protocol": "string", "description": "string", "triggeredAlert": true } ] } ], "parts": [ { "partNumber": "string", "location": "string", "type": "string", "thresholds": [ { "sensorTypeId": 0, "sensorValueType": 0, "sensorMeasureType": 0, "operator": 0, "limit": 0, "severityValue": 0, "partId": "string", "isOverall": true, "ordinal": 0 } ] } ] }

Get Telematic Groups By Vin

HTTP Get

{baseUrl}/v1/{tenant}/telematicGroups/{vin}

Response:

[ { "telematicGroupId": "string", "name": "string", "description": "string", "telematicProvider": "string", "addedDateTimeUtc": "2024-02-03T00:01:53.256Z", "removedDateTimeUtc": "2024-02-03T00:01:53.256Z" } ]

Have questions? Email support@bluedotsolutions.com