Docs
V1 API

Pricing and fees

Base rent, total monthly leasing price, fee breakdowns, and how a property's pricing display settings shape V1 payloads.

Every V1 payload that carries a price carries two of them: the base rent, and the total monthly leasing price (TMLP), which is base rent plus the monthly cost of the fees a resident must pay. The fee lines behind the difference come with it, so a site can show the total and explain it.

Base rent and TMLP

  • Base rent is the rent before fees.
  • TMLP is base rent plus the monthly equivalent of every mandatory fee.

Fees count toward TMLP by how often they are charged:

FrequencyCounts toward TMLP as
MonthlyThe amount
QuarterlyThe amount ÷ 3
AnnuallyThe amount ÷ 12
One-timeNothing. It counts toward the upfront total instead.
Hourly, per occurrence, or unknownNothing. It is listed but left out of every total.

Only fees whose requirement is Mandatory enter a total. Optional, conditional, situational and included fees are listed but never added.

A fee that is a percentage of base rent is computed separately against the minimum and the maximum base rent, so the maximum TMLP is never derived from the minimum.

A fee Resi cannot put a number on is listed with is_variable: true and adds nothing to any total. That happens when a fee has no amount, or is a percentage of a base rent that is unknown. A fee deliberately set to 0 is a real amount, not variable.

Where the numbers are

Prices are computed when the data changes, not when you request it, so every payload agrees with itself: TMLP is always base rent plus the monthly fee total.

EndpointPricing fields
List unitsunitPrice, unitMinBaseRent, unitMaxBaseRent, unitMinTmlp, unitMaxTmlp, unitFees, unitFeeTotal
List floor plansfloorPlanRentMin, floorPlanRentMax, floorPlanBaseRentMin, floorPlanBaseRentMax, floorPlanTmlpMin, floorPlanTmlpMax, floorPlanFees, floorPlanFeeTotal
List unit typesOne row per bedroom count, with its fees and feeTotal taken from the floor plan with the lowest total
Get propertyminRent, maxRent, minBaseRent, maxBaseRent, and pricingDisplaySettings
Fee scheduleThe property's effective fee schedule, every requirement included, with monthlyFeeTotal, monthlyFeeTotalMax and upfrontFeeTotal

The reference pages list every field of a fee line.

Display settings

Each property has pricing display settings, returned as pricingDisplaySettings on the property:

SettingMeaning
pricing_display_modeBASE_AND_TOTAL, TOTAL_ONLY or BASE_ONLY
tmlp_labelThe label to show next to the total
show_fee_breakdownWhether to list the fee lines
fee_breakdown_behaviorEXPANDED or COLLAPSED
pricing_disclaimer_textText to show with prices
hidden_price_labelWhat to show in place of a price hidden by hide_all_pricing
no_availability_price_labelWhat to show in place of a price hidden by hide_price_when_no_availability
no_price_labelWhat to show wherever else a price is null, such as when no rent is known
hide_all_pricingHide every price
hide_price_when_no_availabilityHide the price of a unit or floor plan with nothing available

Resi applies these settings to public payloads before they leave the server:

SettingEffect on the payload
hide_all_pricingEvery pricing field is null and fee lists are empty
hide_price_when_no_availabilityAn unavailable unit's or floor plan's prices are null. Its fees are still listed.
TOTAL_ONLYBase rent fields are null
BASE_ONLYTotal fields are null, including unitPrice and the fee fields
show_fee_breakdown: falseFee lines are empty; totals stay

Hidden fields are set to null, never removed, so a payload keeps its shape. Where a price is null, show hidden_price_label if hide_all_pricing is on; otherwise no_availability_price_label if hide_price_when_no_availability is on and nothing is available; otherwise no_price_label.

This enforcement is being rolled out account by account. Until it reaches an account, its payloads carry every field, and a site should apply pricingDisplaySettings itself. Rendering from the settings works either way.

The authenticated V2 API is a management API and returns prices unfiltered.

Last updated on

On this page