Apartments.com Scraper API
Search US rental listings and pull unit-level inventory — not just a property’s advertised range, but every individual rentable unit with its own rent, beds, baths, square footage and availability date. Authentication and anti-bot bypass are handled automatically.Key Features
Unit-Level Pricing
Every rentable unit with its own rent, beds, baths, sqft and availability date — not just the property’s advertised range.
Floor Plans
Each floor-plan model with its price range, bed/bath count, square footage and the units belonging to it.
Location Search
40 property cards a page, filterable by bedroom count and price. Pages
1-28.Property Detail
Name, full address with city/state/ZIP, geo coordinates, phone, amenities, office hours and photo gallery.
No JS Rendering
apartments.com is fully server-rendered, so responses come back in ~2 seconds with no browser in the path.
Anti-Bot Bypass
apartments.com sits behind Akamai Bot Manager. ScrapeBadger clears it automatically — no proxies or CAPTCHAs to manage.
Coverage
Single market: apartments.com (US, USD, en-US).Endpoints
Search Filters
Every filter below was verified against live result counts. Measured onkansas-city-mo (700 properties unfiltered):
apartments.com also renders a pet filter, but it returns the unfiltered total, so it is deliberately not exposed — a filter that silently does nothing is worse than no filter.
Quickstart
Finding a location slug
location is the slug apartments.com uses in its own URLs — the segment right after the domain.
Notes on the data
Availability is text, not a date
Availability is text, not a date
available_text is verbatim as rendered — "Now", "Sep 3". The site prints no year, so converting it to a timestamp would mean guessing the rollover. It is left as text deliberately.Some properties list plans without units
Some properties list plans without units
A floor plan with
units_available: 0 and valid beds/baths/rent/sqft is the site’s own layout for that property, not missing data. Those properties advertise plans rather than individual units.Search cards are summaries
Search cards are summaries
A search card carries a rent/bed rollup (
"1 Bed", "$1,559+"), not per-unit inventory. Pass the card’s url to the property endpoint for units.Do not use render_js on apartments.com
Do not use render_js on apartments.com
If you scrape apartments.com through the general Web Scraping API instead of this one, do not pass
render_js: true. The whole page is server-rendered, so JS rendering only forces the slow browser path — 100+ seconds per page, which can exceed the CDN timeout and return a 524.
