Dozer logoDozer
Get started
Dozer Docs
API

Site & Fleet

Machines, crew and the places they work — the four records every other Dozer workflow points at.

Site & Fleet is the four records every other Dozer workflow points at: the machines, the crew who run them, the crew who fix them, and the places they work. A machine is keyed by the unit number painted on its side, so the id you type in chat is the id in the API.

Create a equipmentPOST /api/v1/equipment

curl -X POST "https://trydozer.com/api/v1/equipment" \
  -H "Authorization: Bearer $DASH_API_KEY" \
  -H "Project-ID: pr_northpit" \
  -H "Content-Type: application/json" \
  -d '{"unit_number":"EXC-347","name":"Komatsu PC490","type":"excavator","status":"available","location":"North Pit","make":"Komatsu","model":"PC490","year":2021,"engine_hours":6240}'
Add excavator EXC-347 at the North Pit
data_set {
  "collection": "equipment",
  "object_id": "a60h-12",
  "data": {
    "unit_number": "EXC-347",
    "name": "Komatsu PC490",
    "type": "excavator",
    "status": "available",
    "location": "North Pit",
    "make": "Komatsu",
    "model": "PC490",
    "year": 2021,
    "engine_hours": 6240
  }
}

{
  "object": "equipment",
  "id": "obj_123",
  "unit_number": "EXC-347",
  "name": "Komatsu PC490",
  "type": "excavator",
  "status": "in_use",
  "status_color": "status color",
  "status_reported_at": "2026-07-25T12:00:00.000Z",
  "state": "state",
  "observation": "observation",
  "timeline_changes": "timeline changes",
  "metrics": {},
  "engine_hours": 6248,
  "live_status": "running",
  "created_at": "2026-07-25T12:00:00.000Z",
  "updated_at": "2026-07-25T12:00:00.000Z"
}

Four resources, each with its own reference: equipment (machines), operators (the crew who run them), mechanics (the crew who maintain them) and locations (sites, pits, yards and zones).

What to know before you call it

equipment is always active on a project; operators, mechanics and locations activate on evidence — a prompt or an uploaded file that mentions crew, technicians or multiple sites. None of the four declares delete: a machine is decommissioned by status, so its history survives.

Only equipment declares events, because it is the object everything else annotates — pre-trip results, fault codes, threshold crossings and shift totals all land on the machine's timeline. Telemetry-owned fields (last_live_data_at, live_status, engine_hours) are written by the device path, not here; see Devices & Media.

Let the agent do it

equipment-manager owns this by conversation — it asks one question at a time, reads a unit before writing it (a colliding unit_number is surfaced, never silently overwritten), and fuzzy-matches an existing location before minting a new one.

tasks_create { "project_id": "pr_northpit", "skill_id": "equipment-manager", "run": true,
               "prompt": "Add excavator EXC-347 at the North Pit, Riley as a hydraulics mechanic on day shift." }
tasks_status { "task_id": "ts_…" }     // → the units and crew it wrote

For a whole site at once, setup seeds equipment, devices, locations, dashboards and playlists from a site prompt or an uploaded equipment list — the Upload your equipment list step.

Validation failures name the field in param (Error Codes); the project-level brakes that stop a run before it writes anything are on Control Plane.

Next: Devices & Media to make these machines report · Daily Ops for what happens to them on a shift · TV & Dashboards to put them on a screen.

On this page

Dozer logoDozer

Ready to build? Connect an agent and go — no credit card needed to start.

Get startedSee our plans