Zumper Scraper — US Apartments & Houses for Rent avatar

Zumper Scraper — US Apartments & Houses for Rent

Pricing

from $4.00 / 1,000 listing scrapeds

Go to Apify Store
Zumper Scraper — US Apartments & Houses for Rent

Zumper Scraper — US Apartments & Houses for Rent

Scrape Zumper rental listings by US city, Zumper search URL, or ZIP-adjacent area: rent price range, beds, baths, square feet, address, geo, building name, images, and listing URL. Auto-paginates past Zumper's 200-per-view cap via map-tiling. HTTP-only, fast, no login. PPE. MCP-ready.

Pricing

from $4.00 / 1,000 listing scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Share

Scrape rental listings from Zumper (zumper.com), one of the largest US apartment and house rental marketplaces. Give it a city or a Zumper search URL and get back a clean, structured dataset of every listing on the map — rent price range, bedrooms, bathrooms, square footage, address, geo-coordinates, building name, and the listing URL. HTTP-only and fast: no browser, no login, no cookies.

What you get

One record per rental listing (building/property), with these fields:

FieldDescription
buildingNameProperty / building name (e.g. "Camden Stoneleigh")
address, city, state, zipcodeStreet address and location
neighborhoodNeighborhood name when Zumper provides it
latitude, longitudeMap coordinates
minPrice, maxPriceMonthly rent range in USD across all floorplans
minBedrooms, maxBedroomsBedroom range (0 = studio)
minBathrooms, maxBathroomsBathroom range
minSquareFeet, maxSquareFeetSquare-footage range when available
floorplanCountNumber of distinct floorplans in the building
isHousetrue for houses/single-family, false for apartment buildings
hasFeesWhether Zumper flags application/other fees
imageCount, imageIdsPhoto count and raw Zumper image IDs
featureCodesZumper amenity/feature codes
listedAt, modifiedAtISO 8601 timestamps
propertyUrlAbsolute Zumper listing URL (photos, floorplans, contact)
listingId, buildingId, citySlugStable identifiers

When to use it

  • Renters & relocation — pull every current listing in a city into a spreadsheet and sort by price, beds, or location.
  • PropTech & real-estate analysts — track rent ranges, inventory counts, and new listings across markets.
  • Lead generation — build lists of rental buildings and property managers by city.
  • AI agents (MCP) — a single, structured tool call: city in, JSON rentals out.

Not for: individual property deep-dives with full amenity text (use the propertyUrl), or non-US markets (Zumper is US-focused).

Pricing

Pay-per-event:

  • Actor start — $0.00005 per run.
  • Listing scraped — $0.004 per rental listing returned.

A 200-listing run costs about $0.80. Billing is hard-capped at your Max listings value, and the run logs the maximum possible cost before it charges anything.

Input

InputDescription
locationUS city as "Austin, TX" (or a Zumper slug like austin-tx).
startUrlsOne or more Zumper search URLs (e.g. https://www.zumper.com/apartments-for-rent/chicago-il). Merged with location.
maxResultsCost cap / max listings (default 200, up to 20000).
minPrice, maxPriceMonthly-rent band filter (USD).
minBedrooms, maxBedroomsBedroom-count filter.
proxyConfigurationDefaults to Apify datacenter US (cheapest; Zumper's API allows it).

Example input

{
"location": "Austin, TX",
"maxResults": 500,
"minPrice": 1200,
"maxPrice": 3000,
"minBedrooms": 1
}

Multiple cities

{
"startUrls": [
"https://www.zumper.com/apartments-for-rent/chicago-il",
"https://www.zumper.com/apartments-for-rent/miami-fl"
],
"maxResults": 1000
}

How it works

  1. Your location/URL is resolved to a Zumper city slug (austin-tx).
  2. The actor fetches the city's GeoJSON boundary and reduces it to a bounding box.
  3. It queries Zumper's internal maplist/pins API for that box. Zumper caps each response at 200 listings, and returns a matching total for the box.
  4. When a box holds more than 200 listings, the actor quadtree-splits it into four sub-boxes and recurses — so it paginates far past the 200-per-view cap and covers the whole city.
  5. Listings are deduped by ID, filtered client-side (price/beds), and streamed to the dataset until maxResults is reached.

Usage from the API

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~zumper-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"location":"Austin, TX","maxResults":300}'
from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("khadinakbar/zumper-scraper").call(
run_input={"location": "Austin, TX", "maxResults": 300}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["buildingName"], item["minPrice"], item["maxPrice"])

MCP / AI agents

This actor is MCP-ready and exposed as apify--zumper-scraper in the Apify MCP server. It takes a narrow input (city or URL) and returns a compact, flat JSON record per listing — ideal for tool use by Claude, GPT, and other agents.

Part of a real-estate scraping cluster:

FAQ

Does it need a login or cookies? No. It uses Zumper's public internal API over plain HTTP.

Why is a big city capped at my Max listings? To control cost. Raise maxResults to go deeper; map-tiling will paginate automatically.

Are the numbers exact? Rent, beds, baths, and sqft are reported as the ranges Zumper publishes across a building's floorplans. Open the propertyUrl for per-unit detail.

This actor collects only publicly available data from Zumper's website for lawful purposes such as market research and personal use. You are responsible for how you use the data, including compliance with Zumper's Terms of Service and applicable laws (e.g. GDPR/CCPA). It does not collect personal data or bypass any login.