Skip to main content

Get Rent Comps

Find rent comparables (rent comps) for a property, ranked by
similarity score, with property details and rent metrics merged in.

Each comparable includes `distance` (miles from the subject property),
`score` (overall similarity, higher is more similar), `scoreDetail`
(per-factor breakdown showing each factor's score and the normalized
weight actually applied), a nested `property` object with the
essentials for evaluating the comparable (name, address, city, state,
zipCode, constructionYear, unitsQuantity, squareFootage, stories,
propertyStyle), and a nested `rent` object with the comparable's rent
metrics over the requested date window: average/median asking and
effective rent, average asking/effective rent per square foot, the
derived concession percentage (how far effective rent sits below
asking), average days on market for its listings, units available,
total units, and the number of rent records behind the numbers.

Call this to benchmark rents for a property — e.g. for underwriting,
rent surveys, or screening candidate rent comps — narrowing the pool
with any combination of the filters below. All filters except
`max_distance` are optional; omitted filters don't constrain results.

Inputs​

ParameterRequiredTypeDetails
addressNoanyOfCase-insensitive partial match on the property address.
Default: null
has_affordable_unitsNoanyOfTrue to require affordable units, False to
exclude properties that have them.
Default: null
housing_segmentsNoanyOfOnly these housing segments. Values: "STUDENT",
"SENIOR", "CORPORATE", "MILITARY", "CONVENTIONAL".
Default: null
max_construction_yearNoanyOfOnly comparables built in or before this year.
Default: null
max_distanceNonumberSearch radius in miles around the subject property.
Between 0 (exclusive) and 200; default 5.
Default: 5
max_occupancy_percentageNoanyOfMaximum occupancy (0-100).
Default: null
max_scoreNoanyOfOnly comparables with similarity score <= this value.
Default: null
max_square_footageNoanyOfMaximum total square footage.
Default: null
max_storiesNoanyOfMaximum number of stories.
Default: null
max_unit_quantityNoanyOfMaximum number of units.
Default: null
min_construction_yearNoanyOfOnly comparables built in or after this year.
Default: null
min_distanceNoanyOfMinimum distance in miles (0-200), e.g. to exclude
the subject's immediate surroundings.
Default: null
min_occupancy_percentageNoanyOfMinimum occupancy (0-100).
Default: null
min_scoreNoanyOfOnly comparables with similarity score >= this value.
Default: null
min_square_footageNoanyOfMinimum total square footage.
Default: null
min_storiesNoanyOfMinimum number of stories.
Default: null
min_unit_quantityNoanyOfMinimum number of units.
Default: null
nameNoanyOfCase-insensitive partial match on the property name.
Default: null
offsetNoanyOfPagination offset (default 0).
Default: null
orderNoanyOfSort direction, "ASC" or "DESC".
Default: null
order_byNoanyOfSort field, "SCORE" (default) or "DISTANCE".
Default: null
property_idYesstringKeyway property ID of the subject property.
property_stylesNoanyOfOnly these building styles. Values: "LOW_RISE",
"MID_RISE", "HIGH_RISE", "GARDEN", "TOWNHOME".
Default: null
rent_date_fromNoanyOf"YYYY-MM-DD"; start of the window the rent metrics
are computed over. Defaults to 30 days before today.
Default: null
rent_date_toNoanyOf"YYYY-MM-DD"; end of the window the rent metrics are
computed over. Defaults to today.
Default: null
sizeNointegerPage size, 1-50 (default 10). The response's `total` says
how many comparables matched overall.
Default: 10
totalNoanyOfEcho back a previously returned `total` to let the service
skip recounting when paginating through the same query.
Default: null
weight_activity_dateNoanyOfSimilarity-weight override, see below.
Default: null
weight_construction_yearNoanyOfSimilarity-weight override, see below.
Default: null
weight_distanceNoanyOfSimilarity-weight override, see below.
Default: null
weight_property_amenitiesNoanyOfSimilarity-weight override, see below.
Default: null
weight_qualityNoanyOfSimilarity-weight override, see below.
Default: null
weight_square_footage_per_unitNoanyOfSimilarity-weight override, see below.
Default: null
weight_storiesNoanyOfSimilarity-weight override, see below.
Default: null
weight_styleNoanyOfSimilarity-weight override, see below.
Default: null
weight_unit_amountNoanyOfSimilarity-weight override, see below.
Default: null
weight_unit_mixNoanyOfSimilarity-weight override, see below.
Default: null
weight_units_amenitiesNoanyOfSimilarity-weight override, see below.
Default: null
with_rent_fromNoanyOf"YYYY-MM-DD"; only comparables with rent data on or
after this date.
Default: null

Annotations​

{
"title": "Get Rent Comps",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": false
}

Input schema​

{
"type": "object",
"additionalProperties": false,
"properties": {
"property_id": {
"type": "string",
"description": "Keyway property ID of the subject property."
},
"max_distance": {
"default": 5,
"type": "number",
"description": "Search radius in miles around the subject property.\nBetween 0 (exclusive) and 200; default 5."
},
"min_distance": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum distance in miles (0-200), e.g. to exclude\nthe subject's immediate surroundings."
},
"min_construction_year": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Only comparables built in or after this year."
},
"max_construction_year": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Only comparables built in or before this year."
},
"min_occupancy_percentage": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum occupancy (0-100)."
},
"max_occupancy_percentage": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum occupancy (0-100)."
},
"min_unit_quantity": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum number of units."
},
"max_unit_quantity": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum number of units."
},
"min_square_footage": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum total square footage."
},
"max_square_footage": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum total square footage."
},
"min_stories": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum number of stories."
},
"max_stories": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum number of stories."
},
"min_score": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Only comparables with similarity score >= this value."
},
"max_score": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Only comparables with similarity score <= this value."
},
"offset": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Pagination offset (default 0)."
},
"size": {
"default": 10,
"type": "integer",
"description": "Page size, 1-50 (default 10). The response's `total` says\nhow many comparables matched overall."
},
"total": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Echo back a previously returned `total` to let the service\nskip recounting when paginating through the same query."
},
"order_by": {
"anyOf": [
{
"enum": [
"SCORE",
"DISTANCE"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Sort field, \"SCORE\" (default) or \"DISTANCE\"."
},
"order": {
"anyOf": [
{
"enum": [
"ASC",
"DESC"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Sort direction, \"ASC\" or \"DESC\"."
},
"with_rent_from": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "\"YYYY-MM-DD\"; only comparables with rent data on or\nafter this date."
},
"rent_date_from": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "\"YYYY-MM-DD\"; start of the window the rent metrics\nare computed over. Defaults to 30 days before today."
},
"rent_date_to": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "\"YYYY-MM-DD\"; end of the window the rent metrics are\ncomputed over. Defaults to today."
},
"property_styles": {
"anyOf": [
{
"items": {
"enum": [
"LOW_RISE",
"MID_RISE",
"HIGH_RISE",
"GARDEN",
"TOWNHOME"
],
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Only these building styles. Values: \"LOW_RISE\",\n\"MID_RISE\", \"HIGH_RISE\", \"GARDEN\", \"TOWNHOME\"."
},
"housing_segments": {
"anyOf": [
{
"items": {
"enum": [
"STUDENT",
"SENIOR",
"CORPORATE",
"MILITARY",
"CONVENTIONAL"
],
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Only these housing segments. Values: \"STUDENT\",\n\"SENIOR\", \"CORPORATE\", \"MILITARY\", \"CONVENTIONAL\"."
},
"has_affordable_units": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "True to require affordable units, False to\nexclude properties that have them."
},
"address": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Case-insensitive partial match on the property address."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Case-insensitive partial match on the property name."
},
"weight_distance": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Similarity-weight override, see below."
},
"weight_construction_year": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Similarity-weight override, see below."
},
"weight_square_footage_per_unit": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Similarity-weight override, see below."
},
"weight_unit_amount": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Similarity-weight override, see below."
},
"weight_activity_date": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Similarity-weight override, see below."
},
"weight_unit_mix": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Similarity-weight override, see below."
},
"weight_property_amenities": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Similarity-weight override, see below."
},
"weight_units_amenities": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Similarity-weight override, see below."
},
"weight_quality": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Similarity-weight override, see below."
},
"weight_style": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Similarity-weight override, see below."
},
"weight_stories": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Similarity-weight override, see below."
}
},
"required": [
"property_id"
]
}