Dozer logoDozer
Get started
Dozer Docs
Collections

Repair Tickets

Work to be done on a machine, from flagged to fixed.

Base path /api/v1/repair-tickets 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 repair tickets

GET /api/v1/repair-tickets

curl "https://trydozer.com/api/v1/repair-tickets?status=in_progress" \
  -H "Authorization: Bearer $DASH_API_KEY" \
  -H "Project-ID: pr_northpit"
What tickets are still open?
data_query {
  "collection": "repair_tickets",
  "where": {
    "status": "in_progress"
  }
}

Returns a paginated list of repair-ticket objects, newest first.

{
  "object": "list",
  "data": [
    {
      "object": "repair-ticket",
      "id": "obj_123",
      "title": "Hydraulic leak at the boom cylinder",
      "description": "Hydraulic leak at the boom cylinder — flagged on pre-trip",
      "location": "North Pit",
      "diagnosis": "Worn cylinder seal; replacement ordered",
      "hours_worked": 1,
      "created_at": "2026-07-25T12:00:00.000Z",
      "updated_at": "2026-07-25T12:00:00.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Parameters

ParameterTypeKindDescription
statusstringfilterHow far the ticket has got — open, assigned, in_progress, or closed.
prioritystringfilterHow urgently this work needs doing.
device_idstringfilterTelemetry device that flagged the fault, when a device raised the ticket.
equipmentstringfilterUnit id of the machine the work is on (e.g. SS-01) — never a display name.
assigned_mechanicstringfilterId of the mechanic the ticket is assigned to. Required once the ticket is assigned.
qstringsearchFree-text search across title.
sortstringsortOne of status, priority; prefix with - to reverse.
limitnumberpageRows to return, 1–100. Defaults to 20.
cursorstringpagenext_cursor from the previous page.

Retrieve a repair-ticket

GET /api/v1/repair-tickets/a60h-12

curl "https://trydozer.com/api/v1/repair-tickets/a60h-12" \
  -H "Authorization: Bearer $DASH_API_KEY" \
  -H "Project-ID: pr_northpit"
Open the repair-ticket {id}
data_get {
  "collection": "repair_tickets",
  "object_id": "a60h-12"
}

Returns the repair-ticket object.

{
  "object": "repair-ticket",
  "id": "obj_123",
  "title": "Hydraulic leak at the boom cylinder",
  "description": "Hydraulic leak at the boom cylinder — flagged on pre-trip",
  "location": "North Pit",
  "diagnosis": "Worn cylinder seal; replacement ordered",
  "hours_worked": 1,
  "created_at": "2026-07-25T12:00:00.000Z",
  "updated_at": "2026-07-25T12:00:00.000Z"
}

Parameters

ParameterTypeKindDescription
idstringpathThe repair-ticket's id or slug.

Create a repair-ticket

POST /api/v1/repair-tickets

curl -X POST "https://trydozer.com/api/v1/repair-tickets" \
  -H "Authorization: Bearer $DASH_API_KEY" \
  -H "Project-ID: pr_northpit" \
  -H "Content-Type: application/json" \
  -d '{"equipment":"EXC-347","description":"Hydraulic leak at the boom cylinder — flagged on pre-trip","severity":2,"status":"open","source":"pre_trip","location":"North Pit"}'
Open a ticket on EXC-347 — hydraulic leak at the boom cylinder
data_set {
  "collection": "repair_tickets",
  "object_id": "a60h-12",
  "data": {
    "equipment": "EXC-347",
    "description": "Hydraulic leak at the boom cylinder — flagged on pre-trip",
    "severity": 2,
    "status": "open",
    "source": "pre_trip",
    "location": "North Pit"
  }
}

Returns the repair-ticket object.

{
  "object": "repair-ticket",
  "id": "obj_123",
  "title": "Hydraulic leak at the boom cylinder",
  "description": "Hydraulic leak at the boom cylinder — flagged on pre-trip",
  "location": "North Pit",
  "diagnosis": "Worn cylinder seal; replacement ordered",
  "hours_worked": 1,
  "created_at": "2026-07-25T12:00:00.000Z",
  "updated_at": "2026-07-25T12:00:00.000Z"
}

Parameters

FieldTypeRequiredDescription
titlestringnoHeadline of the ticket — what needs doing.
statusstringnoHow far the ticket has got — open, assigned, in_progress, or closed.
prioritystringnoHow urgently this work needs doing.
equipmentstringnoUnit id of the machine the work is on (e.g. SS-01) — never a display name.
descriptionstringnoWhat is wrong, in the reporter's words. Custom-action tickets may carry title instead.
locationstringnoPit or site the machine is at. Recommended on create.
severitynumbernoHow bad it is, 15 where 1 = critical. Defaults to 4 when unset.
sourcestringnoWhat raised the ticket — pre_trip, code_lookup, breakdown, or manual.
diagnosisstringnoWhat the mechanic found once they looked at it.
hours_workednumbernoRepair duration in hours. Recorded when the ticket is closed.
reported_atnumbernoWhen the fault was reported, as unix milliseconds.
closed_atstringnoWhen the ticket was closed (ISO 8601).
opened_atstringnoWhen the ticket was opened (ISO 8601).

Update a repair-ticket

PATCH /api/v1/repair-tickets/a60h-12

curl -X PATCH "https://trydozer.com/api/v1/repair-tickets/a60h-12" \
  -H "Authorization: Bearer $DASH_API_KEY" \
  -H "Project-ID: pr_northpit" \
  -H "Content-Type: application/json" \
  -d '{"title":"title","status":"status","priority":"priority"}'
Assign the EXC-347 hydraulic ticket to Maria
data_set {
  "collection": "repair_tickets",
  "object_id": "a60h-12",
  "data": {
    "title": "title",
    "status": "status",
    "priority": "priority"
  }
}

Returns the repair-ticket object.

{
  "object": "repair-ticket",
  "id": "obj_123",
  "title": "Hydraulic leak at the boom cylinder",
  "description": "Hydraulic leak at the boom cylinder — flagged on pre-trip",
  "location": "North Pit",
  "diagnosis": "Worn cylinder seal; replacement ordered",
  "hours_worked": 1,
  "created_at": "2026-07-25T12:00:00.000Z",
  "updated_at": "2026-07-25T12:00:00.000Z"
}

Parameters

FieldTypeRequiredDescription
titlestringnoHeadline of the ticket — what needs doing.
statusstringnoHow far the ticket has got — open, assigned, in_progress, or closed.
prioritystringnoHow urgently this work needs doing.
equipmentstringnoUnit id of the machine the work is on (e.g. SS-01) — never a display name.
descriptionstringnoWhat is wrong, in the reporter's words. Custom-action tickets may carry title instead.
locationstringnoPit or site the machine is at. Recommended on create.
severitynumbernoHow bad it is, 15 where 1 = critical. Defaults to 4 when unset.
sourcestringnoWhat raised the ticket — pre_trip, code_lookup, breakdown, or manual.
diagnosisstringnoWhat the mechanic found once they looked at it.
hours_workednumbernoRepair duration in hours. Recorded when the ticket is closed.
reported_atnumbernoWhen the fault was reported, as unix milliseconds.
closed_atstringnoWhen the ticket was closed (ISO 8601).
opened_atstringnoWhen the ticket was opened (ISO 8601).

Append an event to a repair-ticket

POST /api/v1/repair-tickets/{id}/events

curl -X POST "https://trydozer.com/api/v1/repair-tickets/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 repair-ticket {id}
data_event {
  "collection": "repair_tickets",
  "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, …

What comes back (read-only)

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

FieldTypeDescription
objectstringAlways repair-ticket.
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.
device_idstringTelemetry device that flagged the fault, when a device raised the ticket.
assigned_mechanicstringId of the mechanic the ticket is assigned to. Required once the ticket is assigned.
typestringTicket sub-classification (e.g. maintenance_suggested from predictive maintenance).
source_code_spnnumberJ1939 SPN of the fault code that raised the ticket — code_lookup tickets only.
source_code_fminumberJ1939 FMI of the fault code that raised the ticket — code_lookup tickets only.
source_code_atnumberWhen the fault code fired, as unix milliseconds — code_lookup tickets only.
source_pre_trip_event_idstringEvent id of the pre-trip inspection finding that opened this ticket, so the UI can link back to it.
target_collectionstringCollection of the source record, when a custom action opened this ticket.
target_object_idstringObjectId of the source record, when a custom action opened this ticket.
reported_bystringUser id who triggered the action that opened this ticket.
reported_by_namestringDisplay name of the user who triggered the action.
source_action_idstringId of the custom_actions row that opened this ticket.
source_artifact_idstringArtifact the action attached when opening the ticket.
source_artifact_filenamestringFilename of the attached artifact.

Errors

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