TrackEnsure Developer Portal
Build powerful integrations with fleet, trailer, driver, and compliance data from the TrackEnsure platform.
Introduction
TrackEnsure API allows developers and integration partners to access fleet, trailer, driver, and compliance-related data from the TrackEnsure platform.
The API is intended for integrations with:
- TMS platforms
- fleet management systems
- dispatch software
- compliance workflows
- analytics and reporting tools
With the API, integrators can retrieve:
- truck and trailer master data
- truck and trailer location data
- driver Hours of Service data
- driving time summaries
- IFTA reporting data
The API follows a REST-based architecture and returns responses in JSON format.
Getting Started
To begin using the TrackEnsure API:
Contact support to request access and receive your token.
Browse the API Reference to find the endpoints you need.
Use your token to make a test call to the truck list endpoint.
All responses are returned in JSON format.
The API is designed primarily for retrieving fleet operational data and compliance information.
Authentication
Authentication is performed using an API token.
API token must be included in every request.
Supported token transport methods:
- HTTP header (recommended)
- query parameter
Recommended header: X-AUTH-TOKEN: YOUR_TOKEN
The token is passed as a query parameter in every request.
Query parameter example:
https://trackensure.com/extapi/asset/trucks?token=YOUR_TOKEN
The API token uniquely identifies the company account and authorizes access to its fleet data.
The API token grants full access to your company’s fleet data. Do not expose it in client-side code or public repositories.
Base URL
All endpoints are accessed through the TrackEnsure external API base path:
https://trackensure.com/extapi/
Each endpoint extends this base URL with its own resource path, for example:
/asset/trucks/asset-position/truck-list/hos-status/ifta-by-event-report
First API Request
A typical first request is retrieving the company truck list.
OR using header authentication:
Header: X-AUTH-TOKEN: YOUR_TOKEN
The response returns basic information about all trucks registered in the system, including identifiers, VIN numbers, manufacturer information, and status.
Replace YOUR_TOKEN with the API token issued to your company account.
Request Format
The TrackEnsure API uses HTTP requests with query parameters and headers.
Requests are constructed using:
- the base URL
- the endpoint path
- required query parameters (if applicable)
- request headers (for authentication)
Example
GET https://trackensure.com/extapi/asset-position/trucks?truckNumbers=002,0011&token=TOKEN
OR using header authentication:
Header: X-AUTH-TOKEN: TOKEN
Common query parameters used across endpoints include:
tokentruckNumberstrailerNumberor trailer identifiersidsdateTimeFromdateTimeTodateFromdateTo
Response Format
The API returns data primarily in JSON format.
Other content types may be returned for specific endpoints (for example CSV or PDF).
Depending on the endpoint, the response may contain:
- an array of objects
- a single object
- nested result structures
Examples from the API include:
- truck lists returned as arrays
- trailer detail returned as a single object
- HOS status returned inside a result object
Response Codes
The TrackEnsure API uses standard HTTP status codes to indicate the result of an API request.
| Code | Description |
|---|---|
| 200 | The request was successfully processed and the response contains the requested data |
| 201 | resource created |
| 202 | request accepted or resource updated |
| 400 | invalid request parameters |
| 401 | The request is unauthorized. The API token is missing, invalid, or expired |
| 404 | resource was not found |
| 405 | The request was rejected due to validation rules or access restrictions |
| 500 | An internal server error occurred while processing the request |
Error Responses
Error responses returned by the API may appear in two formats depending on the endpoint and the type of validation failure.
Plain Error Message
Some validation errors return a plain text message in the response body.
Examples:
- Reason: extapi frequency for parameter driverId = 212442 is to high
- Reason: extapi consumerStatus falseconsumerStatus false
- Reason: extapi not enabled at Account Services List
- Reason: extapi asset_position_truck_history IP validation failed
These messages typically occur when a request violates API validation rules, access restrictions, or security policies.
Structured JSON Error Object
Some errors return a structured JSON response containing additional details about the failure.
Example
{
"error": "Human-readable message",
"code": "ENDPOINT_SPECIFIC_CODE"
}
Fields description
| Field | Description |
|---|---|
| error | General description of the error |
| code | Internal API error code |
These responses are typically returned with HTTP status code 500.
Timestamps
Some responses contain timestamps expressed in milliseconds since Unix Epoch.
Unix Epoch start: January 1, 1970 UTC.
Example timestamp: 1640255456757
Applications should convert milliseconds into the required time unit when processing the data.
Some endpoints may return timestamps in ISO 8601 format.
Example value: 2026-04-01T10:00:00.000+0000
Human-readable timestamps may also be provided for display purposes for example: formattedSignalTime
Example value: 12-23-2021 05:30 AM EST
Filtering
Many endpoints support filtering through query parameters.
Filtering allows integrations to retrieve only the data required for a specific request.
Examples of filtering include:
- retrieving specific trucks by truck numbers
- retrieving HOS status by driver or truck
- retrieving driving time for specific drivers
- retrieving reports for a defined date range
Filtering parameters vary depending on the endpoint.
Rate Limits
To maintain platform stability and ensure fair usage, API requests must follow the guidelines below.
General Recommendations
- Cache master data such as trucks and trailers whenever possible.
- Request only the fields that are required for your integration.
- Avoid unnecessary repeated requests.
Polling Frequency
Location and status updates must not be requested more frequently than once every 5 minutes per asset.
Excessive polling may result in request throttling or temporary rate limiting.
Higher Request Volumes
If your integration requires higher request volumes or more frequent updates, contact TrackEnsure support to discuss available options.
Use system identifiers
Where possible, integrations should use system identifiers such as:
truckIdtrailerIddriverId
These identifiers are guaranteed to be unique within the TrackEnsure system
Prefer raw data fields
Some fields are provided primarily for display purposes, such as formatted timestamps, should not be used as the primary source for system calculations.
Whenever possible, use raw data fields such as timestamps and numeric values.
Handle nullable fields
Some response fields may contain null values.
Integrations should be designed to handle missing or incomplete data without causing processing errors.
Examples include:
- location coordinates that are not yet available
- address information that cannot be resolved
- trailers that have not reported a signal
Normalize time values
Several API responses return time values in milliseconds.
Applications consuming this data should convert these values into the appropriate units required by the integration, such as seconds or hours.
For example:
milliseconds to seconds -> divide by 1000
milliseconds to hours -> divide by 3600000
Optimize data polling
Since the API is request-based, integrations should design polling strategies that balance freshness of data with system efficiency.
Recommended practices include:
- syncing asset master data infrequently
- polling operational data only when required
- scheduling reporting data retrieval rather than requesting it continuously
Excessive or unnecessary polling should be avoided to maintain system efficiency.
API Reference
Overview
The TrackEnsure API provides access to fleet assets, telemetry data, driver compliance information, and operational reports stored in the TrackEnsure platform.
API endpoints are organized by resource type such as assets, telemetry, compliance, and reporting.
All requests are made using standard HTTP methods and responses are returned in JSON format.
Authentication is performed using an API token that must be included in every request.
Truck List
Returns a list of all trucks connected to the company account.
This endpoint returns basic truck information such as identifiers, VIN numbers, manufacturer information, and asset status. Location and telemetry data are not included.
Endpoint
Full Request URL
https://trackensure.com/extapi/asset/trucks?token=TOKEN
OR using header authentication:
Query Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| token | Yes | string | API authentication token |
| allTruckRequired | No | boolean | Include non-active trucks |
*Required only when not using header authentication
Example Request
GET https://trackensure.com/extapi/asset/trucks?token=TOKEN
Example Response
[
{
"truckId": "259673",
"truckNumber": "600K",
"vin": "1XKADB9R47R180000",
"modelYear": "2007",
"make": "Kenworth",
"status": "INACTIVE"
},
{
"truckId": "196712",
"truckNumber": "1222",
"vin": "3AKJGKD52FSFN2808",
"modelYear": "2015",
"make": "Freightliner",
"status": "INACTIVE"
}
]
Response Fields
| Field | Type | Description |
|---|---|---|
| truckId | string | Unique truck identifier in the system |
| truckNumber | string | Company truck number |
| vin | string | Vehicle identification number |
| modelYear | string | Truck manufacturing year |
| make | string | Truck manufacturer |
| model | Truck model | |
| status | string | Truck status in the company [ACTIVE, INACTIVE] |
List Trailers
Returns a list of all trailers connected to the company account.
This endpoint returns basic trailer information such as company trailer number, VIN, manufacturer, trailer type, and status. Location and telemetry data are not included.
Endpoint
Full Request URL
https://trackensure.com/extapi/asset/trailers?token=TOKEN
OR using header authentication:
Header:
X-AUTH-TOKEN: TOKEN
Query Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| token | Yes* | string | API authentication token |
*Required only when not using header authentication
Example Request
GET https://trackensure.com/extapi/asset/trailers?token=TOKEN
Example Response
[
{
"licensePlate": "5780PG",
"year": "2015",
"trailerNumber": "578RT",
"trailerLength": "53",
"vin": "1GRAA0625FW701302",
"trailerType": "reefer",
"trailerId": "55251",
"make": "GDAN",
"licenseStateProvince": "MO",
"status": "ACTIVE"
},
{
"licensePlate": "TH5009",
"year": "2017",
"trailerNumber": "3540",
"vin": "1GRAA0625HW703540",
"trailerType": "reefer",
"trailerId": "49985",
"make": "Great Dane",
"licenseStateProvince": "ID",
"status": "ACTIVE"
}
]
Response Fields
| Field | Type | Description |
|---|---|---|
| licensePlate | string | Trailer license plate |
| year | string | Trailer manufacturing year |
| trailerNumber | string | Trailer number assigned by the company |
| trailerLength | string | Trailer length in feet |
| vin | string | Vehicle Identification Number of the trailer |
| trailerType | string | Trailer type |
| trailerId | string | Unique identifier of the trailer in the system |
| make | string | Trailer manufacturer |
| licenseStateProvince | string | State or province that issued the license plate |
| status | string | Trailer status within the company account |
List Truck Positions
Returns the latest known position and telemetry information for all trucks connected to the company account.
This endpoint provides fleet-wide location data including coordinates, signal time, driver assignment, and basic operational information.
Endpoint
Full Request URL
https://trackensure.com/extapi/asset-position/truck-list?token=TOKEN
OR using header authentication:
Header: X-AUTH-TOKEN: TOKEN
Query Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| token | Yes* | string | API authentication token |
| allTruckRequired | No | boolean | Include non-active trucks |
| withTrailer | No | string | Use Y to include trailer-related data |
*Required only when not using header authentication
Example Request
GET https://trackensure.com/extapi/asset-position/truck-list?token=TOKEN
Example Response
[
{
"truckId": 204989,
"truckNumber": "001",
"vin": "4V4NC9EH5HN988282",
"licensePlate": "YP05558",
"licenseStateProvince": "CA",
"signalTime": 1640255456757,
"lat": "37.91398",
"lng": "-121.20246",
"compass": null,
"odometer": "484650.81",
"postalCode": "N/A",
"country": "US",
"locality": "CA",
"address": "Stockton",
"driverId": 25876,
"formattedSignalTime": "12-23-2021 05:30 AM EST",
"setDriverTrailer": null,
"speed": "0 mph"
}
]
Response Fields
| Field | Type | Description |
|---|---|---|
| truckId | integer | Unique truck identifier in the system |
| truckNumber | string | Company truck number |
| vin | string | Vehicle identification number |
| licensePlate | string | Truck manufacturing year |
| licenseStateProvince | string | Truck manufacturer |
| signalTime | integer | Timestamp in ISO 8601 format |
| lat | string | Latitude |
| lng | string | Longitude |
| compass | integer | Vehicle heading |
| odometer | string | Odometer reading |
| postalCode | string | ZIP code |
| country | string | Country |
| locality | string | City or locality |
| address | string | Location description |
| driverId | integer | Assigned driver ID |
| formattedSignalTime | string | Human readable timestamp |
| setDriverTrailer | string | Trailer assignment data |
| speed | string | Vehicle speed |
- This endpoint returns the latest available signal for each truck in the fleet.
- Timestamp values are returned in milliseconds since Unix Epoch.
- For system processing, use
signalTimeinstead offormattedSignalTime. - Some fields may contain null values if data is not available.
Get Trucks
Returns detailed telemetry and location information for selected trucks.
This endpoint is used when an integration needs location and operational data for specific trucks rather than the entire fleet.
Endpoint
Full Request URL
https://trackensure.com/extapi/asset-position/trucks?truckNumbers=002,0011&token=TOKEN
OR using header authentication:
Header: X-AUTH-TOKEN: TOKEN
Query Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| truckNumbers | Yes | string | Comma-separated list of truck numbers |
| token | Yes* | string | API authentication token |
| withTrailer | No | string | Use Y to include trailer-related data |
*Required only when not using header authentication
Example Request
GET https://trackensure.com/extapi/asset-position/trucks?truckNumbers=312,920&token=TOKEN
Example Response
[
{
"truckId": 305686,
"truckNumber": "312",
"vin": "3AKJGLD56FSGD6805",
"licensePlate": "AL582",
"licenseStateProvince": "ID",
"signalTime": 1639706486725,
"lat": "43.657036",
"lng": "-116.65677",
"compass": 78,
"odometer": "484650.81",
"postalCode": null,
"country": null,
"locality": null,
"address": null,
"driverId": 64044,
"formattedSignalTime": "12-16-2021 09:01 PM EST",
"setDriverTrailer": null,
"speed": "0 mph"
}
]
Response Fields
| Field | Type | Description |
|---|---|---|
| truckId | integer | Unique truck identifier in the system |
| truckNumber | string | Company truck number |
| vin | string | Vehicle identification number |
| licensePlate | string | Truck manufacturing year |
| licenseStateProvince | string | Truck manufacturer |
| signalTime | integer | Timestamp in ISO 8601 format |
| lat | string | Latitude |
| lng | string | Longitude |
| compass | integer | Vehicle heading |
| odometer | string | Odometer reading |
| postalCode | string | ZIP code |
| country | string | Country |
| locality | string | City or locality |
| address | string | Location description |
| driverId | integer | Assigned driver ID |
| formattedSignalTime | string | Human readable timestamp |
| setDriverTrailer | string | Trailer assignment information |
| speed | string | Current truck speed at the time of the request |
This endpoint returns the latest available signal for each truck.
Get Trailer
Returns detailed information for a selected trailer, including identification data and the latest known location when available.
This endpoint is used to retrieve the most recent signal information for a specific trailer.
Endpoint
Full Request URL
https://trackensure.com/extapi/asset-position/trailer?trailerNumber=9005&token=TOKEN
OR using header authentication:
Header: X-AUTH-TOKEN: TOKEN
Query Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| trailerNumber | Yes | string | Trailer number assigned by the company |
| token | Yes* | string | API authentication token |
*Required only when not using header authentication
Example Request
GET https://trackensure.com/extapi/asset-position/trailer?trailerNumber=9005&token=TOKEN
Example Response
{
"trailerNumber": "03VT",
"owner": null,
"vin": "1UYVS25336P785607",
"licensePlate": "4LJ4450",
"licenseStateProvince": "CA",
"signalTime": null,
"lat": null,
"lng": null
}
Response Fields
| Field | Type | Description |
|---|---|---|
| trailerNumber | string | Trailer number assigned by the company |
| owner | string or null | Owner of the trailer |
| vin | string | Vehicle Identification Number of the trailer |
| licensePlate | string | Trailer license plate |
| licenseStateProvince | string | State or province that issued the license plate |
| signalTime | integer or null | Timestamp in ISO 8601 format |
| lat | string or null | Latitude coordinate of the trailer's last known location |
| lng | string or null | Longitude coordinate of the trailer's last known location |
- This endpoint returns data for a single trailer identified by trailerNumber.
- Location fields (lat, lng) may return null if the trailer has not reported a signal.
- The signalTime field represents the timestamp of the latest received trailer signal and is expressed in milliseconds since Unix Epoch.
HOS Driving Time
Returns the total time a driver spent in Driving status during the specified time period.
This endpoint is typically used for compliance monitoring, reporting, and operational analysis of driver activity.
Endpoint
Full Request URL
https://trackensure.com/extapi/hos-driving-time/?ids=82684&dateTimeFrom=202105010000&dateTimeTo=202106010000&token=TOKEN
OR using header authentication:
Header: X-AUTH-TOKEN: TOKEN
Query Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| ids | Yes | string | Driver ID or comma-separated list of driver IDs |
| dateTimeFrom | Yes | string | Start of the requested time period (format yyyyMMddHHmm) |
| dateTimeTo | No | string | End of the requested time period (format yyyyMMddHHmm) |
| token | Yes* | string | API authentication token |
*Required only when not using header authentication
Example Request
GET https://trackensure.com/extapi/hos-driving-time/?ids=82684&dateTimeFrom=202105010000&dateTimeTo=202106010000&token=TOKEN
Example Response
[
{
"firstName": "John",
"lastName": "Smith",
"drivingTimeMs": 5752781,
"drivingTime": "1h 35m 52s",
"id": "82684"
}
]
Response Fields
| Field | Type | Description |
|---|---|---|
| firstName | string | Driver first name |
| lastName | string | Driver last name |
| drivingTimeMs | integer | Total time spent in Driving status during the selected period, expressed in milliseconds |
| drivingTime | string | Total driving time formatted for display |
| id | string | Unique identifier of the driver in the TrackEnsure system |
- Multiple drivers can be requested by passing a comma-separated list of IDs in the ids parameter.
- The drivingTimeMs field should be used for calculations or data processing.
- The drivingTime field is intended for display purposes only.
HOS Status
Returns current Hours of Service (HOS) status information for drivers or trucks.
This endpoint provides remaining duty cycle time, driving time, shift time, and break requirements according to the configured HOS rules.
Endpoint
Full Request URL
https://trackensure.com/extapi/hos-status/?by=driver&ids=2173&token=TOKEN
OR using header authentication:
Header: X-AUTH-TOKEN: TOKEN
Query Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| by | Yes | string | Filtering type. Supported values: driver or truck |
| ids | Yes | string | Comma-separated list of identifiers. If by=driver, values represent driverId. If by=truck, values represent truckId |
| token | Yes* | string | API authentication token |
*Required only when not using header authentication
Example Request
GET https://trackensure.com/extapi/hos-status/?by=driver&ids=2173&token=TOKEN
Example Response
{
"result": [
{
"hosStatus": {
"usDutyCycle": {
"countryRuleset": "USA",
"drivingClock": 39600000,
"cycleClockHHMM": "14:18",
"cycleClock": 51516518,
"homeTerminalTimeZone": "US/Mountain",
"shiftClock": 50400000,
"type": 8,
"shiftClockHHMM": "14:00",
"drivingClockHHMM": "11:00",
"breakClock": 28800000,
"breakClockHHMM": "08:00"
}
},
"eventCode": 3,
"firstName": "John",
"lastName": "Brown",
"driverId": 97865,
"eventType": 1
}
]
}
Response Fields
| Field | Type | Description |
|---|---|---|
| result | array | Container for the returned HOS status records |
| hosStatus | object | Technical object containing HOS status information |
| usDutyCycle | object | Object describing the driver's current duty cycle |
| countryRuleset | string | Indicates which country's HOS rules are applied |
| drivingClock | integer | Remaining driving time available during the current shift (milliseconds) |
| drivingClockHHMM | string | Remaining driving time in hours and minutes format |
| cycleClock | integer | Remaining time until the end of the current duty cycle (milliseconds) |
| cycleClockHHMM | string | Remaining cycle time in hours and minutes format |
| homeTerminalTimeZone | string | Time zone configured for the company |
| shiftClock | integer | Remaining time until the end of the driver's shift (milliseconds) |
| shiftClockHHMM | string | Remaining shift time in hours and minutes format |
| breakClock | integer | Remaining continuous driving time before a mandatory break (milliseconds) |
| breakClockHHMM | string | Remaining break timer in hours and minutes format |
| type | integer | Duty cycle type selected by the driver |
| eventCode | integer | Current driver duty status code |
| eventType | integer | Type of the current HOS event |
| firstName | string | Driver first name |
| lastName | string | Driver last name |
| driverId | integer | Unique driver identifier in the TrackEnsure system |
| eventTimestamp | string | ISO 8601 timestamp of current event |
| eventTimestampMs | integer | Timestamp in milliseconds |
| currentTruckNumber | string | Assigned truck number |
- Time values returned in milliseconds can be converted to hours by dividing by 3600000.
- The HHMM fields are provided for display purposes.
- The drivingClock, cycleClock, shiftClock, and breakClock fields should be used for calculations and system processing.
IFTA Report
Returns IFTA mileage and fuel information calculated from recorded driving events.
The report includes mileage per jurisdiction as well as detailed trip intervals for the selected truck and date range.
Endpoint
Full Request URL
https://trackensure.com/extapi/ifta-by-event-report/?dateFrom=2022-02-11&dateTo=2022-02-11&truckId=234
OR using header authentication:
Header: X-AUTH-TOKEN: TOKEN
Query Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| dateFrom | Yes | string | Start date in format yyyy-MM-dd |
| dateTo | Yes | string | End date in format yyyy-MM-dd |
| truckId | No | integer | Identifier of a specific truck |
| token | Yes | string | API authentication token |
Example Request
GET https://trackensure.com/extapi/ifta-by-event-report/?dateFrom=20220211&dateTo=20220211&truckId=2342&token=TOKEN
Example Response
{
"diesel": {
"TX": {
"fuelVolumePurchased": 0,
"totalDistanceDriven": 248.35
}
},
"trucksIntervals": {
"940": [
{
"odometerFrom": "149216",
"odometerTo": "149281",
"distance": 65,
"dateFrom": "February 11, 2022 0:18:49",
"dateTo": "February 11, 2022 1:18:59",
"stateCode": "TX",
"coordinatesFrom": "35.186786, -102.010979",
"coordinatesTo": "34.964148, -100.940967"
}
]
}
}
Response Fields
| Field | Type | Description |
|---|---|---|
| diesel | object | Container for fuel and mileage totals grouped by jurisdiction |
| stateCode | string | Jurisdiction or state code |
| fuelVolumePurchased | number | Fuel purchased in the specified jurisdiction |
| totalDistanceDriven | number | Total distance driven within the jurisdiction |
| trucksIntervals | object | Collection of trip intervals grouped by truck |
| odometerFrom | string | Odometer reading at the start of the interval |
| odometerTo | string | Odometer reading at the end of the interval |
| distance | number | Distance driven during the interval |
| dateFrom | string | Start time of the trip interval |
| dateTo | string | End time of the trip interval |
| stateCode | string | Jurisdiction where the interval occurred |
| coordinatesFrom | string | Starting coordinates of the interval |
| coordinatesTo | string | Ending coordinates of the interval |
- The report aggregates mileage and fuel data required for IFTA reporting.
- Results are grouped by jurisdiction and truck intervals.
- The trucksIntervals section provides detailed trip segments including odometer readings, timestamps, and coordinates.
- Some intervals may include additional diagnostic or location accuracy fields depending on the recorded data.
Support
Overview
The Support section provides assistance for developers integrating with the TrackEnsure API.
If you encounter issues during development or while running your integration in production, the TrackEnsure support team can help investigate API behavior, troubleshoot requests, and provide guidance on implementation.
Support is available for topics related to:
- API access and authentication
- request and response troubleshooting
- endpoint usage
- parameter validation
- integration questions
- unexpected API responses
Developer Support
If you experience issues while working with the API, review the following before contacting support.
Many integration issues are caused by missing parameters, incorrect parameter formats, or invalid authentication tokens.
Contact Support
If the issue cannot be resolved using the documentation, contact the TrackEnsure support team.
Support email
[email protected]When contacting support, include the following information:
- company name
- description of the integration
- API endpoint used
- full request example
- response received
- timestamp of the request
- description of the issue
Providing this information allows the support team to quickly reproduce and investigate the problem.
Requesting API Access
To begin using the TrackEnsure API, an API token is required.
To request access, contact the TrackEnsure team and provide:
- company name
- contact person
- intended integration use case
- expected API usage
Once access is approved, an API token will be issued for your account.
This token must be included in every API request.