Schemas
Error
errorHuman-readable. May be reworded at any time; do not parse it.
codeStable machine code. Branch on this.
AssetDaySummaryResponse
account_idasset_idEchoes the requested device_id.
fromtoOne row per UTC day that has data. May be empty.
AssetDay
asset_idtimestampStart of the UTC day this row covers.
idle_countNumber of idle events recorded that day.
trip_countNumber of trips that day.
idle_secondsTotal seconds idling. A gap between two events counts as idle only when the earlier event's speed was zero; a gap that straddles midnight is attributed to the day of the later event.
idle_over_threshold_secondsOf idle_seconds, the portion past your account's configured minimum idle
duration. Movement resets the running stretch, so short pauses never
accumulate toward it.
odometer_kmThe day's final odometer reading. Null when the vehicle reported none.
distance_kmDistance travelled that day. Null when it cannot be derived.
CameraListResponse
countTotal cameras visible to this key.
nextURL of the next page, or null.
previousURL of the previous page, or null.
CameraListItem
camera_serialcamera_positionsPositions this serial can produce. Iterate; do not assume one.
assetThe vehicle the camera is fitted to, or null when it is not currently linked to one. Constant for a given camera unless it is moved between vehicles, so it can be cached alongside discovery rather than re-read on every poll.
onlineCurrently always null and reserved for future use — do not gate
anything on it. It would describe the device, not the age of its pictures.
Use captured_at and age_seconds for real state.
last_image_atWhen this camera last produced an image, or null if it never has. Routinely months old out of season — it is not a health signal.
LatestImageResponse
camera_serialassetThe vehicle the camera is fitted to, or null when it is not currently linked to one. Constant for a given camera unless it is moved between vehicles, so it can be cached alongside discovery rather than re-read on every poll.
retrieved_atWhen FleetTrack served this response. Never show this as the capture time.
One entry per position that currently has an image. May be empty.
Asset
asset_idFleetTrack device ID. Stable; the identifier to key on.
display_namedescriptionAn operational label, not text written for the public — it may carry district, garage or crew detail that has not been agreed for publication. Confirm with the agency before displaying it.
Image
camera_positioncamera_position_labelcaptured_atWhen the camera took the picture. This is the value to show.
age_secondsretrieved_at − captured_at, precomputed so you need not trust your own
clock. This is the field to gate public display on.
Understand what it measures: these cameras capture only while the vehicle is actively working, so this is in practice time since the vehicle last worked — minutes during a storm, and months out of season. Polling faster does not make images fresher.
We recommend suppressing or visually marking anything beyond an agreed staleness threshold; 30–60 minutes is a sensible starting point. Presenting an hours-old picture of a clear road as current conditions is the main public-facing risk in this integration.
content_urlAbsolute URL for the bytes, requiring the same API key. Stable for a given camera and position, and it does not expire — what it returns changes as new images arrive.
content_typeRead this rather than assuming; we do not re-encode.
widthPixels, when known.
heightPixels, when known.
locationThe vehicle's last known valid GPS fix, or null when there is none on record.
fix_at and captured_at are close but not identical, so treat the position as
approximate.
Location
latitudeWGS-84 decimal degrees.
longitudeWGS-84 decimal degrees.
fix_atWhen that fix was recorded.
heading_degrees0–360, true north, direction of travel.
speed_mphConverted from KPH, so it may carry rounding.
speed_kphThe recorded value.