Skip to main content

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-KeyYour provider keyIdentifies your platform. The same for every request.
X-API-Company-KeyThe carrier's company keyScopes 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 Key

Email 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 indata. Any other status is an error:data is nulland the status_code tells you what happened. Branch on the status_code, not the description text.

StatusWhen it happensHow to fix
400Bad RequestA 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.
401UnauthorizedA 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.
404Not FoundThe 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.
429Too Many RequestsYou 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.
500Server ErrorSomething failed on our side.Retry after a short delay. If it persists, email support with the time and the request you sent.

Error shape

FieldTypeDescription
status_codeintegerHTTP status code (e.g. 401).
descriptionstringHuman-readable error message.
datanullAlways null on error.

Pagination & rate limits

Two pagination styles, depending on the endpoint:

  • Page-based (most list endpoints). Usepage (1-indexed) andlimit; start atpage=1 and stop whenpage ≥ total_pages.
  • Token-based (vehicle location history only). Pass thenext_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; theX-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 onLatest Driver Status.

CodeMeaning
DS_DDriving
DS_ONOn Duty (Not Driving)
DS_SBSleeper Berth
DS_OFFOff Duty
DR_IND_PCPersonal Conveyance
DR_IND_YMYard Move

HOS milliseconds

Divide by 3,600,000 for hours.

28,800,0008 hours
39,600,00011 hours
50,400,00014 hours
252,000,00070 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.

esc