Units

Get a unit

Fetches one unit with its property, its active leases, its balance and its one-line address.

GET
https://api.portal.magicdoor.com/company-app/units/{unitId}

Authorization

Authorizationstringrequired
Bearer token — Send your API token in the Authorization header as Bearer <token>. Requests without a valid token are rejected with 401 Unauthorized.

Path parameters

unitIdstringrequired

Snowflake id of the unit, as a decimal string.

example: 1830472847398404098

Response

200 · The hydrated unit. `customFieldValues` is absent — use the custom-fields endpoint for those.

idstring

Snowflake id of the unit.

namestring

The unit's name — typically its number or letter, for example "2B". For a single-unit property this is often "Home".

addressobject

An 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.

bedsnumber

Bedrooms. Whole or half numbers only. Absent when it was never set.

bathsnumber

Bathrooms. Whole or half numbers only. Absent when it was never set.

unitSizeSqftinteger

Floor area in square feet. Absent when it was never set.

marketRentnumber

The 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.

floorinteger

Which floor the unit is on, 1 to 200. Absent when it was never set.

propertyIdstring

The property this unit belongs to.

portfolioIdstring

The portfolio the unit's property belongs to. Kept in step with the property.

activeboolean

false once the unit has been deactivated.

imageIdstring

The file behind the unit's main photo. Absent when no photo has been set.

iconsstring[]

Icon keys pinned to the unit. Free-form strings.

magicTagsobject

Free-form labels on the unit, as a map of string keys to string values. Absent when none are set.

imageobject

The unit's main photo, resolved from imageId. Absent when no photo has been set.

propertyobject

The 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.

postedBalancenumber

Computed: what the unit's leases owe, counting only charges that have already been posted.

singleLineAddressstring

Computed 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.

recentRentalApplicationsinteger

Computed: how many distinct rental applications that have not been retracted named this unit in the recent window.

latestRentalApplicationIdstring

The most recent rental application, not retracted, that named this unit. Absent when nobody has applied.

401 · The access token is missing, expired, or not for this company.

404 · No unit with that id, or it belongs to another company.

Which fields you can write

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.

A unit is not its listing

The unit holds the facts of the physical space — beds, baths, square feet, floor, marketRent. The unit listing is the marketing record MagicDoor publishes to prospective tenants: title, description, photos, asking rent, availability date. They share an id but have separate lifecycles and separate endpoints, and changing one does not change the other.