Skip to main content
Use the work order endpoints to raise AssetOps work orders from external systems and keep them in sync. Each work order belongs to a building and references categories, priorities, and people from that building. Each linked endpoint can switch the sample between cURL, JavaScript, Python, and PowerShell, or send the request for you.

Before you begin

You need:

Create a work order

1

Look up valid values

Work orders reference identifiers that must exist in the building. Get them from the lookup endpoints:Cache these values and refresh them periodically. They change less often than work orders.
2

Create the work order

Send the work order to Create a work order. The API accepts CORRECTIVE_MAINTENANCE and SERVICE_REQUEST as the workType.
Store the returned id and identifier. Set linkedSource.identifier to the record ID in your system so that you can match work orders later.
3

Attach files

Upload photos or documents with Upload attachments as multipart form data. If your system already holds base64 content, use Upload base64 attachments. Both endpoints accept up to 10 files per request.

Update a work order

Update a work order replaces the editable details. Optional fields you leave out, such as description, vendor, team, and assignees, can be cleared. To change one field safely:
  1. Get the current work order with Get a work order.
  2. Change the field you need.
  3. Send the complete body back.
You cannot change workType or linkedSource after creation. If you omit priority, the current priority stays in place.

Sync work orders with another system

To keep an external system up to date, poll for changes instead of reading every work order:
  • Call List work orders with updatedAtFrom set to the time of your last sync.
  • Call List building comments with the same filter to collect new comments.
  • Filter by sourceType to return only work orders your integration created.
Store the sync time only after you process every page, so a failure does not skip changes.
Last modified on November 10, 2026