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