Skip to content

Create unit for a property

POST
/api/properties/{propertyId}/units
curl --request POST \
--url https://api.getvespy.com/api/properties/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/units \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "accessInstructions": "example", "bathrooms": 1, "bedrooms": 1, "currentLease": { "endDate": "2026-04-15", "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "rentCents": 1, "startDate": "2026-04-15", "status": "draft", "tenantId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "tenantName": "example" }, "currentTenant": { "email": "hello@example.com", "fullName": "example", "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" }, "description": "example", "feeTemplates": [ { "amountCents": 1, "categoryId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "defaultDueDay": 1, "label": "example" } ], "monthlyRentCents": 1, "status": "occupied", "unitNumber": "example" }'
propertyId
required
string format: uuid
Media typeapplication/json
object
accessInstructions
string
>= 1 characters <= 2000 characters
bathrooms
required
integer
bedrooms
required
integer
currentLease
object
endDate
required
string format: date
nullable
id
required
string format: uuid
rentCents
required
integer
>= 1
startDate
required
string format: date
status
required
string
Allowed values: draft active ended terminated
tenantId
required
string format: uuid
tenantName
required
string
>= 1 characters <= 160 characters
currentTenant
object
email
required
string format: email
fullName
required
string
>= 1 characters <= 160 characters
id
required
string format: uuid
description
string
>= 1 characters <= 5000 characters
feeTemplates
Array<object>
object
amountCents
required
integer
>= 1
categoryId
required
string format: uuid
defaultDueDay
integer
nullable >= 1 <= 31
label
required
string
>= 1 characters <= 160 characters
monthlyRentCents
required
integer
>= 1
status
required
string
Allowed values: occupied vacant maintenance
unitNumber
string
nullable >= 1 characters <= 32 characters

Default Response

Media typeapplication/json
object
feeTemplates
required
Array<object>
object
amountCents
required
integer
>= 1
categoryId
required
string format: uuid
createdAt
required
string format: date-time
defaultDueDay
required
integer
nullable >= 1 <= 31
id
required
string format: uuid
label
required
string
>= 1 characters <= 160 characters
organizationId
required
string format: uuid
unitId
required
string format: uuid
updatedAt
required
string format: date-time
unit
required
object
accessInstructions
required
string
nullable
bathrooms
required
integer
bedrooms
required
integer
currentLease
object
endDate
required
string format: date
nullable
id
required
string format: uuid
rentCents
required
integer
>= 1
startDate
required
string format: date
status
required
string
Allowed values: draft active ended terminated
tenantId
required
string format: uuid
tenantName
required
string
>= 1 characters <= 160 characters
currentTenant
object
email
required
string format: email
fullName
required
string
>= 1 characters <= 160 characters
id
required
string format: uuid
description
required
string
nullable
id
required
string format: uuid
monthlyRentCents
required
integer
>= 1
propertyId
required
string format: uuid
status
required
string
Allowed values: occupied vacant maintenance
unitNumber
required
string
nullable >= 1 characters <= 32 characters
Example
{
"unit": {
"currentLease": {
"status": "draft"
},
"status": "occupied"
}
}

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"
}

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"
}