# Zumper Scraper 🔥 From $0.7/1K (`azzouzana/zumper-scraper`) Actor

From $0.7/1K 💰 Paste a Zumper search URL: city, neighborhood, price & bed filters included. Rent range, beds, baths, photos, amenities, phone, building name & listing URL. Optional full listing page: description, floor plans, agents, ratings. JSON/CSV/API. US rentals. 🚀

- **URL**: https://apify.com/azzouzana/zumper-scraper.md
- **Developed by:** [Azzouzana](https://apify.com/azzouzana) (community)
- **Categories:** Real estate, Lead generation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.70 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Zumper Rentals Scraper — Apartments, Houses & Rooms (By Search URL)

Collect rental listings from [Zumper](https://www.zumper.com) — apartments, houses, rooms, and more — starting from any search results page you already use on the site.

### 📚 How to scrape Zumper rental listings from any search URL

1. Go to [Zumper](https://www.zumper.com) and run your search (city, neighborhood, price range, number of bedrooms, pets, etc.).
2. Copy the URL from your browser’s address bar.
3. Paste it into **Search results page URL**.
4. Set how many listings you want (up to 15,000).
5. Run the actor.

#### Example Zumper search URLs — cities, neighborhoods, price, and beds

Apply filters on Zumper first (price, bedrooms, pets, etc.), then copy the URL from your browser — the scraper uses the same search you see on the site.

- **NYC — $2,000–$4,000/mo, 2+ bedrooms:** `https://www.zumper.com/apartments-for-rent/new-york-ny/price-2000,4000/beds-2`
- **Chelsea — $1,500–$3,500/mo, 1+ bedroom:** `https://www.zumper.com/apartments-for-rent/new-york-ny/chelsea/price-1500,3500/beds-1`
- **San Francisco — $2,500–$4,500/mo:** `https://www.zumper.com/apartments-for-rent/san-francisco-ca/price-2500,4500`

Use the search page URL, not a single building or apartment link.

### 🎯 Ready-made examples

Pick a **pre-built task** — **Search results page URL** and filters are already set. One click to run; export JSON or CSV for CRM or Sheets.

| Intent | Example task | Filters |
|--------|--------------|---------|
| Rent / live | [2 bedroom apartments for rent in New York under $4,000](https://apify.com/azzouzana/zumper-scraper/examples/2-bed-apartments-for-rent-new-york-under-4000?fpr=cbgdsf) | NYC · 2+ beds · $2K–$4K/mo |
| Rent / neighborhood | [1 bedroom apartments for rent in Chelsea, New York under $3,500](https://apify.com/azzouzana/zumper-scraper/examples/1-bed-apartments-for-rent-chelsea-new-york-under-3500?fpr=cbgdsf) | Chelsea · 1+ bed · $1.5K–$3.5K/mo |
| Rent / Bay Area | [Apartments for rent in San Francisco under $4,500](https://apify.com/azzouzana/zumper-scraper/examples/apartments-for-rent-san-francisco-under-4500?fpr=cbgdsf) | San Francisco · $2.5K–$4.5K/mo |
| Rent / budget | [1 bedroom apartments for rent in Austin, TX under $2,000](https://apify.com/azzouzana/zumper-scraper/examples/1-bed-apartments-for-rent-austin-tx-under-2000?fpr=cbgdsf) | Austin · 1+ bed · $1.2K–$2K/mo |
| Rent / family | [2 bedroom apartments for rent in Los Angeles under $3,500](https://apify.com/azzouzana/zumper-scraper/examples/2-bed-apartments-for-rent-los-angeles-under-3500?fpr=cbgdsf) | Los Angeles · 2+ beds · $2K–$3.5K/mo |
| Research / leads | [Chicago apartments for rent with floor plans and photos](https://apify.com/azzouzana/zumper-scraper/examples/apartments-for-rent-chicago-with-floor-plans-and-photos?fpr=cbgdsf) | Chicago · 1+ bed · full listing details on |

***

### 🛠️ Input settings — search URL, max items, and fetch listing details

| Setting | What it does |
| -------- | ------------- |
| **Search results page URL** | The Zumper search page you copied (required) |
| **Max items** | How many listings to collect (default: 500) |
| **Fetch listing details** | Off by default. Turn on to also get the full listing page: long description, all photos, every floor plan with prices, contact info, and ratings. Uses extra credits per listing page fetched. |

### 🤩 What you get — rent prices, photos, amenities, contacts, and floor plans

Every row is one rental listing from your search. You can export to JSON, CSV, Excel, or connect the dataset to your own tools.

Typical fields include:

- Building and unit name
- Full address and neighborhood
- Rent range (min / max)
- Bedrooms and bathrooms
- Phone number and property manager name
- Amenities (gym, laundry, parking, etc.)
- Photos
- Link to the listing on Zumper
- Rating

With **Fetch listing details** enabled, you also get a **listingDetails** section with the full property description, more photos, and a list of available units (floor plans) with individual prices.

### 🧐 Sample JSON output — Zumper apartment listing with listingDetails

```json
{
  "listingId": 64229807,
  "buildingName": "Westmark",
  "title": "1 Bedroom - 1205",
  "address": "395 Carroll Street",
  "city": "Brooklyn",
  "state": "NY",
  "zipcode": "11231",
  "minPrice": 3257,
  "maxPrice": 5974,
  "minBedrooms": 0,
  "maxBedrooms": 2,
  "minBathrooms": 0,
  "maxBathrooms": 2,
  "floorplanCount": 9,
  "phone": "(646) 572-4571",
  "agentName": "Westmark Apartments",
  "rating": 9.4,
  "amenityTags": [
    "Natural Light",
    "Stainless Steel Appliances",
    "Kitchen Island"
  ],
  "buildingAmenityTags": [
    "Fitness Center",
    "Rooftop Terraces",
    "Yoga Studio",
    "Resident Lounge"
  ],
  "imageUrls": [
    "https://img.zumpercdn.com/895146878/1280x960",
    "https://img.zumpercdn.com/895146877/1280x960"
  ],
  "listingUrl": "https://www.zumper.com/apartment-buildings/p1598893/westmark-gowanus-new-york-ny",
  "searchUrl": "https://www.zumper.com/apartments-for-rent/new-york-ny/price-2000,4000/beds-2",
  "listingDetails": {
    "name": "Westmark",
    "description": "Layering the historic charm of Brooklyn with the creative energy of Gowanus, Westmark is a community fashioned with a true sense of home...",
    "formattedAddress": "395 Carroll Street, Brooklyn, NY 11231, USA",
    "phone": "(646) 572-4571",
    "mediaUrls": [
      "https://img.zumpercdn.com/895146878/1280x960",
      "https://img.zumpercdn.com/895146877/1280x960"
    ],
    "floorplans": [
      {
        "title": "Studio - 512",
        "bedrooms": 0,
        "bathrooms": 0,
        "minPrice": 3257,
        "maxPrice": 3257,
        "imageUrls": [
          "https://img.zumpercdn.com/895146923/1280x960"
        ]
      },
      {
        "title": "1 Bedroom - 1205",
        "bedrooms": 1,
        "bathrooms": 1,
        "minPrice": 3926,
        "maxPrice": 3926,
        "imageUrls": [
          "https://img.zumpercdn.com/895153721/1280x960"
        ]
      }
    ],
    "ratings": {
      "category_0": 9.4,
      "date": "2026-04-30"
    },
    "agents": [
      {
        "name": "Westmark Apartments",
        "email": "16061714@zump.co"
      }
    ]
  }
}
```

The **listingDetails** block only appears when **Fetch listing details** is turned on. Without it, you still get prices, photos, amenities, and links from the search results.

### 🆓 Free tier limitations

On the **free Apify plan**:

- Up to **5 results** per run
- **5 runs** per day (UTC)
- At least **1 minute** between runs

[Upgrade for higher limits](https://apify.com/pricing?fpr=cbgdsf).

### 💡 Tips for scraping Zumper apartments, houses, and rooms efficiently

- Set your filters on Zumper first, then copy the URL — the scraper uses the same search you see in the browser.
- Start with a small **Max items** (e.g. 25) to check the data, then scale up.
- Turn on **Fetch listing details** when you need descriptions, all units in a building, or extra photos — it takes longer but returns much richer data.

***

### ❓ FAQ — Zumper search URLs, neighborhoods, listing details, and legality

**What URLs work?**\
Any Zumper **search results** page — city, neighborhood, or with filters already applied (price, beds, pets, etc.). Paste the URL from your browser after searching. Single building or apartment links are not supported as input.

**Can I scrape a specific neighborhood?**\
Yes. Run the search on Zumper (e.g. Chelsea in New York with a price range and bed count), copy the URL, and paste it here. Example: `https://www.zumper.com/apartments-for-rent/new-york-ny/chelsea/price-1500,3500/beds-1`

**How many listings can I get?**\
Up to 15,000 per run, or fewer if you set a lower **Max items**. Large cities like New York have thousands of results available.

**What does “Fetch listing details” do?**\
When turned off (default), you get everything visible on the search results: price, beds, photos, amenities, phone, and links. When turned on, the scraper also opens each listing page for the full description, all floor plans with prices, extra photos, agents, and ratings. This uses additional credits per listing page.

**Do I get phone numbers and photos?**\
Yes. Search results include phone numbers (when listed), photo URLs, and amenity lists. With **Fetch listing details**, you typically get more photos and full unit-level pricing.

**Apartments, houses, and rooms?**\
Yes — use the same search URL you would on Zumper for apartments, houses, rooms, condos, or townhouses.

**Is it legal to scrape Zumper?**\
Scraping publicly available listing data (prices, addresses, photos, descriptions) is generally allowed, but you must use the data responsibly and follow Zumper’s terms of use. See [Apify’s guide on web scraping legality](https://blog.apify.com/is-web-scraping-legal?fpr=cbgdsf) for more context.

***

### 📬 Contact — custom Zumper scraper, new features, or project help

**Need a custom solution, a new feature, or help with your project?**\
We’d love to hear from you.

- **Discord**: `@azzouzana`
- **Email**: <labs@azzouzana.com>

***

### ⚠️ Disclaimer — not affiliated with Zumper or PadMapper

This actor is an **independent tool** and is **not affiliated with, endorsed by, or sponsored by** Zumper, PadMapper, or any related companies. **Zumper** and related marks are trademarks of their respective owners.

The actor collects **publicly visible** rental listing data from search and listing pages. It does not log in on your behalf or access private account areas.

You are responsible for using exported data in line with **Zumper’s terms of use**, applicable **data-protection laws**, and your local regulations.

***

### 🔎 SEO keywords — Zumper scraper, rental listings, apartments for rent

Zumper scraper, Zumper apartments scraper, scrape Zumper listings, Zumper rental data, apartments for rent New York, Zumper to JSON, Zumper to CSV, rental listings API, apartment search scraper, neighborhood rentals, rent prices scraper, floor plans Zumper, Apify Zumper actor, US rental market data

# Actor input Schema

## `startUrl` (type: `string`):

Zumper search URL, e.g. https://www.zumper.com/apartments-for-rent/new-york-ny or a neighborhood URL.

## `maxItems` (type: `integer`):

Maximum number of listings to scrape.

## `fetchListingDetails` (type: `boolean`):

Also fetch each listing detail page for full description, all floor plans, extra photos, agents, ratings, and walk score. Triggers a separate listing-detail-fetched billing event per unique detail page.

## Actor input object example

```json
{
  "startUrl": "https://www.zumper.com/apartments-for-rent/new-york-ny",
  "maxItems": 500,
  "fetchListingDetails": false
}
```

# Actor output Schema

## `listings` (type: `string`):

All scraped Zumper listings with rent range, beds, baths, address, photos, amenities, phone, and optional listingDetails (description, floor plans).

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrl": "https://www.zumper.com/apartments-for-rent/new-york-ny",
    "maxItems": 500
};

// Run the Actor and wait for it to finish
const run = await client.actor("azzouzana/zumper-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrl": "https://www.zumper.com/apartments-for-rent/new-york-ny",
    "maxItems": 500,
}

# Run the Actor and wait for it to finish
run = client.actor("azzouzana/zumper-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrl": "https://www.zumper.com/apartments-for-rent/new-york-ny",
  "maxItems": 500
}' |
apify call azzouzana/zumper-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,azzouzana/zumper-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/wQiAxcyIyfJp3q06m/builds/X4pxrudRlfRUebTC6/openapi.json
