Update a unit
Rewrites a unit's stored fields. Every field is written as sent, so anything you leave out is cleared.
Authorization
AuthorizationstringrequiredPath parameters
unitIdstringrequiredSnowflake id of the unit, as a decimal string.
Body
application/json
The unit is written from this body in full. A field you leave out is cleared, not left alone.
namestringrequiredWhat to call the unit, 1 to 200 characters. Note the longer limit here than on create, which allows 150.
addressobjectAn address of the unit's own. Leave it out to clear the override and fall back to the property's address.
bedsnumberBedrooms. Zero or more, in steps of 0.5.
bathsnumberBathrooms. Zero or more, in steps of 0.5.
unitSizeSqftintegerFloor area in square feet. Zero or more.
marketRentnumberThe rent the unit is expected to fetch, as a decimal with at most two places.
floorintegerWhich floor the unit is on, 1 to 200.
imageSessionIdstringId of a completed upload session for a new main photo.
imageIdstringdeprecatedId of an already-uploaded but unclaimed file. Use imageSessionId instead.
iconsstring[]Replaces the icon list. Leave it out and the list is emptied.
magicTagsobjectReplaces the labels, as a map of string keys to string values. Leave it out and they are cleared.
Response
200 · The updated unit, hydrated.
idstringSnowflake id of the unit.
namestringThe unit's name — typically its number or letter, for example "2B". For a single-unit property this is often "Home".
addressobjectAn address that overrides the property's, for a unit with its own street address. Absent when the unit uses the property address, which is the usual case.
bedsnumberBedrooms. Whole or half numbers only. Absent when it was never set.
bathsnumberBathrooms. Whole or half numbers only. Absent when it was never set.
unitSizeSqftintegerFloor area in square feet. Absent when it was never set.
marketRentnumberThe rent this unit is expected to fetch, as a decimal amount such as 1850.00. This is an asking figure on the unit, not the rent on any lease. Absent when it was never set.
floorintegerWhich floor the unit is on, 1 to 200. Absent when it was never set.
propertyIdstringThe property this unit belongs to.
portfolioIdstringThe portfolio the unit's property belongs to. Kept in step with the property.
activebooleanfalse once the unit has been deactivated.
imageIdstringThe file behind the unit's main photo. Absent when no photo has been set.
iconsstring[]Icon keys pinned to the unit. Free-form strings.
magicTagsobjectFree-form labels on the unit, as a map of string keys to string values. Absent when none are set.
imageobjectThe unit's main photo, resolved from imageId. Absent when no photo has been set.
propertyobjectThe property this unit belongs to, expanded.
activeLeasesLease[]The leases currently running on this unit, in the same shape the leases endpoints return. Usually zero or one; more than one appears when leases overlap. Empty for a vacant unit.
postedBalancenumberComputed: what the unit's leases owe, counting only charges that have already been posted.
singleLineAddressstringComputed one-line address for the unit: the unit's own address if it has one, otherwise the property's address with the unit name appended. The unit name is left off for a single-unit property. Absent when neither the unit nor the property has an address.
recentRentalApplicationsintegerComputed: how many distinct rental applications that have not been retracted named this unit in the recent window.
latestRentalApplicationIdstringThe most recent rental application, not retracted, that named this unit. Absent when nobody has applied.
400 · A required field is missing or fails validation. The response carries an `errors` member mapping each rejected field name to its message.
401 · The access token is missing, expired, or not for this company.
404 · No unit with that id, or it belongs to another company.
422 · The unit has been deactivated, so it cannot be edited.
The unit record stores name, address, beds, baths, unitSizeSqft, marketRent, floor, imageId, icons and magicTags. propertyId and portfolioId are set when the unit is created and changed only by the move endpoint. Everything else on the response is computed on read: address.isValid, singleLineAddress, activeLeases, postedBalance, recentRentalApplications and latestRentalApplicationId.
There is no propertyId in this body. To move a unit to a different property use Move a unit, which checks the target and refuses a no-op move.