Rent roll report
Lists every unit with the lease on it, the tenants living there, the rent and any subsidy. One row is one unit, grouped under its property and portfolio, and a unit with no lease shows as vacant.
Authorization
AuthorizationstringrequiredQuery parameters
portfolioIdsstring[]Narrow the report to these portfolios. Repeat the parameter once per id. An id that does not exist returns 404.
propertyIdsstring[]Narrow the report to these properties. Repeat the parameter once per id. An id that does not exist returns 404.
ownerIdsstring[]Narrow the report to properties these owners have a stake in. Repeat the parameter once per id. An id that does not exist returns 404.
includeEmptyUnitsbooleanWhether to list units that have no lease on them.
includeEmptyPropertiesbooleanWhether to list properties that have no units to show.
includeDeactivatedUnitsbooleanWhether to list units that have been deactivated.
Response
200 · The rent roll, grouped by property.
groupsobject[]One group per property.
metadataobjectTotals across every row in the report.
customFieldsobject[]The custom field definitions the rows' values belong to. Read options.type here to know which value property to read on each row.
401 · The access token is missing, expired, or not valid for this company.
404 · A portfolio, property or owner id in the query does not exist in the caller's company.
portfolioIds, propertyIds and ownerIds are all resolved down to one set of properties, and they narrow each other rather than adding up. Sending a portfolio and a property that is not in it returns nothing. Sending none of the three covers every property in the company.
customFieldValues on a row carries whatever the company defined. Look the value's customFieldId up in the report's own customFields array, read options.type there, and then read stringValue, numberValue, booleanValue, dateTimeValue or referenceValue off the value accordingly.
occupancyRate is a fraction, not a percentage: 0.92 means 92 per cent.