Skip to main content

API overview

Canary v1 is an HTTPS JSON API authenticated by scoped organization keys.
Download the OpenAPI 3.1 document for code generation, contract testing, or local reference. Endpoint pages in this documentation are generated from docs/openapi.yaml.

Request conventions

Query parameter and JSON field names are case-sensitive. Use the casing shown on each operation.

Response conventions

The public API contains two stable wire styles. Choose the response parser from the endpoint family.

Canary-native

Assets, locations, parts, meters, meter readings, native work orders, and identifiers use snake_case fields inside a standard envelope.
Native lists place an array in data and pagination state in meta.pagination. Some native resources retain specific camelCase fields, such as location parentId and custom-field extraFields. The work-order parts subresource returns its section object directly, with aggregateVersion and server-computed capabilities, rather than a data envelope. Always use the operation’s schema when generating clients.

MaintainX-compatible

Work requests, request portals, custom-field definitions, and compatibility POST /workorders preserve their external camelCase shapes.
Custom-field lists return a JSON array. Compatibility writes can return { "id": "..." }, a resource wrapper, or 204 No Content. Follow the generated response schema for each operation. Compatibility applies to the documented operations and fields. Canary v1 does not expose every feature available in the Canary application or every MaintainX endpoint. Vendors, purchase orders, maintenance plans, procedures, teams, users, conversations, and webhook subscriptions currently have no public v1 route family. Parts inventory adjustments and asset hierarchy mutations also remain outside this API.

Errors

Both wire styles use application/problem+json errors with status, detail, request_id, and a machine-readable code. See Error handling.

Response headers

Status codes

Endpoint reference

Use the generated endpoint groups in the sidebar for the complete current operation inventory. Each operation describes its required scope, parameters, body, success shape, and known error responses.

Resource model

Understand relationships and lifecycle behavior.

Integration patterns

Build pagination, retries, request approval, and file handling into production clients.