Facilio Work Order Comments API
Add notes and updates to work orders. Comments provide an audit trail of communication between technicians, managers, and requesters.
Add notes and updates to work orders. Comments provide an audit trail of communication between technicians, managers, and requesters.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/facilio-work-order-comments-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Facilio REST Work Order Comments API
version: 5.0.0
description: The Facilio REST API gives you programmatic access to Facilio's Connected CMMS — the unified platform for managing property operations at portfolio scale.
contact:
name: Facilio Support
url: https://facilio.com
license:
name: Proprietary
servers:
- url: https://{region}.facilioapis.com/{app_name}/api/v5
variables:
region:
description: Regional deployment
default: us
enum:
- us
- au
- ae
- uk
- us-azure
- sa
app_name:
description: '''maintenance'' for API Key, ''developer'' for OAuth2'
default: maintenance
enum:
- maintenance
- developer
security:
- apiKey: []
- oauth2: []
tags:
- name: Work Order Comments
description: Add notes and updates to work orders. Comments provide an audit trail of communication between technicians, managers, and requesters.
paths:
/workorder/{id}/comments:
get:
tags:
- Work Order Comments
summary: List work order comments
description: Returns all comments/notes for the specified work order, sorted by creation time.
operationId: listWorkOrderComments
parameters:
- $ref: '#/components/parameters/recordId'
responses:
'200':
description: List of comments
content:
application/json:
example:
success: true
data:
- id: 201
body: Technician dispatched to site
bodyHTML: <p>Technician dispatched to site</p>
createdTime: '2026-02-12T17:30:00Z'
createdBy:
id: 1
name: Alex Johnson
email: alex.johnson@example.com
- id: 202
body: Parts ordered, ETA 2 days
bodyHTML: <p>Parts ordered, ETA 2 days</p>
externalId: ext-note-001
createdTime: '2026-02-13T10:00:00Z'
createdBy:
id: 5
name: John Smith
email: john@facilio.com
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- Work Order Comments
summary: Add work order comment
description: Adds a comment/note to the work order. Optionally notify the requester.
operationId: addWorkOrderComment
parameters:
- $ref: '#/components/parameters/recordId'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/WorkOrderComment'
example:
data:
body: Work has been completed. Awaiting inspection.
notifyRequester: true
externalId: ext-note-002
responses:
'201':
description: Comment added
content:
application/json:
example:
success: true
data:
id: 203
body: Work has been completed. Awaiting inspection.
createdTime: '2026-02-14T15:00:00Z'
createdBy:
id: 1
name: Alex Johnson
email: alex.johnson@example.com
message: Comment added successfully
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/workorder/{id}/comments/{commentId}:
patch:
tags:
- Work Order Comments
summary: Update work order comment
description: Updates the body text of an existing comment.
operationId: updateWorkOrderComment
parameters:
- $ref: '#/components/parameters/recordId'
- $ref: '#/components/parameters/commentId'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
type: object
required:
- body
properties:
body:
type: string
example:
data:
body: 'Updated: Work completed and inspected.'
responses:
'200':
description: Comment updated
content:
application/json:
example:
success: true
data:
id: 203
body: 'Updated: Work completed and inspected.'
message: Comment updated successfully
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- Work Order Comments
summary: Delete work order comment
description: Deletes a specific comment from the work order.
operationId: deleteWorkOrderComment
parameters:
- $ref: '#/components/parameters/recordId'
- $ref: '#/components/parameters/commentId'
responses:
'200':
description: Comment deleted
content:
application/json:
example:
success: true
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
schemas:
User:
type: object
description: 'Expanded object for lookups to the `users` module.
On list API, user lookups return `{id}` only unless `?expand=` includes that field.
When expanded (single-record GET, create/update responses, or list with `expand`): fixed set `id`, `name`, `email`, `phone` (see **Lookup fields in responses**).
'
properties:
id:
type: integer
format: int64
description: User ID
name:
type: string
description: User's full name
email:
type: string
description: User's email address
phone:
type: string
description: Phone number when present
WorkOrderComment:
type: object
description: Work order comment/note.
required:
- body
properties:
id:
type: integer
readOnly: true
description: Comment ID
body:
type: string
description: Comment text content (required on create)
bodyHTML:
type: string
readOnly: true
description: HTML-formatted comment body
externalId:
type: string
description: Your external reference ID
notifyRequester:
type: boolean
default: false
description: Send notification to the requester
createdTime:
type: string
format: date-time
readOnly: true
description: Creation timestamp
createdBy:
readOnly: true
description: User who posted the comment
allOf:
- $ref: '#/components/schemas/User'
Error:
type: object
description: Error response
properties:
success:
type: boolean
example: false
error:
type: object
properties:
code:
type: string
description: Machine-readable error code
message:
type: string
description: Human-readable error message
responses:
Unauthorized:
description: Missing or invalid authentication credentials
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
success: false
error:
code: UNAUTHORIZED
message: Missing or invalid authentication credentials
BadRequest:
description: Validation error — missing required fields, invalid field values, or malformed request body
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
success: false
error:
code: VALIDATION_ERROR
message: 'Required field(s) missing: name'
NotFound:
description: Record or module not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
success: false
error:
code: RECORD_NOT_FOUND
message: Record with the given ID was not found
parameters:
recordId:
name: id
in: path
required: true
description: Record ID
schema:
type: integer
format: int64
commentId:
name: commentId
in: path
required: true
description: Comment ID
schema:
type: integer
format: int64
securitySchemes:
apiKey:
type: apiKey
in: header
name: x-api-key
description: Personal access token
oauth2:
type: oauth2
description: Supports authorization_code and password grant types
flows:
authorizationCode:
authorizationUrl: https://us.facilioapis.com/identity/oauth2/authorize
tokenUrl: https://us.facilioapis.com/identity/oauth2/token
refreshUrl: https://us.facilioapis.com/identity/oauth2/token
scopes: {}
password:
tokenUrl: https://us.facilioapis.com/identity/oauth2/token
refreshUrl: https://us.facilioapis.com/identity/oauth2/token
scopes: {}