Caterpillar VisionLink APIs enable dealers and customers to access the fleet data remotely reported by the VisionLink® application.
The VisionLink APIs eliminates the need to “mine” the data from the VisionLink application. For example, data can be provided to an ERP system, to a project management scheduling tool of choice, or to a field service dispatching application.
Most of the data elements that are available for a specific asset by subscription can be obtained through the VisionLink API.
VisionLink APIs include:
- Assets Operation History API
- Assets Summary API
- Faults History API
- Asset Fence History API
- Utilization History API
Migration from Legacy and Unified Vision Link APIs to New VisionLink APIs
The new Caterpillar VisionLink APIs replace the legacy and unified VisionLink APIs. The legacy-unified-to-new API mappings is as follows:
Note: The telematics data previously available through the AEMP 1.2 API is now provided through the ISO 15143-3 (AEMP 2.0). For detailed information about ISO-15143 (AEMP 2.0) API, see the ISO-15143 (AEMP 2.0) API Developer Guide.
Data Mapping
The following tables present the data mapping between the legacy, unified and new VisionLink APIs.
Utilization History API
New Utilization History API | Legacy Asset Utilization API | Legacy Fuel Utilization API | Unified Utilization API | Unified Utilization Details API |
---|---|---|---|---|
make | MakeCode | MakeCode | makeCode | makeCode |
serialNumber | SerialNumber | SerialNumber | serialNumber | assetSerialNumber |
equipment id | AssetID | AssetID | n/a | assetId |
model | Model | Model | model | model |
productFamily | n/a | n/a | n/a | n/a |
unitInstallDate | n/a | n/a | n/a | n/a |
customName | n/a | n/a | n/a | n/a |
customValue | n/a | n/a | n/a | n/a |
assetLocalDate | CalendarDayAssetLocalTime | CalendarDayAssetLocalTime | date (UTC) | date (UTC) |
idleHours | IdleHours | IdleHours | idleHours | idleHours |
workingHours | WorkingHours | WorkingHours | workingHours | workingHours |
runtimeHours | RuntimeHours | RuntimeHours | runtimeHours | runtimeHours |
workingEfficiency | EfficiencyPercentage | n/a | workingEfficiency | workingEfficiency |
customUtilizationType | n/a | n/a | n/a | n/a |
distanceTravelledKms | n/a | n/a | distanceTravelledKilometers | distanceTravelledKilometers |
targetIdlePerformance | n/a | n/a | targetIdlePerformance | targetIdlePerformance |
targetIdleHours | n/a | n/a | targetIdle | targetIdle |
targetRuntimeHours | ExpectedRuntimeHours | n/a | targetRuntime | targetRuntime |
targetRuntimePerformance | n/a | n/a | targetRuntimePerformance | targetRuntimePerformance |
runtimeHours (hourCallouts) | n/a | n/a | runtimeHoursCalloutTypes | runtimeHoursCalloutTypes |
idleHours(hourCallouts) | n/a | n/a | idleHoursCalloutTypes | idleHoursCalloutTypes |
workingHours (hourCallouts) | n/a | n/a | workingHoursCalloutTypes | workingHoursCalloutTypes |
runtimeFuelBurnedLiters | n/a | RuntimeFuelBurnedGallons | runtimeFuelConsumedLiters | runtimeFuelConsumedLiters |
idleFuelBurnedLiters | n/a | IdleFuelBurnedGallons | idleFuelConsumedLiters | idleFuelConsumedLiters |
workingFuelBurnedLiters | n/a | WorkingFuelBurnedGallons | workingFuelConsumedLiters | workingFuelConsumedLiters |
runtimeFuelBurnRate | n/a | RuntimeFuelBurnRate | runtimeFuelConsumptionRate | runtimeFuelConsumptionRate |
idleFuelBurnRate | n/a | IdleFuelBurnRate | idleFuelConsumptionRate | idleFuelConsumptionRate |
workingFuelBurnRate | n/a | WorkingFuelBurnRate | workingFuelConsumptionRate | workingFuelConsumptionRate |
mileage | n/a | n/a | kmsPerRuntimeFuelConsumedLiter | kmsPerRuntimeFuelConsumedLiter |
runtimeFuelBurned(fuelCallouts) | n/a | n/a | runtimeFuelConsumedLitersCalloutTypes | runtimeFuelConsumedLitersCalloutTypes |
idleFuelBurned (fuelCallouts) | n/a | n/a | idleFuelConsumedLitersCalloutTypes | idleFuelConsumedLitersCalloutTypes |
workingFuelBurned (fuelCallouts) | n/a | n/a | workingFuelConsumedLitersCalloutTypes | workingFuelConsumedLitersCalloutTypes |
latestUtilizationReport | n/a | n/a | lastReportedTime | lastReportedTime |
defBurnedLiters | n/a | n/a | dieselExhaustFluidLiters | dieselExhaustFluidLiters |
defBurnRate | n/a | n/a | dieselExhaustFluidLitersBurnedRate | dieselExhaustFluidLitersBurnedRate |
deviceStatus | n/a | n/a | n/a | n/a |
co2EmissionsKilogram | n/a | n/a | cO2Emission | co2Emission |
assetStatus | n/a | n/a | n/a | n/a |
nextCursor | n/a | n/a | n/a | n/a |
Asset Fence History API
New Asset Fence History API | Fence Alert API |
---|---|
make | make |
model | model |
serialNumber | serialNumber |
equipment ID | nickname |
productFamily | n/a |
customName | n/a |
customValue | n/a |
receivedTime | receivedTime |
event | n/a |
(fence) name | n/a |
(fence) id | n/a |
nextCursor | n/a |
Faults History API
New Faults History API | Legacy Diagnostic API | Legacy Events API | Legacy Health API |
---|---|---|---|
make | make | make | makeCode |
model | model | model | model |
serialNumber | serialNumber | serialNumber | serialNumber |
equipmentId | n/a | n/a | n/a |
productFamily | n/a | n/a | productFamily |
customName | n/a | n/a | n/a |
customValue | n/a | n/a | n/a |
severity | n/a | n/a | severityLabel/severityLevel |
eid | n/a | eid | n/a |
fmi | fmi | n/a | n/a |
cid | n/a | n/a | n/a |
spn | spn | n/a | n/a |
faultType | n/a | n/a | faultType |
faultDescription | n/a | n/a | faultDescription |
mid | mid | mid | n/a |
sourceDescription | n/a | n/a | sourceDescription |
faultReceivedTime | receivedTime | n/a | faultReceivedUtc |
faultOccuredTime | timestamp | timestamp | faultOccuredUTC |
occurrences | occurances | occurances | occurrences |
dataLinkType | n/a | n/a | dataLinkType |
hourMeter | n/a | n/a | hourMeter |
odometerInKilometer | n/a | n/a | odometer |
assetLocalDate | n/a | n/a | n/a |
latitude | n/a | n/a | locationLatitude |
longitude | n/a | n/a | locationLongitude |
address | n/a | n/a | n/a |
nextCursor | n/a | n/a | n/a |
Asset Operation History API
New Asset Operations API | Legacy Asset Operation API | Legacy Engine Parameters API | Legacy Engine StartStop API | Unified AssetOperation V2 API |
---|---|---|---|---|
Make | MakeCode | make | make | makeCode |
Serial Number | SerialNumber | serialNumber | serialNumber | serialNumber |
equipment id | AssetID | moduleCode | moduleCode | assetId |
Model | Model | model | model | model |
productFamily | n/a | n/a | n/a | productFamily |
assetOperationDateInfo | n/a | n/a | n/a | n/a |
eventType | WorkingState | Starts idleTime (Value) |
startStop | n/a |
eventTime | n/a | idleTime (UOM) | start stop |
n/a |
customName | n/a | n/a | n/a | customStateDescription |
customValue | n/a | n/a | n/a | n/a |
revolutions | n/a | revolution | n/a | n/a |
startStateTime | StartStateUtc | n/a | n/a | startTimeUtc |
startStateAssetLocalTime | StartStateAssetLocalTime | n/a | n/a | startTimeLocal |
startStateAssetTimezoneAbbrev | n/a | n/a | n/a | n/a |
endStateUtc | EndStateUtc | n/a | n/a | endTimeUtc |
endStateAssetLocalTime | EndStateAssetLocalTime | n/a | n/a | endTimeLocal |
endStateAssetTimezoneAbbrev | n/a | n/a | n/a | n/a |
durationSeconds | DurationSeconds | n/a | n/a | totalRuntimeDurationSeconds |
customUtilizationCategory | WorkDefinition | n/a | n/a | n/a |
segmentType | n/a | n/a | n/a | segmentType |
ApiTrackingId | n/a | n/a | n/a | n/a |
MakeSerialNumbers | n/a | n/a | n/a | n/a |
responseMetadata | n/a | n/a | n/a | n/a |
nextCursor | n/a | n/a | n/a | n/a |
latitude (start state) | Latitude (Start location) | n/a | n/a | startLocationLatitude |
longitude(start state) | Longitude(Start location) | n/a | n/a | startLocationLongitude |
latitude (end state) | Latitude (End location) | n/a | n/a | endLocationLatitude |
longitude(end state) | Longitude(End location) | n/a | n/a | endLocationLongitude |
code | n/a | n/a | n/a | n/a |
details | n/a | n/a | n/a | n/a |
AdditionalInfo | n/a | n/a | n/a | n/a |
subCode | n/a | n/a | n/a | code |
field | n/a | n/a | n/a | n/a |
message | n/a | n/a | n/a | message |
Asset Summary API
New Asset Summary API | Legacy Assets Utilization API | Legacy Fleet Summary API | Unified Fleet Summary API | Unified Asset Details API |
---|---|---|---|---|
make | MakeCode | MakeCode | makeCode | makeCode |
makeDescription | MakeName | n/a | n/a | n/a |
model | Model | Model | model | model |
serialNumber | SerialNumber | SerialNumber | assetSerialNumber | assetSerialNumber |
equipmentId | AssetID | AssetID | assetId | assetId |
productFamily | ProductFamily | n/a | productFamily | productFamily |
assetStatus | n/a | LastKnownStatus | status | status |
deviceStatus | n/a | n/a | n/a | deviceState |
deviceType | DeviceType | n/a | deviceType | deviceType |
deviceSerialNumber | DeviceSerialNumber | n/a | n/a | deviceSerialNumber |
mainboardSoftwareVersion | n/a | n/a | mainboardSoftwareVersion | mainboardSoftwareVersion |
radioFirmwarePartNumber | n/a | n/a | n/a | radioFirmwarePartNumber |
gatewayFirmwarePartNumber | n/a | n/a | n/a | gatewayFirmwarePartNumber |
dataLinkType | n/a | n/a | n/a | dataLinkType |
name - geofence | n/a | n/a | name | name |
areaSqm - geofence | n/a | n/a | areaSqM | areaSqM |
name - groups | n/a | n/a | n/a | n/a |
subscription | n/a | n/a | n/a | n/a |
hourMeter | n/a | n/a | hourMeter | hourMeter |
lastReportedTime | n/a | n/a | lastHourMeterUTC | lastHourMeterUTC |
userEnteredRuntimeHours | n/a | n/a | n/a | n/a |
odometerInKilometer | n/a | n/a | odometer | odometer |
lastReportedTime | n/a | n/a | lastOdometerUTC | n/a |
latitude | n/a | Latitude | lastReportedLocationLatitude | lastReportedLocationLatitude |
longitude | n/a | Longitude | lastReportedLocationLongitude | lastReportedLocationLongitude |
address | n/a | Address | lastReportedLocation | lastReportedLocation |
lastReportedTimeUtc | n/a | LastLocationUTC | lastReportedUTC | lastLocationUpdateUTC |
lastKnownFuelLevelPercent | n/a | FuelPercentRemaining | fuelLevelLastReported | fuelLevelLastReported |
lastReportedTime | n/a | n/a | lastPercentFuelRemainingUTC | lastPercentFuelRemainingUTC |
lifetimeFuelLiters | n/a | LifetimeFuelConsumed | lifetimeFuelLiters | lifetimeFuelLiters |
lastReportedTime | n/a | n/a | lastLifetimeFuelLitersUTC | lastLifetimeFuelLitersUTC |
defRemainingPercent | n/a | n/a | percentDEFRemaining | percentDEFRemaining |
lastReportedTime | n/a | n/a | lastPercentDEFRemainingUTC | lastPercentDEFRemainingUTC |
lifetimeDefLiters | n/a | n/a | n/a | lifetimeDEFLiters |
lastReportedTime | n/a | n/a | n/a | lastLifetimeDEFLitersUTC |
customUtilizationType | n/a | n/a | n/a | n/a |
name - last operator | n/a | n/a | lastOperatorName | lastOperatorName |
id - last operator | n/a | n/a | lastOperatorID | lastOperatorID |
dealerName | n/a | n/a | dealerName | dealerName |
dealerCode | n/a | n/a | dealerCode | n/a |
dcn | n/a | n/a | dealerCustomerNumber | dealerCustomerNumber |
name - Customer | n/a | n/a | universalCustomerName | universalCustomerName |
ucid | n/a | n/a | universalCustomerIdentifier | universalCustomerIdentifier |
customName | n/a | n/a | n/a | n/a |
customValue | n/a | n/a | n/a | n/a |
responseMetadata | n/a | n/a | n/a | n/a |
nextCursor | n/a | n/a | n/a | n/a |
Subscribing to the APIs
To access the API, you must first request a subscription:
- Fill out the API Subscription Request Form.
- The form will open in a new window without closing this page.
- You may be asked to login to the Digital Marketplace again before completing the form.
- After completing your subscription, you may close the subscription window to return to this page.
- You will receive an email with your credentials when your subscription is approved. This process may take approximately two (2) weeks.
Security
The API uses the OAuth 2.0 protocol for authorization. In order to access the API, an OAuth access token is required in the request headers of each API call. A valid OAuth client ID and client secret is required to obtain an OAuth access token.
The following basic information is required to authenticate and generate the token.
Field | Value |
---|---|
Grant Type | Set this to "client_credentials". |
Token URL | https://fedlogin.cat.com/as/token.oauth2 |
Client ID | Your application's Client ID. Contact your credentials owner. |
Client Secret | Your application's Client Secret. Contact your credentials owner. |
An OAuth token expires after 60 minutes. An expired token will need to be replaced with a new token.
Additional OAuth information can be found in Caterpillar OAuth 2.0 Documentation.
API Environments
VisionLink APIs are only available in production environment.
Faults History API
The API returns each fault code recorded within the specified time range for the asset/fleet, along with the timestamp (UTC) when it was created. Data availability is dependent on machine support and commercial subscription. The Fault History API helps in determining the health of the machine by analyzing the various faults reported along with source, type, and severity.
Sample request
curl -v -X GET \
"https://services.cat.com/catDigital/faultsHistory/v1/faults" -H "Authorization: Bearer {token}" \
-H 'Accept: application/json' \
Use Accept
header to specify the response format:
- JSON -
application/json
- XML -
application/xml
JSON is the default response format.
Sample JSON response
{
"faults": [
{
"equipmentHeader": {
"make": "CAT",
"model": "368B",
"serialNumber": "FA12345L-2D",
"equipmentId": "myfavasset",
"productFamily": "Motor Grader",
"customFields": [
{
"customName": "region",
"customValue": "North America"
}
]
},
"faultBlock": {
"severity": "Medium",
"eid": 878,
"fmi": 5,
"cid": 247,
"spn": 521891,
"faultType": "Event",
"faultDescription": "After treatment SCR Operator Inducement Severity - Data Valid But Above Normal Operational Range - Most Severe Level.",
"mid": 299,
"sourceDescription": "Steering Control",
"faultReceivedTime": "2020-03-06T17:27:04.222Z",
"faultOccuredTime": "2020-03-06T17:27:04.222Z",
"occurrences": 127
},
"dataLinkType": "J1939",
"hourMeter": 1583.2,
"odometerInKilometer": 214.7,
"assetLocalDate": "2016-01-31",
"location": {
"latitude": 38.07671,
"longitude": -78.50494,
"address": "201 Lambs Lane, Charlottesville, VA, Albemarle, United States, 22901."
}
}
],
"responseMetadata": {
"nextCursor": "eyJvZmZzZXQiOjR9"
}
}
Depending on the combination of query parameters, the default value of the limit
parameter defining the response size can be 500 ("bulk") or 50 records ("lightweight").
Use these query parameters to return a bulk response (500 records maximum):
- all input query parameters blank
- all optional query parameters specified:
make
,model
,productFamily
,dealerCode
,language
,ucid
,faultType
,deviceType
, andcursor
severity
faultType
deviceType
make
model
productFamily
ucid
dealerCode
language
cursor
limit
andstartTime
andendTime
for a date range of 3 months from the current datestartTime
andendTime
for a date range of 3 months from the current datelimit
andoccurredTime
within 3 month from the current datelimit
andoccurredTime
limit
,faultType
,startTime
andendTime
for a date range of 3 months from the current datelimit
,severity
,startTime
andendTime
for a date range of 3 months from the current datelimit
,deviceType
,startTime
andendTime
for a date range of 3 months from the current datelimit
,model
,startTime
andendTime
for a date range of 3 months from the current datelimit
,make
,startTime
andendTime
for a date range of 3 months from the current datelimit
,productFamily
,startTime
andendTime
for a date range of 3 months from the current datelimit
,ucid
,startTime
andendTime
for a date range of 3 months from the current datelimit
,language
,startTime
andendTime
for a date range of 3 months from the current date
Use these query parameters to return a lightweight response (50 records maximum):
limit
andstartTime
andendTime
for a date range of 1 month from the current datelimit
,faultType
, andstartTime
andendTime
for a date range of 1 month from the current datelimit
,language
, andstartTime
andendTime
for a date range of 1 month from the current datelimit
,severity
, andstartTime
andendTime
for a date range of 1 month from the current datelimit
andoccurredTime
within 1 month from the current datelimit
,faultType
, andoccurredTime
within 1 month from the current datelimit
,severity
, andoccurredTime
within 1 month from the current datelimit
,language
, andoccurredTime
within 1 month from the current date
You can paginate through the response data using the responseMetadata.nextCursor
value in the cursor
query parameter.
For detailed information about the API input parameters, response structure, and error messages, see the API reference documentation.
Asset Operation History API
The Asset Operation API returns the asset operation and asset operation feed data such as engine stop and start events.
Get Asset Operations History
To get asset operation data, use the GET https://services.cat.com/catDigital/assetOperationsHistory/v1/assetOperations
endpoint.
Sample request
curl -v -X GET \
"https://services.cat.com/catDigital/assetOperationsHistory/v1/assetOperations" -H "Authorization: Bearer {token}" \
-H 'Accept: application/json' \
Use Accept
header to specify the response format:
- JSON -
application/json
- XML -
application/xml
JSON is the default response format.
Sample JSON response
{
"assetOperations": [
{
"equipmentHeader": {
"make": "CAT",
"model": "368B",
"serialNumber": "FA12345L-2D",
"equipmentId": "Myfavasset",
"productFamily": "Motor Grader",
"customFields": [
{
"customName": "region",
"customValue": "North America"
}
]
},
"calendarDayAssetLocalDate": "2016-01-31",
"assetOperationDateInfo": [
{
"revolutions": "18",
"startStateTime": "2020-03-06T17:27:04.222Z",
"startStateAssetLocalTime": "2020-03-06T17:27:04.222Z",
"startStateAssetTimezoneAbbrev": "EDT",
"startLocation": {
"latitude": 40.69223,
"longitude": -89.58893
},
"endStateUtc": "2020-03-06T17:27:04.222Z",
"endStateAssetLocalTime": "High Torque Converter Oil Temperature",
"endStateAssetTimezoneAbbrev": "EDT",
"endLocation": {
"latitude": 40.69223,
"longitude": -89.58893
},
"durationSeconds": "2017-10-31T11:52:32.0000000+00:00",
"customUtilizationCategory": "Movement, Machine Sourced, Switches Movement, or Switches",
"segmentType": "Running/Idle/Working"
}
]
}
],
"responseMetadata": {
"nextCursor": "eyJvZmZzZXQiOjR9"
}
}
Depending on the combination of query parameters, the default value of the limit
parameter defining the response size can be 500 ("bulk") or 50 records ("lightweight").
Use these query parameters to return a bulk response (500 records maximum):
- all input query parameters blank
- all optional query parameters specified:
make
,model
,productFamily
,dealerCode
,ucid
make
model
productFamily
ucid
dealerCode
cursor
limit
andstartTime
andendTime
for a date range of 3 months from the current datestartDate
andendTime
for a date range of 3 months from the current datelimit
,model
,startDate
andendTime
for a date range of 3 months from the current datelimit
,make
,startDate
andendTime
for a date range of 3 months from the current datelimit
,productFamily
,startDate
andendTime
for a date range of 3 months from the current datelimit
,ucid
,startDate
andendTime
for a date range of 3 months from the current date
Use these query parameters to return a lightweight response (50 records maximum):
limit
,make
,serialNumber
, andstartDate
andendTime
for a date range of 1 month from the current datelimit
andstartDate
andendTime
for a date range of 1 month from the current datemakeSerialNumbers
(an array of values)
You can paginate through the response data using the responseMetadata.nextCursor
value in the cursor
query parameter.
The following table provides the detailed information about the response data:
Field Name | Type | Description | Sample |
---|---|---|---|
Equipment Header Block | |||
make | String | Make code of the asset | CAT |
model | String | Model of the Asset | 368B |
serialNumber | String | Serial number of the asset | FA12345L-2D |
equipmentId | String | Nickname or Equipment ID or Asset ID | myfavasset |
productFamily | String | Product family to which the machine belongs to | Motor Grader |
Custom Fields Block | |||
customName | String | Name of the custom variable being passed | region |
customValue | String | Value of the custom variable being passed | America |
Asset Operations Block | |||
calendarDayAssetLocalDate | String($date) | A date | 2016-01-31 |
AssetOperationDateInfo Block | |||
revolutions | String | The total number of engine revolutions | 18 |
startStateTime | String($date-time) | A date-time | 2020-03-06T17:27:04.222Z |
startStateAssetLocalTime | String($date-time) | A date-time | 2020-03-06T17:27:04.222Z |
startStateAssetTimezoneAbbrev | String | Abbreviation of the asset's local timezone at the time of start of the operation segment | EDT |
startLocation | number($double) | Asset start location | N/A |
endStateUtc | String($date-time) | A date-time | 2020-03-06T17:27:04.222Z |
endStateAssetLocalTime | String | Description of the fault for the specified language | High Torque Converter Oil Temperature |
endStateAssetTimezoneAbbrev | String | Abbreviation of the asset's local timezone at the time of end of the operation segment | EDT |
endLocation | number($double) | Asset end location | N/A |
durationSeconds | String($date-time) | Date time in UTC that the diagnostic received | 2017-10-31T11:52:32.0000000+00:00 |
customUtilizationCategory | String | Describes on what basis the working state of the machine is interpreted | Movement, Machine Sourced, Switches Movement, or Switches |
segmentType | String | Segment types | Running/Idle/Working |
Location Block | |||
latitude | number($double) | Latitude of the location. Minimum -90 maximum 90 | 38.07671 |
longitude | number($double) | Latitude of the location, Minimum -180, maximum: 180 | -78.50494 |
address | String | Reverse geolocation | 201 Lambs Lane, Charlottesville, VA, Albemarle, United States, 22901 |
Error Block | |||
code | String | Error Code represents an alpha-numeric error code received from the error | 400.100 |
description | String | Message represents a textual description of a given error code | EndTime format is invalid |
details | String | Details represents technical details about the error with additional message | N/A |
AdditionalInfo Block | |||
subCode | String | Error code sent by API for each validation | 100 |
field | String | The property or field that was validated and triggered an error | endTime |
message | String | Each error message on the property level validation done by the API | endTime must be in UTC format |
Note: Once the Asset Operations API is published in the Digital Marketplace API Catalog, use the OpenAPI spec for detailed reference information.
Get Asset Operation Feeds
To get asset operation feed data, use the GET https://services.cat.com/catDigital/assetOperationsHistory/v1/feeds
endpoint.
Sample request
curl -v -X GET \
"https://services.cat.com/catDigital/assetOperationsHistory/v1/feeds" -H "Authorization: Bearer {token}" \
-H 'Accept: application/json' \
Use Accept
header to specify the response format:
- JSON -
application/json
- XML -
application/xml
JSON is the default response format.
Sample JSON response
{
"assetOperationFeeds": [
{
"equipmentHeader": {
"make": "CAT",
"model": "368B",
"serialNumber": "FA12345L-2D",
"equipmentId": "MyfavAsset",
"productFamily": "Motor Grader",
"customFields": [
{
"customName": "region",
"customValue": "North America"
}
]
},
"calendarDayAssetLocalTime": "11-11-2020 11:11:23",
"eventType": "Engine Start, Engine Stop, Movement Start, Movement Stop, Idle Start, Idle Stop.",
"eventTime": "2020-03-06T17:27:04.222Z"
}
],
"responseMetadata": {
"nextCursor": "eyJvZmZzZXQiOjR9"
}
}
Asset operation feed response size, filtering, and pagination follow the same rules as the GET /assetOperations] endpoint.
The following table provides the detailed information about the response data:
Field Name | Type | Description | Sample |
---|---|---|---|
Equipment Header Block | |||
make | String | Make code of the asset | CAT |
model | String | Model of the Asset | 368B |
serialNumber | String | Serial number of the asset | FA12345L-2D |
equipmentId | String | Nickname or Equipment ID or Asset ID | myfavasset |
productFamily | String | Product family to which the machine belongs to | Motor Grader |
Custom Fields Block | |||
customName | String | Name of the custom variable being passed | region |
customValue | String | Value of the custom variable being passed | America |
Asset Operation Feeds Block | |||
calendarDayAssetLocalTime | String | CalendarDay Asset LocalTime | 11-11-2020 11:11:23 |
eventType | String | Event Types | Engine Start, Engine Stop, Movement Start, Movement Stop, Idle Start, Idle Stop |
eventTime | String($date-time) | A date-time | 2020-03-06T17:27:04.222Z |
Error Block | |||
code | String | Error Code represents an alpha-numeric error code received from the error | 400.100 |
description | String | Message represents a textual description of a given error code | EndTime format is invalid |
details | String | Details represents technical details about the error with additional message | N/A |
AdditionalInfo Block | |||
subCode | String | Error code sent by API for each validation | 100 |
field | String | The property or field that was validated and triggered an error | endTime |
message | String | Each error message on the property level validation done by the API | endTime must be in UTC format |
Note: Once the Asset Operations API is published in the Digital Marketplace API Catalog, use the OpenAPI spec for detailed reference information.
Asset Fence History API
The Asset Fence History API returns the site entry and site exit events reported for assets for a given period of time.
Sample request
curl -v -X GET \
"https://services.cat.com/catDigital/assetFenceHistory/v1/fences" -H "Authorization: Bearer {token}" \
-H 'Accept: application/json' \
Use Accept
header to specify the response format:
- JSON -
application/json
- XML -
application/xml
JSON is the default response format.
Sample JSON response
{
"fences": [
{
"equipmentHeader": {
"make": "CAT",
"model": "368B",
"serialNumber": "FA12345L-2D",
"equipmentId": "myfavasset",
"productFamily": "Motor Grader",
"customFields": [
{
"customName": "region",
"customValue": "North America"
}
]
},
"receivedTime": "2020-03-06T17:27:04Z",
"event": "entry",
"fence": {
"name": "Chicago Grant Park",
"id": "XYZFence"
}
}
],
"responseMetadata": {
"nextCursor": "eyJvZmZzZXQiOjR9"
}
}
Depending on the combination of query parameters, the default value of the limit
parameter defining the response size can be 500 ("bulk") or 50 records ("lightweight").
Use these query parameters to return a bulk response (500 records maximum):
- all input query parameters blank
- all optional query parameters specified:
make
,model
,productFamily
,group
,ucid
make
model
productFamily
ucid
group
limit
andstartDate
andendTime
for a date range of 3 months from the current datestartDate
andendTime
for a date range of 3 months from the current datelimit
,model
,startDate
andendTime
for a date range of 3 months from the current datelimit
,make
,startDate
andendTime
for a date range of 3 months from the current datelimit
,productFamily
,startDate
andendTime
for a date range of 3 months from the current datelimit
,group
,startDate
andendTime
for a date range of 3 months from the current datelimit
,ucid
,startDate
andendTime
for a date range of 3 months from the current date
Use these query parameters to return a lightweight response (50 records maximum):
limit
,make
,serialNumber
, andstartDate
andendTime
for a date range of 1 month from the current datelimit
andstartDate
andendTime
for a date range of 1 month from the current datemakeSerialNumbers
(an array of values)
You can paginate through the response data using the responseMetadata.nextCursor
value in the cursor
query parameter.
For detailed information about the API input parameters, response structure, and error messages, see the API reference documentation.
Utilization History API
The Utilization API returns asset and fuel utilization data that provides a reading of how efficiently your assets are using fuel per targets set for them.
Sample request
curl -v -X GET \
"https://services.cat.com/catDigital/utilizationHistory/v1/utilization" -H "Authorization: Bearer {token}" \
-H 'Accept: application/json' \
Use Accept
header to specify the response format:
- JSON -
application/json
- XML -
application/xml
JSON is the default response format.
Sample JSON response
{
"utilizations": [
{
"equipmentHeader": {
"make": "CAT",
"model": "368B",
"serialNumber": "FA12345L-2D",
"equipmentId": "Myfavasset",
"productFamily": "Motor Grader",
"unitInstallDate": "2020-03-06T17:27:04.222Z",
"customFields": [
{
"customName": "region",
"customValue": "North America"
}
]
},
"assetLocalDate": "2016-01-31",
"runtimeHours": 10.2,
"idleHours": 3.6,
"workingHours": 6.6,
"customUtilizationType": "Movement",
"distanceTravelledKms": 122.7,
"workingEfficiency": 78,
"targetIdlePerformance": 13,
"targetIdleHours": 1.6,
"targetRuntimeHours": 8.1,
"targetRuntimePerformance": 88,
"hourCallouts": {
"runtimeHours": "Invalid value detected/detected in date range",
"idleHours": "Invalid value detected/detected in date range",
"workingHours": "Insufficient Runtime meter precision for valid calculation"
},
"runtimeFuelBurnedLiters": 27.5,
"idleFuelBurnedLiters": 3.2,
"workingFuelBurnedLiters": 24.3,
"runtimeFuelBurnRate": 2.9,
"idleFuelBurnRate": 0.9,
"workingFuelBurnRate": 3.8,
"mileage": 1.3,
"fuelCallouts": {
"runtimeFuelBurned": "Invalid value detected/detected in date range",
"idleFuelBurned": "Invalid value detected/detected in date range",
"workingFuelBurned": "Invalid value detected/detected in date range"
},
"latestUtilizationReport": "2021-07-13 23:52 CDT",
"defBurnedLiters": 0.8,
"defBurnRate": 0.1,
"deviceStatus": "Not Reporting",
"co2EmissionsKilogram": 590.5,
"assetStatus": "Ready to Run"
}
],
"responseMetadata": {
"nextCursor": "eyJvZmZzZXQiOjR9"
}
}
Depending on the combination of query parameters, the default value of the limit
parameter defining the response size can be 500 ("bulk") or 50 records ("lightweight").
Use these query parameters to return a bulk response (500 records maximum):
- all input query parameters blank
- all optional query parameters specified:
make
,model
,productFamily
,dealerCode
,subscription
,ucid
,startDate
,endDate
, andcursor
make
model
productFamily
ucid
dealerCode
subscription
cursor
limit
,make
,startDate
andendDate
for a date range of 3 months from the current datelimit
,model
,startDate
andendDate
for a date range of 3 months from the current datelimit
,productFamily
,startDate
andendDate
for a date range of 3 months from the current datelimit
,ucid
,startDate
andendDate
for a date range of 3 months from the current datelimit
,dealerCode
,startDate
andendDate
for a date range of 3 months from the current datelimit
,subscription
,startDate
andendDate
for a date range of 3 months from the current date
Use these query parameters to return a lightweight response (50 records maximum):
limit
,make
,serialNumber
, andstartDate
andendDate
for a date range of 3 months from the current datemakeSerialNumbers
(an array of values)
You can paginate through the response data using the responseMetadata.nextCursor
value in the cursor
query parameter.
For detailed information about the API input parameters, response structure, and error messages, see the API reference documentation.
Asset Summary API
The Asset Summary API returns the summary of each asset within the fleet view.
Sample request
curl -v -X GET \
"https://services.cat.com/catDigital/assetSummary/v1/assets" -H "Authorization: Bearer {token}" \
-H 'Accept: application/json' \
Sample JSON response
{
"assetSummaries": [
{
"equipmentHeader": {
"make": "CAT",
"makeDescription": "Komatsu",
"model": "368B",
"serialNumber": "FA12345L-2D",
"equipmentId": "Myfavasset",
"productFamily": "Motor Grader"
},
"assetStatus": "Ready to Run",
"deviceStatus": "Not Reporting",
"deviceInfo": {
"deviceType": "PLE742",
"deviceSerialNumber": "2090F001TR",
"mainboardSoftwareVersion": "6013399-00",
"radioFirmwarePartNumber": "6013399-00",
"gatewayFirmwarePartNumber": "6013399-00",
"dataLinkType": "J1939"
},
"geofences": [
{
"name": "testgeofence",
"areaSqm": 33.33
}
],
"groups": [
{
"name": "testgroup"
}
],
"subscription": "VisionlinkDaily",
"hourMeter": {
"value": 2356.7,
"lastReportedTime": "2020-03-06T17:27:04.222Z"
},
"userEnteredRuntimeHours": 2500.8,
"odometerInKilometer": {
"value": 2356.7,
"lastReportedTime": "2020-03-06T17:27:04.222Z"
},
"lastKnownLocation": {
"latitude": 38.07671,
"longitude": -78.50494,
"address": "201 Lambs Lane, Charlottesville, VA, Albemarle, United States, 22901"
},
"lastReportedTimeUtc": "2020-03-06T17:27:04.222Z",
"lastKnownFuelLevelPercent": {
"value": 73,
"lastReportedTime": "2020-03-06T17:27:04.222Z"
},
"lifetimeFuelLiters": {
"value": 2322,
"lastReportedTime": "2020-03-06T17:27:04.222Z"
},
"defRemainingPercent": {
"value": 219.6,
"lastReportedTime": "2020-03-06T17:27:04.222Z"
},
"lifetimeDefLiters": {
"value": 219.6,
"lastReportedTime": "2020-03-06T17:27:04.222Z"
},
"customUtilizationType": "Movement",
"lastOperator": {
"name": "Harry Hoggard",
"id": 123456
},
"dealerInfo": {
"dealerName": "Caterpillar Demo Dealer",
"dealerCode": "TD00",
"dcn": "1134ABC"
},
"customerInfo": {
"name": "Demo Customer",
"ucid": 2968305643
},
"customFields": [
{
"customName": "region",
"customValue": "North America"
}
]
}
],
"responseMetadata": {
"nextCursor": "eyJvZmZzZXQiOjR9"
}
}
Use Accept
header to specify the response format. Specify application/xml
for XML. Specify application/json
for JSON. JSON is the default response format.
Depending on the combination of query parameters, the default value of the limit
parameter defining the response size can be 500 ("bulk") or 50 records ("lightweight").
Use these query parameters to return a bulk response (500 records maximum):
- all input query parameters blank
- all optional query parameters specified:
limit
,make
,model
,productFamily
,dealerCode
,subscription
,ucid
,cursor
,deviceType
deviceType
make
model
productFamily
ucid
dealerCode
subscription
cursor
Use these query parameters to return a lightweight response (50 records maximum):
limit
,make
,serialNumber
, andstartDate
andendDate
for a date range of 1 months from the current datemakeSerialNumbers
(an array of values)
You can paginate through the response data using the responseMetadata.nextCursor
value in the cursor
query parameter.
For detailed information about the API input parameters, response structure, and error messages, see the API reference documentation.
Additional Documentation
The following additional documentation is available as part of the VisionLink APIs bundle:
- Access Guide: https://digital.cat.com/knowledge-hub/document/new-visionlink-api-access-guide
- VisionLink API Cheat Sheet: https://digital.cat.com/knowledge-hub/document/new-visionlink-specifications-document
- VisionLink API Postman Collection: https://digital.cat.com/knowledge-hub/document/visionlink-apis-postman-collection
Glossary
CID
Component Identifier (CID) identifies the on-board sensor that reported the diagnostic.
CWS
Caterpillar Corporate Web Security (CWS). CWS ID and password are created when an account is created within Caterpillar. The credentials can be used to log into various systems and applications within Caterpillar.
EID
Event ID (EID) identifies the specific event that was generated.
FMI
Failure Mode Indicator (FMI) identifies the diagnostic.
MID
Machine Component Identifier (MID) reporting the event.
SMU
Service Meter Unit.
Change History
Date | Description of Change |
---|---|
11-21-2022 | New document. |
1-24-2023 | Add review comments of Product Owner on API naming. |