Rent Comps API - Apartment Rents, Concessions, Comps avatar

Rent Comps API - Apartment Rents, Concessions, Comps

Pricing

from $8.00 / 1,000 building record returneds

Go to Apify Store
Rent Comps API - Apartment Rents, Concessions, Comps

Rent Comps API - Apartment Rents, Concessions, Comps

Get US multifamily rent comps with asking and effective rents net of concessions, unit level availability and days on market, comparable buildings, predicted market rent per unit, and operating expense benchmarks for any apartment building.

Pricing

from $8.00 / 1,000 building record returneds

Rating

0.0

(0)

Developer

Nabeel Hassan

Nabeel Hassan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Get US multifamily rent comps where the asking rent and the rent net of concessions are both on the row, unit by unit, plus comparable buildings, predicted market rent and a full operating expense estimate.

What this actor does

  • Asking rent and effective rent, on every unit. Effective rent is the asking rent net of the concessions the building is currently running. Two months free on a twelve month lease is about a sixteen percent difference, so a comp set built on asking rents alone is wrong in exactly the markets where it matters. Both figures, the concession value, the concession percentage and both per square foot rates are on every unit row.
  • Unit level detail. One row per apartment with bedrooms, bathrooms, square footage, floor, days on market, availability dates, lease term, deposit and amenities. Advertised floorplans are reported as their own row type rather than counted as apartments.
  • Comparable buildings. Distance, similarity score and full attributes, filtered by unit count, year built, storey count, distance, proximity to a university or hospital, and the affordable, student, senior, build to rent, condominium and lease up flags. Force specific buildings in or out.
  • Predicted market rent per unit. What the provider thinks each unit should be asking, on both the asking and effective bases, with the signed gap to what it is actually asking and the number of comparable units behind the prediction.
  • Operating expense benchmarks. A predicted operating statement: gross potential rent, vacancy loss, effective gross income, other income, total operating expenses and NOI, with taxes, insurance, utilities, payroll, repairs, marketing, management fees and reserves broken out.
  • Building quality scores. An overall score derived from the building's photographs, plus per room scores for the kitchen, bathroom, bedroom, common areas, fitness centre and pool.
  • Search a drawn polygon. Every building inside an area you define, filtered on rent, square footage, quality, review score and amenities.
  • Pay per result. You are charged for rows that carry a real record. Property IDs the provider does not hold are free.

Bring your own key

This actor calls the provider with your own API key, from the API section of your account. Paste it into the API key field, or set it as the DATA_API_KEY secret. Nothing runs on anyone else's credentials, and a run without a key ends cleanly with an explanation rather than failing.

The provider sells endpoint access by plan. A key that works everywhere else and is refused on one endpoint returns a 403, and this actor reports that as a plan problem rather than a bad key, so you are not left changing a key that was never wrong.

Start here, and note what is free

Property search costs nothing on the provider's plans. Every other endpoint costs one request. So resolve your whole address list to property IDs first, in one free run, then read only the buildings you actually want. A hundred addresses resolved is free; a hundred reports is a hundred requests.

Example output

{
"recordType": "unit",
"requested": "7f1c2b5a-3d4e-5f60-8a9b-0c1d2e3f4a5b",
"found": true,
"propertyId": "7f1c2b5a-3d4e-5f60-8a9b-0c1d2e3f4a5b",
"buildingName": "The Wacker",
"streetAddress": "111 W Wacker Dr",
"city": "Chicago",
"state": "IL",
"unitName": "2104",
"floorplanName": "B2 Corner",
"isFloorplan": false,
"bedrooms": 2,
"bathrooms": 2,
"sqft": 1104,
"floor": 21,
"price": 4295,
"effectivePrice": 3937,
"concessionValue": 358,
"concessionPercent": 8.34,
"pricePerSqft": 3.89,
"effectivePricePerSqft": 3.57,
"daysOnMarket": 18,
"availability": "available",
"leaseTerm": "12"
}

FAQ

What is the difference between asking rent and effective rent?

Asking rent is the advertised number. Effective rent is that number net of the concessions the building is currently offering, spread across the lease term. A building advertising 2,000 dollars with two months free on a twelve month lease has an effective rent of about 1,667. Both are on every unit row, along with the difference in dollars and as a percentage, because which one you should use depends on the question: asking rent for a marketing comparison, effective rent for underwriting.

Why are there separate unit and floorplan rows?

Because the provider's availability data contains both, and they are different things. A floorplan is the advertised unit type - "B2 Corner, 2 bed, 1104 sq ft" - and a unit is a specific apartment such as 2104. Counting both as apartments double counts the building. Floorplan rows are off by default and the isFloorplan flag says which kind of row you are looking at when you turn them on.

How do I tell whether a unit is underpriced?

Use market rents mode. It returns the provider's predicted rent for each unit next to what the unit is actually asking, and a signed gap column: a positive gap means the provider thinks the unit should be asking more. Check the supporting unit count too, because a prediction built on three comparable units is a guess and one built on ninety is not.

Why does this actor read the property report before finding comparables?

Because the comparables, market rents and expense benchmark endpoints all take the whole subject property in the request body rather than its ID, and the provider's own documentation recommends passing the full report rather than a thin object: it then uses the quality scores, the unit detail and the market statistics in it to pick comparables. That costs one extra request per subject and produces a materially better answer, so the actor does it for you.

What are the allow-unknown switches for?

Every attribute filter has to decide what to do with a building whose value the provider does not know. Allowing unknowns through a year-built filter keeps older stock that has no year on file; disallowing them drops it. Neither default is right for every question, so the actor only sends these when you set them, and otherwise leaves the choice to the provider.

Why does affordable or student housing need its own comp set?

Because those buildings are not priced against the market. A rent restricted building prices against an income limit, and student housing is quoted per bed rather than per unit. Mixing either into a conventional comparable set drags the whole set in a direction that has nothing to do with the market. The flags let you include or exclude them deliberately.

How do I write a polygon?

One latitude,longitude pair per line, at least three of them, in order around the boundary. The actor closes the ring for you and handles the axis order the provider expects, which is longitude first - getting that backwards is the classic mistake and it silently searches the wrong part of the world. If a latitude is outside -90 to 90 the actor tells you the pair is probably the wrong way round rather than sending it.

Can I get a market's shape rather than drawing one?

Yes. Shape search mode takes a market name such as "Austin, TX" and returns its boundary polygon along with its centre and area. Feed that polygon straight into market search mode.

Do property IDs change?

Occasionally. The provider's IDs are UUIDs, and it merges records when it works out that two entries describe the same building, which retires one of the IDs. An ID that has stopped working is reported as not found with that explanation, and re-resolving the address through the free search mode gives you the current one.

What does it cost?

Pricing is pay per result: 0.02 USD per full property report, 0.02 USD per expense benchmark estimate, 0.015 USD per rent prediction, 0.008 USD per building record, 0.006 USD per market shape and 0.005 USD per unit, with Apify platform usage included. Rows the provider found nothing for are not charged. You also need your own account with the data provider, which bills per request on its own plans.

Does the actor fail if my key is wrong?

No. A missing key, a rejected key, an endpoint outside your plan, an exhausted allowance or an empty input all end the run cleanly with a message saying what to change. Only a real outage or a bug fails the run.

Keyword map

rent comps API, apartment rent data API, multifamily data API, effective rent concessions, rent concession data, apartment market rent prediction, unit level rent data, multifamily underwriting data, operating expense benchmarks multifamily, NOI estimate apartment, apartment comparables API, rental market analysis API, days on market apartments, revenue management pricing detection, build to rent data, student housing rent data, affordable housing rent data, apartment building quality score