Skip to content

Create a work order

POST
/api/work-orders
curl --request POST \
--url https://api.getvespy.com/api/work-orders \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "assignedStaffUserId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "assignedVendorId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "category": "plumbing", "description": "example", "entryInstructions": "example", "priority": "low", "propertyId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "scheduledAt": "2026-04-15T12:00:00Z", "source": "staff", "subcategory": "example", "tenantId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "title": "example", "unitId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" }'

Staff must supply a unit. Tenant requests are forced to source: tenant and inherit the property, unit, and tenant from the caller active lease.

Media typeapplication/json
object
assignedStaffUserId
string format: uuid
assignedVendorId
string format: uuid
category
string
Allowed values: plumbing electrical hvac appliance structural pest_control landscaping general other
description
string
>= 1 characters <= 4000 characters
entryInstructions
string
>= 1 characters <= 2000 characters
priority
string
Allowed values: low normal high emergency
propertyId
required
string format: uuid
scheduledAt
string format: date-time
source
string
Allowed values: staff tenant
subcategory
string
<= 100 characters
tenantId
string format: uuid
title
required
string
>= 1 characters <= 160 characters
unitId
string format: uuid

Default Response

Media typeapplication/json
object
workOrder
required
object
assignedStaffUserId
required
string format: uuid
nullable
assignedVendorId
required
string format: uuid
nullable
category
required
string
nullable
Allowed values: plumbing electrical hvac appliance structural pest_control landscaping general other
completedAt
required
string format: date-time
nullable
createdAt
required
string format: date-time
deletedAt
required
string format: date-time
nullable
description
required
string
nullable
entryInstructions
required
string
nullable
id
required
string format: uuid
organizationId
required
string format: uuid
priority
required
string
Allowed values: low normal high emergency
propertyId
required
string format: uuid
relations
object
assignedStaffUser
required
object
fullName
required
string
>= 1 characters <= 160 characters
id
required
string format: uuid
assignedVendor
required
object
id
required
string format: uuid
name
required
string
>= 1 characters <= 160 characters
property
required
object
id
required
string format: uuid
name
required
string
>= 1 characters <= 160 characters
tenant
required
object
fullName
required
string
>= 1 characters <= 160 characters
id
required
string format: uuid
unit
required
object
id
required
string format: uuid
unitNumber
required
string
nullable >= 1 characters <= 32 characters
scheduledAt
required
string format: date-time
nullable
source
required
string
Allowed values: staff tenant
status
required
string
Allowed values: open in_progress completed cancelled
subcategory
required
string
nullable <= 100 characters
tenantId
required
string format: uuid
nullable
title
required
string
>= 1 characters <= 160 characters
unitId
required
string format: uuid
nullable
updatedAt
required
string format: date-time
Example
{
"workOrder": {
"category": "plumbing",
"priority": "low",
"source": "staff",
"status": "open"
}
}

Default Response

Media typeapplication/json
object
code
string
errors
Array<object>
object
code
required
string
message
required
string
path
required
string
message
required
string
Examplegenerated
{
"code": "example",
"errors": [
{
"code": "example",
"message": "example",
"path": "example"
}
],
"message": "example"
}

Default Response

Media typeapplication/json
object
code
string
errors
Array<object>
object
code
required
string
message
required
string
path
required
string
message
required
string
Examplegenerated
{
"code": "example",
"errors": [
{
"code": "example",
"message": "example",
"path": "example"
}
],
"message": "example"
}

Default Response

Media typeapplication/json
object
code
string
errors
Array<object>
object
code
required
string
message
required
string
path
required
string
message
required
string
Examplegenerated
{
"code": "example",
"errors": [
{
"code": "example",
"message": "example",
"path": "example"
}
],
"message": "example"
}

Default Response

Media typeapplication/json
object
code
string
errors
Array<object>
object
code
required
string
message
required
string
path
required
string
message
required
string
Examplegenerated
{
"code": "example",
"errors": [
{
"code": "example",
"message": "example",
"path": "example"
}
],
"message": "example"
}