API Reference

The cross-cutting rules every endpoint shares — how you authenticate, how errors come back, how pagination and rate limits behave, and the duty-status codes.

Authentication

Every request carries two static headers — no tokens, no refresh. One Provider Key identifies your platform; one Company Key identifies the carrier whose data you're requesting. To switch carriers, swap the Company Key — nothing else changes.

HeaderValueScope
X-API-Provider-Key Your provider key Identifies your platform. The same for every request.
X-API-Company-Key The carrier's company key Scopes all returned data to that one carrier.
Key format
Some older keys carry a system- prefix. Both formats are accepted; new keys are issued without it.
  • Provider Keyemail us for one. Issued once per integration.
  • Company Key — each carrier generates theirs from the Carrier API Key Guide and shares it with you.

Errors

A 200 means success, with the payload in data. Any other status is an error: data is null and the status_code tells you what happened. Branch on the status_code, not the description text.

StatusWhen it happensHow to fix
400 Bad Request A parameter is missing or malformed — for example a date that is not MM-DD-YYYY, a non-UUID id, or a value above the allowed maximum. Check the parameter formats and limits in the endpoint's reference, then retry.
401 Unauthorized A key header is missing, or the Provider Key or Company Key is invalid. Send both key headers, and confirm the Company Key is the one this carrier generated.
404 Not Found The id in the path does not match any record visible to your Company Key — often an id from a different carrier. Confirm the id belongs to the carrier your Company Key scopes to. List endpoints return valid ids.
429 Too Many Requests You have hit the Provider Key rate limit. Retry with exponential backoff, and poll no faster than the data changes. Need a higher limit? Email us.
500 Server Error Something failed on our side. Retry after a short delay. If it persists, email support with the time and the request you sent.

Error shape

Field Type Description
status_code integer HTTP status code (e.g. 401).
description string Human-readable error message.
data null Always null on error.

Pagination & rate limits

Two pagination styles, depending on the endpoint:

  • Page-based (most list endpoints). Use page (1-indexed) and limit; start at page=1 and stop when page ≥ total_pages.
  • Token-based (vehicle location history only). Pass the next_page_token from the previous response; it's absent on the last page. You can't page backwards.

Pagination fields are part of the response envelope.

Rate limits
The X-API-Provider-Key is rate-limited; the X-API-Company-Key is not. Use exponential backoff on a limit, and don't poll faster than data changes (motion data refreshes ~every 60s). Need a higher limit? Email us.

Duty status codes

Returned in current_status on Latest Driver Status.

CodeMeaning
DS_D Driving
DS_ON On Duty (Not Driving)
DS_SB Sleeper Berth
DS_OFF Off Duty
DR_IND_PC Personal Conveyance
DR_IND_YM Yard Move

HOS milliseconds

HOS buckets are returned in milliseconds. Divide by 3,600,000 for hours.

MillisecondsHours
28,800,000 8 hours
39,600,000 11 hours
50,400,000 14 hours
252,000,000 70 hours

Tools & downloads

Explore every endpoint interactively, or import the spec into your own client.

Prefer copy-paste code? See the Recipes for ready-made pagination and sync helpers.