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
| Parameter | Type | Kind | Description |
|---|---|---|---|
status | string | filter | How far the ticket has got — open, assigned, in_progress, or closed. |
priority | string | filter | How urgently this work needs doing. |
device_id | string | filter | Telemetry device that flagged the fault, when a device raised the ticket. |
equipment | string | filter | Unit id of the machine the work is on (e.g. SS-01) — never a display name. |
assigned_mechanic | string | filter | Id of the mechanic the ticket is assigned to. Required once the ticket is assigned. |
q | string | search | Free-text search across title. |
sort | string | sort | One of status, priority; prefix with - to reverse. |
limit | number | page | Rows to return, 1–100. Defaults to 20. |
cursor | string | page | next_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
| Parameter | Type | Kind | Description |
|---|---|---|---|
id | string | path | The 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 cylinderdata_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
| Field | Type | Required | Description |
|---|---|---|---|
title | string | no | Headline of the ticket — what needs doing. |
status | string | no | How far the ticket has got — open, assigned, in_progress, or closed. |
priority | string | no | How urgently this work needs doing. |
equipment | string | no | Unit id of the machine the work is on (e.g. SS-01) — never a display name. |
description | string | no | What is wrong, in the reporter's words. Custom-action tickets may carry title instead. |
location | string | no | Pit or site the machine is at. Recommended on create. |
severity | number | no | How bad it is, 1–5 where 1 = critical. Defaults to 4 when unset. |
source | string | no | What raised the ticket — pre_trip, code_lookup, breakdown, or manual. |
diagnosis | string | no | What the mechanic found once they looked at it. |
hours_worked | number | no | Repair duration in hours. Recorded when the ticket is closed. |
reported_at | number | no | When the fault was reported, as unix milliseconds. |
closed_at | string | no | When the ticket was closed (ISO 8601). |
opened_at | string | no | When 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 Mariadata_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
| Field | Type | Required | Description |
|---|---|---|---|
title | string | no | Headline of the ticket — what needs doing. |
status | string | no | How far the ticket has got — open, assigned, in_progress, or closed. |
priority | string | no | How urgently this work needs doing. |
equipment | string | no | Unit id of the machine the work is on (e.g. SS-01) — never a display name. |
description | string | no | What is wrong, in the reporter's words. Custom-action tickets may carry title instead. |
location | string | no | Pit or site the machine is at. Recommended on create. |
severity | number | no | How bad it is, 1–5 where 1 = critical. Defaults to 4 when unset. |
source | string | no | What raised the ticket — pre_trip, code_lookup, breakdown, or manual. |
diagnosis | string | no | What the mechanic found once they looked at it. |
hours_worked | number | no | Repair duration in hours. Recorded when the ticket is closed. |
reported_at | number | no | When the fault was reported, as unix milliseconds. |
closed_at | string | no | When the ticket was closed (ISO 8601). |
opened_at | string | no | When 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
| Field | Type | Required | Description |
|---|---|---|---|
event | string | yes | The human-readable timeline entry. |
context | object | no | Provenance — 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.
| Field | Type | Description |
|---|---|---|
object | string | Always repair-ticket. |
id | string | Stable object id. Also accepted in place of slug on any path. |
slug | string | URL-safe name, unique within the collection. |
created_at | string | ISO-8601 timestamp of the first write. |
updated_at | string | ISO-8601 timestamp of the most recent write. The cursor sorts on this. |
device_id | string | Telemetry device that flagged the fault, when a device raised the ticket. |
assigned_mechanic | string | Id of the mechanic the ticket is assigned to. Required once the ticket is assigned. |
type | string | Ticket sub-classification (e.g. maintenance_suggested from predictive maintenance). |
source_code_spn | number | J1939 SPN of the fault code that raised the ticket — code_lookup tickets only. |
source_code_fmi | number | J1939 FMI of the fault code that raised the ticket — code_lookup tickets only. |
source_code_at | number | When the fault code fired, as unix milliseconds — code_lookup tickets only. |
source_pre_trip_event_id | string | Event id of the pre-trip inspection finding that opened this ticket, so the UI can link back to it. |
target_collection | string | Collection of the source record, when a custom action opened this ticket. |
target_object_id | string | ObjectId of the source record, when a custom action opened this ticket. |
reported_by | string | User id who triggered the action that opened this ticket. |
reported_by_name | string | Display name of the user who triggered the action. |
source_action_id | string | Id of the custom_actions row that opened this ticket. |
source_artifact_id | string | Artifact the action attached when opening the ticket. |
source_artifact_filename | string | Filename of the attached artifact. |
Errors
Failures use { error: { type, code, message, param } }. The full code table is generated at Error Codes.