Company equipment
Company equipment in the BlueSuite REST API
Track the business's own vehicles, trailers, tools, and machines. Equipment installed at customer properties belongs in Installed equipment.
If a name is omitted, BlueSuite derives it from the year/make/model, serial number, or category. A replacement date maintains an open replacement task; completed task history is preserved.
Tasks support an assignee, due date, reminders, and recurrence. Reminders default to off. Recurring tasks require a due date; finite duration requires a count, and custom weekly/monthly patterns need selected days. Use update_scope when editing repeating tasks and the status endpoint to complete or reopen work.
Notes form the equipment service log. Use activity_date for when the work happened, rather than when you entered it. Date-time values must include a timezone.
GET /api/v1/equipment
GET /api/v1/equipmentRequired scopes: equipment:read.
Query parameters
| Field | Type / accepted values | Required | Details |
|---|---|---|---|
page | integer | No | Page number, starting at 1. Default: 1. |
per_page | integer | No | Records per page, from 1 to 100. Default: 25. minimum: 1. maximum: 100. |
search | string | No | Search text. maxLength: 100. |
sort_by | string | No | Sort column. See the supported columns below when listed. |
sort_direction | "asc", "desc" | No | Sort direction. Default: "desc". |
status | string | No | Filter by status. |
Response
200 with { "success": true, "data": [...], "pagination": { "page": 1, "per_page": 25, "total_pages": 1 } }.
See response conventions and errors.
POST /api/v1/equipment
POST /api/v1/equipmentRequired scopes: equipment:write.
JSON body
| Field | Type / accepted values | Required | Details |
|---|---|---|---|
name | string | No | |
category | "vehicle", "trailer", "tool", "machine", "other" | No | Default: "other". |
status | "active", "in_repair", "retired", "sold" | No | Default: "active". |
description | string or null | No | |
make | string or null | No | |
model | string or null | No | |
year | integer or null | No | |
serial_number | string or null | No | |
purchase_date | string or null | No | |
purchase_price | number or null | No | |
warranty_expiration | string or null | No | |
warranty_number | string or null | No | |
replacement_date | string or null | No | |
assignee_id | string or null | No | |
custom_fields | JSON value or null | No |
Unknown body fields are rejected. Conditional requirements are explained above.
Response
201 with { "success": true, "data": ... }. The data contains the result of the operation.
See response conventions and errors.
GET /api/v1/equipment/:id
GET /api/v1/equipment/:idRequired scopes: equipment:read.
Path parameters: id. Use positive integer record IDs from this workspace.
Response
200 with { "success": true, "data": ... }. The data contains the result of the operation.
See response conventions and errors.
PUT /api/v1/equipment/:id
PUT /api/v1/equipment/:idRequired scopes: equipment:write.
Path parameters: id. Use positive integer record IDs from this workspace.
JSON body
| Field | Type / accepted values | Required | Details |
|---|---|---|---|
name | string | No | |
category | "vehicle", "trailer", "tool", "machine", "other" | No | Default: "other". |
status | "active", "in_repair", "retired", "sold" | No | Default: "active". |
description | string or null | No | |
make | string or null | No | |
model | string or null | No | |
year | integer or null | No | |
serial_number | string or null | No | |
purchase_date | string or null | No | |
purchase_price | number or null | No | |
warranty_expiration | string or null | No | |
warranty_number | string or null | No | |
replacement_date | string or null | No | |
assignee_id | string or null | No | |
custom_fields | JSON value or null | No |
Unknown body fields are rejected. Conditional requirements are explained above.
Response
200 with { "success": true, "data": ... }. The data contains the result of the operation.
See response conventions and errors.
DELETE /api/v1/equipment/:id
DELETE /api/v1/equipment/:idRequired scopes: equipment:write.
Path parameters: id. Use positive integer record IDs from this workspace.
No request body.
Response
200 with { "success": true, "data": ... }. The data contains the result of the operation.
See response conventions and errors.
GET /api/v1/equipment/:id/notes
GET /api/v1/equipment/:id/notesRequired scopes: equipment:read.
Path parameters: id. Use positive integer record IDs from this workspace.
Query parameters
| Field | Type / accepted values | Required | Details |
|---|---|---|---|
page | integer | No | Page number, starting at 1. Default: 1. |
per_page | integer | No | Records per page, from 1 to 100. Default: 25. minimum: 1. maximum: 100. |
search | string | No | Search text. maxLength: 100. |
sort_by | string | No | Sort column. See the supported columns below when listed. |
sort_direction | "asc", "desc" | No | Sort direction. Default: "desc". |
type | string | No | Filter by type. |
Response
200 with { "success": true, "data": [...], "pagination": { "page": 1, "per_page": 25, "total_pages": 1 } }.
See response conventions and errors.
POST /api/v1/equipment/:id/notes
POST /api/v1/equipment/:id/notesRequired scopes: equipment:write.
Path parameters: id. Use positive integer record IDs from this workspace.
JSON body
| Field | Type / accepted values | Required | Details |
|---|---|---|---|
title | string | Yes | minLength: 1. |
content | string or null | No | |
type | "note", "maintenance", "repair", "inspection" | No | Default: "note". |
activity_date | string or string or null | No |
Unknown body fields are rejected. Conditional requirements are explained above.
Response
201 with { "success": true, "data": ... }. The data contains the result of the operation.
See response conventions and errors.
GET /api/v1/equipment/:id/tasks
GET /api/v1/equipment/:id/tasksRequired scopes: equipment:read.
Path parameters: id. Use positive integer record IDs from this workspace.
Query parameters
| Field | Type / accepted values | Required | Details |
|---|---|---|---|
page | integer | No | Page number, starting at 1. Default: 1. |
per_page | integer | No | Records per page, from 1 to 100. Default: 25. minimum: 1. maximum: 100. |
search | string | No | Search text. maxLength: 100. |
sort_by | string | No | Sort column. See the supported columns below when listed. |
sort_direction | "asc", "desc" | No | Sort direction. Default: "desc". |
status | string | No | Filter by status. |
Response
200 with { "success": true, "data": [...], "pagination": { "page": 1, "per_page": 25, "total_pages": 1 } }.
See response conventions and errors.
POST /api/v1/equipment/:id/tasks
POST /api/v1/equipment/:id/tasksRequired scopes: equipment:write.
Path parameters: id. Use positive integer record IDs from this workspace.
JSON body
| Field | Type / accepted values | Required | Details |
|---|---|---|---|
title | string | Yes | minLength: 1. |
description | string or null | No | |
due_date | string or string or null | No | |
assignee_id | string or null | No | |
reminders_enabled | boolean | No | Default: false. |
recurrence_type | "single", "recurring" | No | Default: "single". |
repeat_frequency | integer or null | No | |
repeat_frequency_unit | "daily", "weekly", "monthly", "yearly", "custom", "forever", "occurrences" | No | Default: "weekly". |
repeat_frequency_unit_custom | "daily", "weekly", "monthly", "yearly", "custom", "forever", "occurrences" | No | Default: "weekly". |
repeat_frequency_schedule | object or null | No | |
repeat_frequency_schedule.days | array of integer | When parent supplied | |
repeat_frequency_schedule.type | "weekDays", "monthWeekDays", "monthDays" | When parent supplied | |
repeat_duration | integer or null | No | |
repeat_duration_unit | "daily", "weekly", "monthly", "yearly", "custom", "forever", "occurrences" | No | Default: "forever". |
Unknown body fields are rejected. Conditional requirements are explained above.
Response
201 with { "success": true, "data": ... }. The data contains the result of the operation.
See response conventions and errors.
PUT /api/v1/equipment/:id/notes/:noteId
PUT /api/v1/equipment/:id/notes/:noteIdRequired scopes: equipment:write.
Path parameters: id, noteId. Use positive integer record IDs from this workspace.
JSON body
| Field | Type / accepted values | Required | Details |
|---|---|---|---|
title | string | No | minLength: 1. |
content | string or null | No | |
type | "note", "maintenance", "repair", "inspection" | No | Default: "note". |
activity_date | string or string or null | No |
Unknown body fields are rejected. Conditional requirements are explained above.
Response
200 with { "success": true, "data": ... }. The data contains the result of the operation.
See response conventions and errors.
DELETE /api/v1/equipment/:id/notes/:noteId
DELETE /api/v1/equipment/:id/notes/:noteIdRequired scopes: equipment:write.
Path parameters: id, noteId. Use positive integer record IDs from this workspace.
No request body.
Response
200 with { "success": true, "data": ... }. The data contains the result of the operation.
See response conventions and errors.
PUT /api/v1/equipment/:id/tasks/:taskId
PUT /api/v1/equipment/:id/tasks/:taskIdRequired scopes: equipment:write.
Path parameters: id, taskId. Use positive integer record IDs from this workspace.
JSON body
| Field | Type / accepted values | Required | Details |
|---|---|---|---|
title | string | No | minLength: 1. |
description | string or null | No | |
due_date | string or string or null | No | |
assignee_id | string or null | No | |
reminders_enabled | boolean | No | Default: false. |
recurrence_type | "single", "recurring" | No | Default: "single". |
repeat_frequency | integer or null | No | |
repeat_frequency_unit | "daily", "weekly", "monthly", "yearly", "custom", "forever", "occurrences" | No | Default: "weekly". |
repeat_frequency_unit_custom | "daily", "weekly", "monthly", "yearly", "custom", "forever", "occurrences" | No | Default: "weekly". |
repeat_frequency_schedule | object or null | No | |
repeat_frequency_schedule.days | array of integer | When parent supplied | |
repeat_frequency_schedule.type | "weekDays", "monthWeekDays", "monthDays" | When parent supplied | |
repeat_duration | integer or null | No | |
repeat_duration_unit | "daily", "weekly", "monthly", "yearly", "custom", "forever", "occurrences" | No | Default: "forever". |
update_scope | "single", "all", "recreate" | No |
Unknown body fields are rejected. Conditional requirements are explained above.
Response
200 with { "success": true, "data": ... }. The data contains the result of the operation.
See response conventions and errors.
DELETE /api/v1/equipment/:id/tasks/:taskId
DELETE /api/v1/equipment/:id/tasks/:taskIdRequired scopes: equipment:write.
Path parameters: id, taskId. Use positive integer record IDs from this workspace.
No request body.
Response
200 with { "success": true, "data": ... }. The data contains the result of the operation.
See response conventions and errors.
PUT /api/v1/equipment/:id/tasks/:taskId/status
PUT /api/v1/equipment/:id/tasks/:taskId/statusRequired scopes: equipment:write.
Path parameters: id, taskId. Use positive integer record IDs from this workspace.
JSON body
| Field | Type / accepted values | Required | Details |
|---|---|---|---|
status | "open", "completed", "overdue" | Yes |
Unknown body fields are rejected. Conditional requirements are explained above.
Response
200 with { "success": true, "data": ... }. The data contains the result of the operation.