Dedicated ScrapersApartments.com Scraper API
Apartments.com logoDedicated Apartments.com API

Apartments.com Scraper API — Rental Listings with Unit-Level Pricing

The fastest way to start scraping Apartments.com at scale. Structured JSON for rental search and full property detail — including every individual rentable unit with its own rent, beds, baths, square footage and availability date, not just a property\u2019s advertised range. Anti-bot bypass built in. No Apartments.com account.

USCoverage
3Endpoints
Unit-levelRent, beds, sqft, availability
~2sTypical response

No credit card required · PAYG credits never expire

Search Apartments.com Rentals
# Search 1-bed rentals in Kansas City
import scrapebadger

client = scrapebadger.ScrapeBadger("sb_live_...")

results = client.apartments.search(
    location="kansas-city-mo",
    beds=1
)
200 OK1.9s · 5 credits
{
  "property_id": 12345678,
  "street_line": "1200 Barton Hills Dr",
  "city": "Austin", "state": "TX",
  "price": 675000,
  "beds": 3, "baths": 2, "sqft": 1620,
  "days_on_market": 6
}
API Reference

Apartments.com API — 5 Dedicated Endpoints

Structured JSON responses with normalized data models. No HTML parsing. No proxy management. No Apartments.com API key.

GET
/v1/apartments/search
Search rentals by location with bedroom and price filters — 40 cards a page
5 cr / req
GET
/v1/apartments/property?url=
Floor plans plus every rentable unit’s rent, beds, baths, sqft and availability
5 cr / req
GET
/v1/apartments/properties/{slug}/{id}
The same detail addressed by SEO slug and 7-character listing key
5 cr / req
Response Schema

Every Field You Need, Ready to Use

All fields are normalized from Apartments.com’s server-rendered pages — no browser, no HTML for you to parse. Floor plans and their units come pre-parsed and nested, plus a flattened units array across the whole property. Availability is returned verbatim (“Now”, “Sep 3”): the site renders no year, so it is deliberately not converted to a date.

Property

property_idstringapartments.com listing key
namestringProperty name
address_linestringFull address as rendered
city / state / postal_codestringSplit address components
latitude / longitudefloatGeo coordinates
phonestringLeasing phone number
rent_range_textstringAdvertised range, e.g. $1,288 - $5,412
beds_textstringAdvertised bed range, e.g. 1 - 3 bd
amenitiesarrayAmenity labels, deduplicated
office_hoursarrayLeasing-office hours
photosarrayGallery image URLs
floor_plansarrayModels with price range, beds/baths, sqft and their units
unitsarrayEvery unit across every floor plan, flattened
total_units_availableintegerCount of individually-listed units

Unit

unit_numberstringUnit label, e.g. 8625-2231
rentintegerThe advertised monthly rent — use this one
max_term_rentintegerRaw data-maxrent (~2x advertised, an upper bound across lease terms)
bedsfloatBedrooms — 0.0 for a studio
bathsfloatBathrooms
sqftintegerSquare footage
available_textstringAvailability verbatim — "Now", "Sep 3"
model_namestringFloor plan this unit belongs to
apply_now_urlstringDirect application link when offered
photo_countintegerPhotos attached to the unit
Coverage

United States

Both countries are served from apartments.com behind a US residential proxy. There is no separate market or currency parameter to manage.

🇺🇸US
Map-bound tiling: Every search response returns the map_bounds it covered, so you can subdivide dense metros with the north/south/east/west parameters and exhaust a market’s full inventory past Apartments.com’s per-query result cap.
How it works

From API call to clean JSON in seconds

No proxy setup. No session management. No anti-bot configuration.

1

Send a request

Call any Apartments.com endpoint with your API key — a location slug to search, or a property URL for full unit-level detail. REST or SDK.

2

We handle the hard parts

ScrapeBadger routes the request through a residential proxy with Chrome impersonation, detects blocks, and falls back to a real browser when needed.

3

Get structured JSON

Receive normalized JSON with floor plans, per-unit rent and availability, amenities and photo links — ready to store, analyse, or pipe into your application.

Use Cases

What Developers Build with Apartments.com Data

Scraping Apartments.com gives you real rental-market signals — asking rent per unit, unit mix by beds and square footage, and how availability moves across a market.

Rent comps & pricing

Pull unit-level rents across a market to build true comparables — the actual asking rent per unit, per floor plan, not just a property’s advertised range.

Availability monitoring

Track which units come on and off the market and when they become available to spot absorption rates and seasonal turnover.

Multifamily research

Assemble unit mixes by beds, baths and square footage across a portfolio or submarket to benchmark rent per square foot.

Renter-facing products

Power search and alerting in a rental app with live listings, amenities, photos and per-unit availability dates.

AI training datasets

Collect structured rental data — unit specs, amenities, descriptions and photos — for pricing, classification and recommendation models.

Lead & inventory pipelines

Feed newly-available units and price changes into CRM and lead-gen tooling, filtered by bedroom count and rent band.

Pricing

Pay Per Request. Credits Never Expire.

You only pay for successful responses — failed requests are always free. PAYG credits never expire; volume subscription tiers reduce per-credit cost further.

EndpointCredits / requestPAYGSubscription
Search Listings /search5 credits
Property Detail /property?url=5 credits
Property by slug + id /properties/{slug}/{id}5 credits

See the full plan comparison on the pricing page — subscription tiers step down per-credit cost beyond the cheapest column shown above.

Free trial
1,000 credits free
= 200 search requests
Credits expire
Never
Buy once, use anytime
Failed requests
Always free
Pay for success only
Live cost estimator
Credits per request5
Total credits needed5,000
Loading plans…
Why ScrapeBadger

Built for Reliability at Scale

ScrapeBadger's Apartments.com Scraper API handles everything Apartments.com throws at automated requests — so your pipeline keeps running.

Unit-level pricing, not just ranges

Most rental data stops at "$1,288 – $5,412". This returns every individual rentable unit with its own rent, beds, baths, square footage and availability date — the granularity rent comps actually need.

Anti-bot bypass included

apartments.com sits behind Akamai Bot Manager. ScrapeBadger handles fingerprinting, exit rotation and block detection automatically — no proxies or CAPTCHAs on your end.

No JavaScript rendering needed

The whole page is server-rendered, so responses come back in roughly two seconds with no browser in the path — far faster and cheaper than a headless-browser approach.

Structured JSON, no parsing

Normalized typed JSON — no HTML to parse and no fragile CSS selectors that break when apartments.com restyles its unit grid.

Pay per success only

Credits are deducted only for successful responses. A blocked request returns 422 and costs nothing.

Python & Node.js SDKs

Official typed SDKs for Python and Node.js/TypeScript, plus a CLI and hosted MCP server. Or call the REST API directly from any language.

Code Examples

Simple Integration. Any Language.

Get started in minutes with Python, Node.js, or plain HTTP requests.

The scrapebadger Python library wraps the Apartments.com API with typed methods. Install with pip install scrapebadger, then start scraping Apartments.com in a few lines of code.

Python — Search + Detail
from scrapebadger import ScrapeBadger

client = ScrapeBadger("sb_live_...")

# Search 1-bed rentals in Kansas City under $1,500
results = client.apartments.search(
    location="Austin, TX",
    price_max=700000,
)

# Get the full detail for the first few results
for home in results.results[:3]:
    detail = client.apartments.property(property_id=home.property_id)
    print(unit.unit_number, unit.rent, unit.available_text)
Node.js — Unit-level pricing
import ScrapeBadger from 'scrapebadger'

const client = new ScrapeBadger({
  apiKey: 'sb_live_...'
})

// Pull every rentable unit with its own rent and availability
const { property } = await client.apartments.property({
  propertyId: '12345678',
})

prop.units.forEach((u) => console.log(u.unit_number, u.rent, u.available_text))
for (const event of property.priceHistory) {
  console.log(event.date, event.event, event.price)
}
FAQ

Frequently Asked Questions

Common questions about scraping Apartments.com with the API — Python, Node.js, or REST.

Do I need an apartments.com account or API key?

No. You only need a ScrapeBadger API key. There is no apartments.com developer programme and no upstream credentials are involved.

What is the difference between rent and max_term_rent?

Use rent. It is the advertised monthly price the site shows a renter. max_term_rent is apartments.com’s raw data-maxrent attribute, which measures roughly twice the advertised rent and appears to be an upper bound across lease terms — we expose it unparsed for completeness, but it is not the rent.

How do I find a location slug?

It is the segment right after the domain in apartments.com’s own URLs — kansas-city-mo, new-york-ny, austin-tx — or a ZIP code such as 64108.

Why do some properties return zero units?

Some properties advertise floor plans rather than individual units. Those return valid plan-level beds, baths, rent and square footage with units_available of 0. That is the site’s own layout, not missing data.

Is availability a real date?

It is returned verbatim as text — "Now", "Sep 3". apartments.com renders no year, so converting it to a timestamp would mean guessing the rollover. We leave it as text deliberately.

How many results does a search return?

Up to 40 property cards per page, with pages 1 to 28. The response includes the site’s own total so you know how deep the result set goes.

Plans & subscriptions

Bigger volume? Save up to 64%

Per-request credit costs are listed above. For higher monthly volume, subscription tiers reduce the per-credit rate substantially. All Apartments.com endpoints — search and property detail with unit-level pricing — are included on every plan.

Get started

Start Scraping Apartments.com Today

1,000 free credits. No credit card. Get your API key in under a minute.

PAYG credits never expire · Pay only for successful requests · US coverage