Dozer logoDozer
Get started
Dozer Docs
Collections

Devices

CANedge loggers, cameras and other hardware reporting telemetry.

Base path /api/v1/devices on https://trydozer.com. Authenticate with Authorization: Bearer $DASH_API_KEY and name the project with the Project-ID header. Writes are validated in declared mode; an operation this resource does not declare answers 405 operation_not_supported.

List devices

GET /api/v1/devices

curl "https://trydozer.com/api/v1/devices?status=transmitting" \
  -H "Authorization: Bearer $DASH_API_KEY" \
  -H "Project-ID: pr_northpit"
Which devices have stopped reporting?
data_query {
  "collection": "devices",
  "where": {
    "status": "transmitting"
  }
}

Returns a paginated list of device objects, newest first.

{
  "object": "list",
  "data": [
    {
      "object": "device",
      "id": "obj_123",
      "device_id": "canedge-ht14",
      "name": "CANedge2 — HT-14",
      "status": "transmitting",
      "status_color": "status color",
      "status_reported_at": "2026-07-25T12:00:00.000Z",
      "state": "state",
      "observation": "observation",
      "timeline_changes": "timeline changes",
      "metrics": {},
      "created_at": "2026-07-25T12:00:00.000Z",
      "updated_at": "2026-07-25T12:00:00.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Parameters

ParameterTypeKindDescription
statusstringfilterWhere the device stands: unassigned, provisioned, online, offline, transmitting, or fault.
device_typestringfilterSensor, gateway, camera or stream device model (e.g. CANedge3, canbus, Argos Vision). The device detail view branches on this field.
integrationstringfilterExternal integration id feeding this device, such as canedge, argos, or ring.
equipment_idstringfilterEquipment objectId this device is mounted on.
qstringsearchFree-text search across name, device_id.
sortstringsortOne of last_seen_at, name; prefix with - to reverse.
limitnumberpageRows to return, 1–100. Defaults to 20.
cursorstringpagenext_cursor from the previous page.

Retrieve a device

GET /api/v1/devices/a60h-12

curl "https://trydozer.com/api/v1/devices/a60h-12" \
  -H "Authorization: Bearer $DASH_API_KEY" \
  -H "Project-ID: pr_northpit"
Show me the CANedge on HT-14
data_get {
  "collection": "devices",
  "object_id": "a60h-12"
}

Returns the device object.

{
  "object": "device",
  "id": "obj_123",
  "device_id": "canedge-ht14",
  "name": "CANedge2 — HT-14",
  "status": "transmitting",
  "status_color": "status color",
  "status_reported_at": "2026-07-25T12:00:00.000Z",
  "state": "state",
  "observation": "observation",
  "timeline_changes": "timeline changes",
  "metrics": {},
  "created_at": "2026-07-25T12:00:00.000Z",
  "updated_at": "2026-07-25T12:00:00.000Z"
}

Parameters

ParameterTypeKindDescription
idstringpathThe device's id or slug.

Append an event to a device

POST /api/v1/devices/{id}/events

curl -X POST "https://trydozer.com/api/v1/devices/a60h-12/events" \
  -H "Authorization: Bearer $DASH_API_KEY" \
  -H "Project-ID: pr_northpit" \
  -H "Content-Type: application/json" \
  -d '{"event":"Noted by the operator","context":{"source":"api"}}'
Add a note to the device {id}
data_event {
  "collection": "devices",
  "object_id": "a60h-12",
  "event": "Noted by the operator"
}

Returns the appended event object.

{
  "object": "event",
  "id": "evt_123",
  "event": "Noted by the operator"
}

Parameters

FieldTypeRequiredDescription
eventstringyesThe human-readable timeline entry.
contextobjectnoProvenance — source, integration, worker_run_id, …

Create a device

POST /api/v1/devices

curl -X POST "https://trydozer.com/api/v1/devices" \
  -H "Authorization: Bearer $DASH_API_KEY" \
  -H "Project-ID: pr_northpit" \
  -H "Content-Type: application/json" \
  -d '{"device_id":"device_123","name":"name","status":"status"}'
Create a new device
data_set {
  "collection": "devices",
  "object_id": "a60h-12",
  "data": {
    "device_id": "device_123",
    "name": "name",
    "status": "status"
  }
}

Returns the device object.

{
  "object": "device",
  "id": "obj_123",
  "device_id": "canedge-ht14",
  "name": "CANedge2 — HT-14",
  "status": "transmitting",
  "status_color": "status color",
  "status_reported_at": "2026-07-25T12:00:00.000Z",
  "state": "state",
  "observation": "observation",
  "timeline_changes": "timeline changes",
  "metrics": {},
  "created_at": "2026-07-25T12:00:00.000Z",
  "updated_at": "2026-07-25T12:00:00.000Z"
}

Parameters

FieldTypeRequiredDescription
device_idstringnoHardware or stream device id — how the device API and integrations name this device.
namestringnoDisplay name for the device.
statusstringnoWhere the device stands: unassigned, provisioned, online, offline, transmitting, or fault.
status_colorstringnoOptional display color preset for status.
status_reported_atstringnoWhen status was last reported (ISO 8601).
statestringnoLoose operational state reported by a worker or integration (e.g. active).
observationstringnoCurrent human-readable observation for this device.
device_typestringnoSensor, gateway, camera or stream device model (e.g. CANedge3, canbus, Argos Vision). The device detail view branches on this field.
integrationstringnoExternal integration id feeding this device, such as canedge, argos, or ring.
serial_numberstringnoHardware serial number.
imeistringnoCellular modem IMEI, when the device has one.
protocolstringnoBus or transport protocol the device speaks (e.g. J1939).
platformstringnoVendor platform name reported by the integration.
firmwarestringnoFirmware name reported by the device.
firmware_versionstringnoFirmware version reported by the device.
locationjsonnoWhere the device is — a site name string on seeded devices, or a \{lat, lon\} object stamped by GNSS telemetry. Mixed by measurement; see the location_* scalars for the decoded coordinates.
last_seen_atstringnoWhen Dozer last heard from the device (ISO 8601). Stamped at seed time by the setup skill; integration freshness lives in the pipeline stamps below.
notesstringnoOperator/admin notes about this device.

Update a device

PATCH /api/v1/devices/a60h-12

curl -X PATCH "https://trydozer.com/api/v1/devices/a60h-12" \
  -H "Authorization: Bearer $DASH_API_KEY" \
  -H "Project-ID: pr_northpit" \
  -H "Content-Type: application/json" \
  -d '{"device_id":"device_123","name":"name","status":"status"}'
Update the device {id}
data_set {
  "collection": "devices",
  "object_id": "a60h-12",
  "data": {
    "device_id": "device_123",
    "name": "name",
    "status": "status"
  }
}

Returns the device object.

{
  "object": "device",
  "id": "obj_123",
  "device_id": "canedge-ht14",
  "name": "CANedge2 — HT-14",
  "status": "transmitting",
  "status_color": "status color",
  "status_reported_at": "2026-07-25T12:00:00.000Z",
  "state": "state",
  "observation": "observation",
  "timeline_changes": "timeline changes",
  "metrics": {},
  "created_at": "2026-07-25T12:00:00.000Z",
  "updated_at": "2026-07-25T12:00:00.000Z"
}

Parameters

FieldTypeRequiredDescription
device_idstringnoHardware or stream device id — how the device API and integrations name this device.
namestringnoDisplay name for the device.
statusstringnoWhere the device stands: unassigned, provisioned, online, offline, transmitting, or fault.
status_colorstringnoOptional display color preset for status.
status_reported_atstringnoWhen status was last reported (ISO 8601).
statestringnoLoose operational state reported by a worker or integration (e.g. active).
observationstringnoCurrent human-readable observation for this device.
device_typestringnoSensor, gateway, camera or stream device model (e.g. CANedge3, canbus, Argos Vision). The device detail view branches on this field.
integrationstringnoExternal integration id feeding this device, such as canedge, argos, or ring.
serial_numberstringnoHardware serial number.
imeistringnoCellular modem IMEI, when the device has one.
protocolstringnoBus or transport protocol the device speaks (e.g. J1939).
platformstringnoVendor platform name reported by the integration.
firmwarestringnoFirmware name reported by the device.
firmware_versionstringnoFirmware version reported by the device.
locationjsonnoWhere the device is — a site name string on seeded devices, or a \{lat, lon\} object stamped by GNSS telemetry. Mixed by measurement; see the location_* scalars for the decoded coordinates.
last_seen_atstringnoWhen Dozer last heard from the device (ISO 8601). Stamped at seed time by the setup skill; integration freshness lives in the pipeline stamps below.
notesstringnoOperator/admin notes about this device.

What comes back (read-only)

Every device carries the envelope below. The fields under it are computed or stamped by the platform — they are returned, never sent.

FieldTypeDescription
objectstringAlways device.
idstringStable object id. Also accepted in place of slug on any path.
slugstringURL-safe name, unique within the collection.
created_atstringISO-8601 timestamp of the first write.
updated_atstringISO-8601 timestamp of the most recent write. The cursor sorts on this.
timeline_changesstringShort latest timeline-change summary, stamped by device workers for top-level display.
metricsobjectLoose metrics map stamped by workers for display surfaces.
equipment_idstringEquipment objectId this device is mounted on.
equipmentarrayEquipment ids declared by an external device integration (first entry becomes equipment_id).
machine_idstringEquipment id reported by telemetry.
project_idstringDash project id reported by telemetry.
last_live_data_atstringWhen this device last received live data (ISO 8601).
last_stream_data_atstringISO timestamp of the latest raw stream upload for this device.
last_computed_data_atstringISO timestamp of the latest computed telemetry or worker output.
last_signal_atstringISO timestamp of the latest decoded telemetry signal.
last_upload_atstringISO timestamp of the latest raw upload.
last_processed_atstringMirror of last_computed_data_at still stamped by the canedge worker for older readers. Read it, never set it.
location_latnumberLatest decoded telemetry latitude.
location_lonnumberLatest decoded telemetry longitude.
location_maps_urlstringMap link for the latest decoded telemetry coordinates.
location_updated_atstringISO timestamp of the latest decoded telemetry coordinates.
location_speed_kmhnumberLatest decoded ground speed in km/h.
assigned_atstringWhen this device was linked to equipment (ISO 8601).
registered_atstringWhen this device was registered through the device API (ISO 8601).
requested_device_idstringDevice id requested by an external provisioning caller before normalization.
resourcesobjectDevice API endpoints for this device, stamped at registration.
  resources.stream_urlstringEndpoint the device streams raw uploads to.
  resources.data_urlstringBatch data-write endpoint for decoded values.
  resources.event_urlstringEndpoint for filing timeline events on this device.
  resources.settings_urlstringEndpoint for reading and updating device settings.
settingsobjectDevice integration settings reported by the device API.
workersarrayConfigured device worker descriptors for this device.
liveobjectCurrent signal values keyed by canonical telemetry name.
pipelineobjectCurrent stream, media, and worker process state.
parserobjectParser metadata from the most recent device worker run.
workerobjectWorker provenance, cost, and runtime metadata.
visionobjectVision model outputs for camera-style devices.
last_media_idstringLatest media id analyzed by a device vision worker.
vision_summarystringShort natural-language summary from the latest vision worker run.
vision_summary_as_ofstringMedia timestamp represented by the latest vision summary.
vision_state_overviewstringOperational state description inferred from the latest media.
vision_scene_summaryobjectStructured overview returned by the vision model.
vision_total_durationstringDuration of the analyzed media segment.
vision_modelstringModel used by the latest vision worker run.
vision_skill_idstringSkill id used by the latest vision worker run.
vision_skill_versionstringSkill version used by the latest vision worker run.
vision_phasestringProcessing phase for staged vision capabilities.
vision_entitiesarrayEquipment, objects, and other entities identified in the latest media.
vision_timeline_changesarrayChronological vision events detected in the latest media.
worker_costobjectEstimated AI, worker, and storage cost for the latest worker output.
sourcestringOrigin of this device record, such as an uploaded devices file.

Errors

Failures use { error: { type, code, message, param } }. The full code table is generated at Error Codes.