Endpoints
All work order endpoints require authentication. See Authentication for details on API keys and JWT tokens.
Path parameters
| Parameter | Type | Description |
|---|---|---|
siteId | string | Site slug (e.g., ucl-east-campus) |
id | uuid | Work order ID (for detail/update/delete) |
Query parameters (list endpoint)
| Parameter | Type | Description |
|---|---|---|
status | string | Filter by status: open, in_progress, on_hold, completed, cancelled |
priority | string | Filter by priority: none, low, medium, high |
type | string | Filter by type: reactive, preventive, inspection, emergency |
equipment_uri | string | Filter by equipment Fuseki URI |
assigned_to | uuid | Filter by assigned user ID |
Request body (create / update)
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Short description of the task |
description | string | No | Detailed instructions or context |
status | string | No | Default: open. One of: open, in_progress, on_hold, completed, cancelled |
priority | string | No | Default: none. One of: none, low, medium, high |
type | string | No | Default: reactive. One of: reactive, preventive, inspection, emergency |
category | string | No | Free-text category (e.g., HVAC, Electrical, Plumbing) |
equipment_uri | string | No | Fuseki URI of the equipment this task relates to |
location_uri | string | No | Fuseki URI of the location (auto-filled from equipment if available) |
assigned_to | uuid | No | User ID of the assignee |
requester_name | string | No | Name of the person who requested the work |
requester_email | string | No | Email of the requester |
due_date | string | No | ISO-8601 deadline |
insight | uuid | No | Link to an insight. Auto-transitions the insight from open to in_progress |
parent | uuid | No | Parent work order ID (for sub-tasks) |
Response
| Field | Type | Description |
|---|---|---|
id | uuid | Work order ID |
site | string | Site ID |
title | string | Task title |
description | string | Detailed description |
status | string | Current status |
priority | string | Priority level |
type | string | Work order type |
category | string | Category label |
equipment_uri | string | Equipment Fuseki URI |
location_uri | string | Location Fuseki URI |
created_by | uuid | User who created this work order |
created_by_detail | object | Creator’s name and email |
assigned_to | uuid | null | Assigned user ID |
assigned_to_detail | object | null | Assignee’s name and email |
requester_name | string | Requester name |
requester_email | string | Requester email |
insight | uuid | null | Linked insight ID |
parent | uuid | null | Parent work order ID |
due_date | string | null | Deadline |
started_at | string | null | When work began |
completed_at | string | null | When work finished |
created_at | string | Creation timestamp |
updated_at | string | Last update timestamp |
comment_count | integer | Number of comments |
Insight linking
When you create a work order with aninsight field, Tacit automatically transitions that insight from open to in_progress (if it is still open). This connects the detection-to-action pipeline: an FDD system detects a fault, an insight is created, and a work order is assigned to resolve it.
Comments and attachments
Work orders support threaded comments and file attachments:| Endpoint | Method | Description |
|---|---|---|
.../work-orders/{id}/comments/ | GET | List comments |
.../work-orders/{id}/comments/ | POST | Add comment (body field) |
.../work-orders/{id}/attachments/ | GET | List attachments |
.../work-orders/{id}/attachments/ | POST | Upload file (file + name fields, multipart) |
.../work-orders/{id}/attachments/{attachmentId}/ | DELETE | Remove attachment |
.../work-orders/{id}/attachments/{attachmentId}/download/ | GET | Download file |
Status codes
| Code | Description |
|---|---|
200 | Success (list, retrieve, update) |
201 | Work order created |
204 | Work order or attachment deleted |
400 | Validation error |
401 | Not authenticated |
403 | No access to this site |
404 | Work order not found |
429 | Rate limit exceeded |
Examples
Create a work order
Response (201)
Create from an insight
Link a work order to an insight to connect detection to action. The insight automatically transitions toin_progress:
Request
insight field populated.
List with filters
Response (200)
Update status to completed
Response (200)
