Skip to main content

CMMS API Reference

This page provides a customer-facing reference structure for CMMS integration surfaces. Use it for integration planning and handoff. Exact endpoint availability, payload shape, and provider mappings depend on the deployed product scope and customer-approved integration mode.

API Surface Map

Prerequisites

RequirementWhy it matters
Deployment scopeEndpoint availability depends on enabled modules and customer integration scope
Service identityAPI calls need scoped credentials and audit records
Data contractWork-order, asset, status, priority, SLA, and attachment fields must be mapped
Ownership ruleRead, draft, handoff, and write-back modes need separate approval
Error handlingRetries, partial failures, duplicate prevention, and sync exceptions need a defined policy
Test environmentIntegration tests should run outside production before go-live

Source Data Inputs

InputUse
Work-order payloadCreate, update, search, assign, or close work-order records
Asset referenceLinks work orders to MDM asset and location identity
Provider referencePreserves downstream source system, native ID, and sync state
Attachment payloadLinks files and evidence to ECM
Status transition payloadSupports lifecycle updates and review records
Webhook eventNotifies FactVerse or provider systems about changes
Error payloadRecords rejected fields, provider response, retry state, and owner action

Common Resource Groups

Resource groupUse
Work ordersRead, create, update, assign, comment, attach, complete, close, reopen, or cancel records
Worker executionSupport field task views, progress updates, issue reports, evidence upload, and closeout
Operations read modelRead normalized work-order, asset, provider, status, audit, and sync state
Attachments and evidenceLink ECM documents, photos, service reports, and closeout packages
Provider connectorsConfigure and monitor imports, exports, webhooks, and synchronization jobs
Status mappingMaintain provider status, priority, and lifecycle mappings
Audit and sync logsReview imports, handoffs, write-back attempts, retries, and failures

Current API Anchors

Use runtime OpenAPI output and the customer deployment scope as the final contract. The current platform surface uses these resource groups as anchors for implementation planning:

Adapter Type Reference

Adapter typeUse
webhookPush work-order events to a downstream endpoint and receive status callbacks through an inbound webhook path
restConfigure a vendor-neutral REST profile with customer-approved paths, auth, field mapping, and result parsing
maximoConnect IBM Maximo work orders through the approved Maximo REST profile
sap-pmConnect SAP Plant Maintenance maintenance orders through the approved SAP OData profile
Forge or customer overlay profileConnect Honeywell Forge or another customer-specific provider through approved overlay wiring and payload contracts

BACnet, Modbus, and SNMP are field protocol adapters for equipment context. They should not be configured as downstream CMMS work-order adapters.

CMMS Configuration and Monitoring

APIUse
GET /api/v1/cmms/adaptersList CMMS adapter configurations for the current tenant
POST /api/v1/cmms/adaptersCreate an adapter configuration
POST /api/v1/cmms/adapters/{id}/testRun a connector health check
DELETE /api/v1/cmms/adapters/{id}Remove an adapter configuration
GET /api/v1/cmms/asset-mappingsReview provider-to-FactVerse asset mappings
POST /api/v1/cmms/asset-mappingsCreate a single asset mapping
POST /api/v1/cmms/asset-mappings/batchCreate asset mappings in batch
DELETE /api/v1/cmms/asset-mappings/{id}Remove an asset mapping
GET /api/v1/cmms/sync/logsReview synchronization results for an adapter
POST /api/v1/cmms/webhook/outbound/testTest outbound webhook reachability
GET /api/v1/cmms/dashboard-summaryRead the live CMMS operations summary

Work Orders

APIUse
GET /api/v1/workordersList work orders by the available filters
GET /api/v1/workorders/{id}Read work-order detail
POST /api/v1/workordersCreate a native work order
PUT /api/v1/workorders/{id}/statusUpdate lifecycle status
PUT /api/v1/workorders/{id}/startMark execution as started
PUT /api/v1/workorders/{id}/completeMark execution as completed
PUT /api/v1/workorders/{id}/assignAssign to a user
PUT /api/v1/workorders/{id}/assign-resourceAssign to a technician or crew resource
POST /api/v1/workorders/{id}/reassignReassign while preserving reassignment history
POST /api/v1/workorders/{id}/feedbackRecord closeout feedback used by maintenance analytics
GET /api/v1/workorders/{id}/attachmentsList work-order evidence files
POST /api/v1/workorders/{id}/attachmentsUpload work-order evidence
GET /api/v1/workorders/{id}/closed-loopReview the linked alert, diagnosis, work order, and feedback trail

Work Requests

APIUse
POST /api/v1/platform/worker-issuesCreate a field, mobile, natural-language, or provider-originated work request
GET /api/v1/platform/worker-issuesList work requests, optionally filtered by channel and status
POST /api/v1/platform/worker-issues/{id}/triageMark a work request as triaged
POST /api/v1/platform/worker-issues/{id}/rejectReject a work request with an optional reason
POST /api/v1/platform/worker-issues/{id}/convertConvert a work request into a work order

Technicians and Crews

APIUse
GET /api/v1/techniciansList technician records
POST /api/v1/techniciansCreate a technician record
PUT /api/v1/technicians/{id}/crew/{crewId}Add a technician to a crew
PUT /api/v1/technicians/{id}/deactivateDeactivate a technician
GET /api/v1/crewsList crew records
POST /api/v1/crewsCreate a crew
DELETE /api/v1/crews/{id}Remove a crew where allowed by the deployment policy

Preventive Maintenance

APIUse
GET /api/v1/pm/dashboardReview preventive-maintenance indicators
GET /api/v1/pm/templatesList preventive-maintenance templates
POST /api/v1/pm/templatesCreate a preventive-maintenance template
GET /api/v1/pm/schedulesList preventive-maintenance schedules
GET /api/v1/pm/calendarReview scheduled maintenance on a calendar
POST /api/v1/pm/completeComplete a scheduled maintenance item
POST /api/v1/pm/skipSkip a scheduled item with a reason

Spare Parts and Inventory

APIUse
GET /api/v1/spare-partsList spare parts
GET /api/v1/spare-parts/equipment/{equipmentId}List spare parts associated with equipment
GET /api/v1/spare-parts/low-stockReview low-stock items
GET /api/v1/spare-parts/statsReview spare-parts summary statistics
POST /api/v1/spare-parts/{id}/consumeConsume parts during maintenance
POST /api/v1/spare-parts/{id}/restockRestock a spare part
GET /api/v1/inventory/dashboardReview inventory indicators
POST /api/v1/inventory/issueIssue stock
POST /api/v1/inventory/receiveReceive stock
GET /api/v1/inventory/transactionsReview inventory transaction history
GET /api/v1/inventory/valuationReview inventory valuation where enabled

CMMS Agent and MCP Tool Anchors

The CMMS Agent tool surface is scoped by the tenant Agent configuration. tools/list should show only the CMMS tools bound to the current Agent. tools/call should apply tenant scope, permission checks, risk limits, idempotency, and audit before any tool is executed.

ToolPermissionContract
cmms_query_backlogcmms.readRead backlog totals, priority distribution, and SLA breach counts.
cmms_query_equipmentcmms.readRead equipment or asset records, optionally filtered by site.
cmms_query_work_orderscmms.readRead work orders by status, equipment, and page window.
cmms_suggest_techniciancmms.readReturn available technician candidates; does not assign work.
cmms_create_work_requestworkorders.createCreate an intake request or field issue report with an audit record.
cmms_create_work_orderworkorders.createCreate a work order after the required review or confirmation step.
cmms_assign_work_orderworkorders.assignAssign a work order to a technician or crew after confirmation.
cmms_close_work_orderworkorders.completeComplete a work order after confirmation; completion is a terminal operational action.

Read tools execute after scope and permission checks. Work-request intake is an audited low-risk write. Work-order creation, assignment, and completion should return a confirmation-required state until an accountable reviewer approves the action. Callers should pass a stable idempotency key when retrying the same logical action.

Predictive-Maintenance Linkage

APIUse
GET /api/v1/pdm/cmmsRead the Predictive Maintenance CMMS connector configuration
POST /api/v1/pdm/cmmsConfigure or update the connector used by Predictive Maintenance workflows
POST /api/v1/pdm/cmms/testTest connector reachability
POST /api/v1/pdm/cmms/webhookReceive CMMS work-order updates for the predictive-maintenance loop
GET /api/v1/pdm/advisoryList predictive-maintenance advisories
GET /api/v1/pdm/advisory/by-workorder/{workOrderId}Find the advisory linked to a work order
POST /api/v1/pdm/advisory/{id}/work-orderLink an advisory to a reviewed work order
POST /api/v1/pdm/advisory/{id}/outcomeRecord the field outcome after work-order closeout
GET /api/v1/pdm/advisory/outcome-statsReview outcome distribution
GET /api/v1/pdm/advisory/precisionReview daily precision trend for the advisory loop

Example Contract Fields

FieldPurpose
common_work_order_idFactVerse work-order reference
provider_idSource CMMS, EAM, contractor system, or integration profile
source_work_order_idNative provider work-order ID
asset_refMDM asset, equipment, location, or system reference
source_statusProvider status value
common_statusFactVerse lifecycle state
priorityNormalized priority
source_priorityProvider priority value
sla_due_atDue time used for operations review
sync_stateImported, pending, synchronized, retrying, rejected, or stale
last_synced_atLatest successful synchronization time

Webhook and Sync Events

Event typeUse
work_order.createdNew provider or FactVerse record enters the integration scope
work_order.updatedStatus, assignment, priority, or description changed
work_order.completedField execution is complete and closeout review can begin
work_order.closedCloseout state is finalized
attachment.addedNew file or evidence record is available
sync.failedImport, handoff, or write-back needs review
mapping.exceptionField, status, or asset mapping needs steward action

Event names are planning references. Use runtime discovery and deployed integration documentation to confirm the names available in a customer environment.

Error Handling

Error classReview action
AuthenticationCheck service identity, credential, environment, and provider allowlist
AuthorizationCheck scope, provider role, tenant boundary, and action level
ValidationCheck required fields, enum values, timestamp format, and payload schema
IdentityCheck asset reference, alias mapping, MDM state, and retired assets
ConflictCheck source revision, transition rule, duplicate prevention, and ownership
Provider unavailableCheck retry policy, queue state, and customer escalation path

Expected Output

An API handoff should include:

  • endpoint or connector list in scope;
  • credential and scope matrix;
  • payload fields and examples approved by the customer;
  • status, priority, and SLA mapping;
  • webhook or synchronization behavior;
  • error and retry policy;
  • test cases and acceptance criteria.

Validation Checklist

  • Read endpoints return expected tenant and provider scope.
  • Create or draft behavior produces an audit record.
  • Status updates follow approved transition rules.
  • Attachments link to ECM and the target work order.
  • Failed writes are visible in sync history.
  • API tests include authentication, authorization, validation, conflict, and retry cases.