Skip to main content

Checklist Templates

Manage reusable checklist templates for workshop inspections, maintenance procedures, and quality checks. Templates define a list of items that staff can complete when performing workshop jobs.

Templates can be assigned to specific products, product categories, or applied to all products automatically via the apply_to_all_products flag.

Endpointsโ€‹

MethodEndpointDescription
GET/v1/workshop/templatesList templates
GET/v1/workshop/templates/{id}Get template
POST/v1/workshop/templatesCreate template
PATCH/v1/workshop/templates/{id}Update template
DELETE/v1/workshop/templates/{id}Archive template
POST/v1/workshop/templates/{id}/duplicateDuplicate template

List Templatesโ€‹

Retrieve all checklist templates available to your account, including prebuilt templates and your custom templates.

Endpointโ€‹

GET /v1/workshop/templates

Authenticationโ€‹

Requires an API key with the products:read scope.

Query Parametersโ€‹

ParameterTypeRequiredDescription
searchstringNoSearch templates by name or equipment category
categorystringNoFilter by equipment category (e.g. bikes, skis)
typestringNoFilter by template type: prebuilt or custom

Responseโ€‹

{
"data": [
{
"id": 1,
"name": "Bike Safety Inspection",
"description": "Standard safety check for all rental bikes.",
"equipment_category": "bikes",
"is_prebuilt": true,
"apply_to_all_products": false,
"item_count": 8,
"items": [
{
"id": 1,
"label": "Check tyre pressure",
"description": null,
"type": "checkbox",
"is_critical": false,
"sort_order": 0
},
{
"id": 2,
"label": "Brake function test",
"description": "Test front and rear brakes",
"type": "pass_fail",
"is_critical": true,
"sort_order": 1
}
],
"archived": false,
"created_at": "2026-01-15T10:00:00+00:00",
"updated_at": "2026-01-15T10:00:00+00:00"
},
{
"id": 5,
"name": "Custom Ski Check",
"description": "Our custom ski inspection checklist.",
"equipment_category": "skis",
"is_prebuilt": false,
"apply_to_all_products": false,
"item_count": 5,
"items": [],
"archived": false,
"created_at": "2026-01-20T14:00:00+00:00",
"updated_at": "2026-01-20T14:00:00+00:00"
}
],
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-01T09:00:00+00:00"
}
}

Example Requestโ€‹

curl -X GET "https://app.equipdash.com/api/v1/workshop/templates?category=bikes" \
-H "Authorization: Bearer YOUR_API_KEY"

Get Templateโ€‹

Retrieve a single checklist template with all its items.

Endpointโ€‹

GET /v1/workshop/templates/{id}

Authenticationโ€‹

Requires an API key with the products:read scope.

Parametersโ€‹

ParameterTypeLocationDescription
idintegerpathThe template ID

Responseโ€‹

{
"data": {
"id": 1,
"name": "Bike Safety Inspection",
"description": "Standard safety check for all rental bikes.",
"equipment_category": "bikes",
"is_prebuilt": true,
"apply_to_all_products": false,
"item_count": 5,
"items": [
{
"id": 1,
"label": "Check tyre pressure",
"description": null,
"type": "checkbox",
"is_critical": false,
"sort_order": 0
},
{
"id": 2,
"label": "Brake function test",
"description": "Test front and rear brakes for proper stopping",
"type": "pass_fail",
"is_critical": true,
"sort_order": 1
},
{
"id": 3,
"label": "Test gear shifting",
"description": null,
"type": "checkbox",
"is_critical": false,
"sort_order": 2
},
{
"id": 4,
"label": "Chain wear measurement",
"description": "Measure chain stretch in mm",
"type": "numeric",
"is_critical": false,
"sort_order": 3
},
{
"id": 5,
"label": "Additional notes",
"description": null,
"type": "text",
"is_critical": false,
"sort_order": 4
}
],
"archived": false,
"created_at": "2026-01-15T10:00:00+00:00",
"updated_at": "2026-01-15T10:00:00+00:00"
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-01T09:00:00+00:00"
}
}

Example Requestโ€‹

curl -X GET "https://app.equipdash.com/api/v1/workshop/templates/1" \
-H "Authorization: Bearer YOUR_API_KEY"

Create Templateโ€‹

Create a new checklist template with items.

Endpointโ€‹

POST /v1/workshop/templates

Authenticationโ€‹

Requires an API key with the products:write scope.

Request Bodyโ€‹

FieldTypeRequiredDescription
namestringYesTemplate name (max 255 characters)
descriptionstringNoTemplate description (max 1000 characters)
equipment_categorystringNoEquipment category (max 100 characters)
itemsarrayYesArray of checklist items (at least 1)
items[].labelstringYesItem label text (max 255 characters)
items[].descriptionstringNoItem description (max 1000 characters)
items[].typestringYesItem type: checkbox, pass_fail, text, numeric, photo
items[].is_criticalbooleanNoWhether this is a critical item (default: false)

Response (201 Created)โ€‹

{
"data": {
"id": 3,
"name": "Kayak Pre-Rental Check",
"description": "Inspection checklist before renting out kayaks.",
"equipment_category": "kayaks",
"is_prebuilt": false,
"apply_to_all_products": false,
"item_count": 3,
"items": [
{
"id": 10,
"label": "Hull integrity - no cracks or holes",
"description": null,
"type": "pass_fail",
"is_critical": true,
"sort_order": 0
},
{
"id": 11,
"label": "Seat and footrests secure",
"description": null,
"type": "checkbox",
"is_critical": false,
"sort_order": 1
},
{
"id": 12,
"label": "Paddle condition notes",
"description": null,
"type": "text",
"is_critical": false,
"sort_order": 2
}
],
"archived": false,
"created_at": "2026-02-01T09:00:00+00:00",
"updated_at": "2026-02-01T09:00:00+00:00"
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-01T09:00:00+00:00"
}
}

Example Requestโ€‹

curl -X POST "https://app.equipdash.com/api/v1/workshop/templates" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Kayak Pre-Rental Check",
"description": "Inspection checklist before renting out kayaks.",
"equipment_category": "kayaks",
"items": [
{
"label": "Hull integrity - no cracks or holes",
"type": "pass_fail",
"is_critical": true
},
{
"label": "Seat and footrests secure",
"type": "checkbox"
},
{
"label": "Paddle condition notes",
"type": "text"
}
]
}'

Update Templateโ€‹

Update an existing custom checklist template. Prebuilt templates cannot be edited.

Endpointโ€‹

PATCH /v1/workshop/templates/{id}

Authenticationโ€‹

Requires an API key with the products:write scope.

Parametersโ€‹

ParameterTypeLocationDescription
idintegerpathThe template ID

Request Bodyโ€‹

FieldTypeRequiredDescription
namestringNoTemplate name (max 255 characters)
descriptionstringNoTemplate description (max 1000 characters)
equipment_categorystringNoEquipment category (max 100 characters)
itemsarrayNoFull replacement array of checklist items
items[].idintegerNoExisting item ID (omit for new items)
items[].labelstringYesItem label text (max 255 characters)
items[].descriptionstringNoItem description (max 1000 characters)
items[].typestringYescheckbox, pass_fail, text, numeric, photo
items[].is_criticalbooleanNoWhether this is a critical item
info

When items is provided, it replaces the entire items list. Include all items you want to keep (with their id). Omitted items will be removed.

Responseโ€‹

{
"data": {
"id": 3,
"name": "Kayak Pre-Rental Check (Updated)",
"description": "Updated inspection checklist for kayaks.",
"equipment_category": "kayaks",
"is_prebuilt": false,
"apply_to_all_products": false,
"item_count": 3,
"items": [
{
"id": 10,
"label": "Hull integrity - no cracks or holes",
"description": null,
"type": "pass_fail",
"is_critical": true,
"sort_order": 0
},
{
"id": 11,
"label": "Seat and footrests secure",
"description": null,
"type": "checkbox",
"is_critical": false,
"sort_order": 1
},
{
"id": 13,
"label": "Drain plug installed",
"description": null,
"type": "checkbox",
"is_critical": false,
"sort_order": 2
}
],
"archived": false,
"created_at": "2026-02-01T09:00:00+00:00",
"updated_at": "2026-02-01T10:30:00+00:00"
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-01T10:30:00+00:00"
}
}

Example Requestโ€‹

curl -X PATCH "https://app.equipdash.com/api/v1/workshop/templates/3" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Kayak Pre-Rental Check (Updated)",
"items": [
{
"id": 10,
"label": "Hull integrity - no cracks or holes",
"type": "pass_fail",
"is_critical": true
},
{
"id": 11,
"label": "Seat and footrests secure",
"type": "checkbox"
},
{
"label": "Drain plug installed",
"type": "checkbox"
}
]
}'

Archive Templateโ€‹

Archive a checklist template. Archived templates are no longer available for use but existing checklists using the template are not affected. Only custom templates can be archived (prebuilt templates cannot).

Endpointโ€‹

DELETE /v1/workshop/templates/{id}

Authenticationโ€‹

Requires an API key with the products:write scope.

Parametersโ€‹

ParameterTypeLocationDescription
idintegerpathThe template ID

Responseโ€‹

{
"data": {
"message": "Template archived successfully."
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-01T14:00:00+00:00"
}
}

Example Requestโ€‹

curl -X DELETE "https://app.equipdash.com/api/v1/workshop/templates/3" \
-H "Authorization: Bearer YOUR_API_KEY"

Duplicate Templateโ€‹

Create a copy of an existing template, including all its items. The new template will be a custom template owned by your account, even if duplicating a prebuilt template.

Endpointโ€‹

POST /v1/workshop/templates/{id}/duplicate

Authenticationโ€‹

Requires an API key with the products:write scope.

Parametersโ€‹

ParameterTypeLocationDescription
idintegerpathThe template ID to duplicate

Response (201 Created)โ€‹

Returns the newly created template. The name will be suffixed with "(Copy)".

{
"data": {
"id": 4,
"name": "Bike Safety Inspection (Copy)",
"description": "Standard safety check for all rental bikes.",
"equipment_category": "bikes",
"is_prebuilt": false,
"apply_to_all_products": false,
"item_count": 5,
"items": [
{
"id": 14,
"label": "Check tyre pressure",
"description": null,
"type": "checkbox",
"is_critical": false,
"sort_order": 0
},
{
"id": 15,
"label": "Brake function test",
"description": "Test front and rear brakes",
"type": "pass_fail",
"is_critical": true,
"sort_order": 1
}
],
"archived": false,
"created_at": "2026-02-01T11:00:00+00:00",
"updated_at": "2026-02-01T11:00:00+00:00"
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-01T11:00:00+00:00"
}
}

Example Requestโ€‹

curl -X POST "https://app.equipdash.com/api/v1/workshop/templates/1/duplicate" \
-H "Authorization: Bearer YOUR_API_KEY"

Template Item Typesโ€‹

TypeDescriptionValue Format
checkboxSimple check/uncheck"1" when completed
pass_failPass or fail inspection"pass" or "fail"
textFree-form text entryAny string
numericNumeric measurementNumeric string
photoPhoto upload with optional captionPhoto URL + optional caption

Errorsโ€‹

StatusCodeDescription
401authentication_requiredNo API key provided
403insufficient_scopeAPI key lacks required scope
404resource_not_foundTemplate not found
422validation_errorInvalid request data
422create_errorTemplate creation failed
422update_errorPrebuilt templates cannot be edited
422delete_errorPrebuilt templates cannot be deleted

Common Validation Errorsโ€‹

  • Name is required: Template name must be provided
  • Items are required: At least one checklist item must be included
  • Item label is required: Each item must have a label
  • Invalid item type: Item type must be checkbox, pass_fail, text, numeric, or photo