RentCafe Rental Listings Scraper (USA)
Pricing
from $1.26 / 1,000 results
RentCafe Rental Listings Scraper (USA)
Scrapes US rental listings from RentCafe — apartments, houses, townhomes and condos. Returns name, full address, GPS coordinates, photos, rent range, resident rating, up to 10 reviews, leasing phone and office hours for any US city.
Pricing
from $1.26 / 1,000 results
Rating
0.0
(0)
Developer
Ibnu Adzim
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrapes US rental listings from RentCafe — one of the largest American rental networks (Yardi Systems), covering apartments, houses, townhomes and condos.
Give it a city. Get back every property RentCafe lists there, with full address, GPS coordinates, photos, the actual rent range, the resident rating, every published resident review, the leasing phone number and the office hours.
What you get
One row per property, plus a SEARCH_SUMMARY row per city telling you exactly
what the crawl saw and which filters upstream actually honoured.
From the search page (always)
| Field | Example |
|---|---|
propertyId | 1085845 |
name | Spicewood Springs Apartment Homes |
streetAddress, city, state, postalCode | 8617 Spicewood Springs Road, Austin, TX, 78759 |
latitude, longitude | 30.434, -97.7751 |
photos, photoCount | first 12 image URLs; 25 total |
cardSummary | 1 bd $925 2 bd $1,225+ … Pet friendly • Fitness center |
propertyUrl | link to the property page |
From the property page (includePropertyDetails, on by default)
| Field | Example |
|---|---|
rentLow, rentHigh, rentCurrency | 899, 1599, USD |
ratingValue, ratingCount | 4.5, 10 |
reviewsFetched + propertyDetails.reviews[] | full review text, rating and date per review |
phone | +1 (833) 481-2754 |
neighborhood | Anderson Mill - Jollyville |
propertyDetails.openingHours | leasing-office hours per weekday |
propertyDetails.breadcrumb | state → county → city → neighborhood |
propertyDetails.images | every photo (25–41 typical), not just the card's first few |
Keep the detail pass on if you care about price. RentCafe's search cards
carry no structured price at all — rent appears only as free text inside
cardSummary. rentLow/rentHigh come from the property page.
Input
{"locations": ["austin-tx", "Chicago, IL", "seattle wa"],"propertyType": "apartments", // apartments | houses | townhomes | condos"filters": ["1-bedroom"], // at most ONE — see below"maxItems": 100, // 0 = every page the site offers"includePropertyDetails": true}
locations accepts city-state slugs or plain City, ST text — austin-tx,
Austin, TX and AUSTIN tx are the same query and are de-duplicated.
searchUrls is available as an escape hatch for URLs copied from the site.
The four property types are separate inventories
Not one list re-sliced: Austin apartments and Austin houses share zero property ids. Measured Austin: 14,299 apartment units / 90 houses / 272 townhomes / 13 condos.
Filters: pick at most one
RentCafe accepts exactly one filter segment per search. Asking for two (say
1-bedroom and pet-friendly) produces a URL it answers with a 404, so
this actor refuses the combination up front and tells you why, rather than
silently dropping one of them.
Every offered filter was verified to genuinely move the result count against the Austin baseline of 14,299:
studio 1,096 · 1-bedroom 7,126 · 2-bedroom 4,929 · 3-bedroom 1,051 ·
4-bedroom 190 · cheap 6,866 · luxury 7,963 · furnished 110 ·
short-term 1,257 · utilities-included 16 · under-500 … under-2000
(under-1000 → 1,869)
pet-friendly is offered but barely narrows most markets (14,105 of 14,299 in
Austin) — most US rental stock allows pets.
Known limits — read these before you size a run
1. The headline count is UNITS, not properties. Austin's page says
"14,299 Rentals" but a complete crawl returns 334 properties. Both numbers
are correct: RentCafe counts individually rentable units across all buildings,
while one dataset row is one property. The summary reports the site's figure
verbatim as upstreamUnitCountText and never uses it as a row expectation.
Expect roughly 40× fewer rows than that headline.
2. Each query has a hard page ceiling. Austin apartments stop at 14 pages
(~334 properties); 1-bedroom stops at 10 (249). Past the ceiling RentCafe
answers a band of HTTP 500s and then silently re-serves page 1 forever. The
actor reads the ceiling off the site's own pagination nav and stops there;
pageCeiling and paginationClampHit are reported so you can see it happened.
To go wider, add more cities or run one filter per query — not more pages.
3. Some properties are de-listed mid-crawl. RentCafe answers a dead
property URL with a redirect to the city search page and a healthy HTTP 200 —
not a 404. Those rows come back with _detailError set and their list fields
intact, never with another property's data.
4. New York's slug is new-york-city-ny, not new-york-ny. Unrecognised
slugs return a clean 404 → one honest ERROR row, never another city's
listings.
Anti-bot posture
None observed. An 8-profile TLS ladder (chrome124/131/145,
chrome99_android, safari17_0, firefox133/144, edge101) returned a full document
on the search page and the property page — cold, no warmup, no cookies, no
tokens. chrome99_android gets the same desktop document as everything else.
The actor still ships a rotating profile pool, a retry ladder and challenge-marker detection, and defaults to Apify Residential pinned to the US for cloud runs — container egress is a different posture than a home connection, and a target being clean today is not a guarantee.
The default request pacing (0.4s between requests, across all workers) is deliberately polite. An unthrottled crawl is how a WAF-free site stops being WAF-free.
Policy
RentCafe's robots.txt disallows the site's own filter query string
(?PriceMin=, ?PriceMax=, ?Bedroom=, ?Bathrooms=, ?PropertyType=,
?AmenitiesIds=, ?PetPolicy=, ?OrderBy=) as well as /search/ and
/details/. This actor never touches any of them: it uses the SEO path
form RentCafe publishes for crawlers (/apartments-for-rent/austin-tx/1-bedroom/),
and ?page= — which no rule disallows. Pasted query-string filter URLs are
refused rather than fetched.