Get started
Units and availability
The service performs source conversion. Odometer is always meters; engine runtime and idle duration are always seconds. Convert only for display—divide meters by 1609.344 for miles or 1000 for kilometers, and seconds by 3600 for hours.
| Data | Response field | API unit | Meaning |
|---|---|---|---|
| Location | location.reading.value.latitudelocation.reading.value.longitude | degrees | Latitude and longitude |
| Odometer | odometer.reading.value.meters | meters | Lifetime counter; use usage endpoints for change over a window |
| Lifetime engine runtime | engineHours.reading.value.seconds | seconds | Lifetime counter; use usage endpoints for change over a window |
| Lifetime idle duration | totalIdleTime.reading.value.seconds | seconds | Lifetime counter; use usage endpoints for change over a window |
| Speed | speed.reading.value.value | meters_per_second | Latest observed reading |
| Heading | heading.reading.value.value | degrees | Latest observed reading |
| Fuel level | fuelPercent.reading.value.value | percent | Fuel level, 0–100; not consumption |
| Vehicle battery voltage | batteryVoltage.reading.value.value | volts | Latest observed reading |
| Engine state | engineState.reading.value.state | enum | on, off or idle |
engineHours is the field name; its value is seconds. Distance and runtime response units stay the same even when an upstream source uses miles, kilometers, hours or milliseconds. Optional reading.units records provenance; the returned value is already normalized.
Each latest field has available, stale or missing status. missing means reading: null; it never means zero. Use the connection's available-data endpoint to discover support. Availability depends on authorization, hardware and enabled data; a uniform contract does not promise every asset has every reading.
Historical trip units
Historical trips use kilometres for distance and milliseconds for duration. These differ from telemetry counters and usage summaries. The trip source retains metres/seconds internally; the API converts once. Source-reported driving time may differ from the elapsed start/end interval, and GPS distance may differ from odometer change. Missing optional trip values are omitted, while valid zero values are preserved.
Trip metadata.modifiedAt includes conservative permission and driver relationship changes. It is an observed publication clock, not a provider update time. Completed work units do not establish fleet-wide history completeness or a polling guarantee.
Use the right time
observedAtis when the source measured the value;fetchedAtis when this service collected it. Freshness uses observation time.- Use current readings for lifetime meters and location; history for earlier stored readings.
- Engine runtime, distance and idle duration report changes over a window, with coverage.
- Usage reports count only valid observed intervals. Missing time is unknown, not unused time. Runtime can include idle and PTO.