# Zillow Scraper ($0.9 per 1000 results) (`igolaizola/zillow-scraper-ppe`) Actor

Zillow data extractor / API alternative. Scrape US listings at scale (buy, rent, sold) with rich fields and images. Use granular filters, sort, proxies. Export JSON/CSV to drive real-estate analytics, comps, market trends, and investor/agent leads.

- **URL**: https://apify.com/igolaizola/zillow-scraper-ppe.md
- **Developed by:** [Iñigo Garcia Olaizola](https://apify.com/igolaizola) (community)
- **Categories:** Real estate, Lead generation, Automation
- **Stats:** 822 total users, 186 monthly users, 99.9% runs succeeded, 28 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $0.0009 / result

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Zillow Scraper – U.S. Real-Estate Data (Buy / Rent / Sold)

Scrape Zillow listings for only 0.9$/1000 results 💸. Try it free!

### 🤖 What does Zillow Scraper do?

**Zillow Scraper** extracts residential listings from [zillow.com](https://www.zillow.com) for analysis, research, or lead generation.

It supports:

- 🏠 Properties **for sale** (`buy`)
- 🏡 Properties **for rent** (`rent`)
- 📉 **Sold** properties (`sold`)

You can scrape as many properties as you need in a single run. Other scrapers cap at 1,000 but ours doesn't.

### 💡 Why scrape Zillow?

Zillow is one of the largest U.S. real-estate portals with broad nationwide coverage. With this scraper, you can:

- 📈 Track price trends by city/ZIP/neighborhood
- 🔍 Monitor new listings, price drops, and time on market
- 🧭 Filter by home type, features (AC, pool, waterfront…), size, lot, year built, etc.
- 🎯 Build lead lists for agents, investors, data products, or market reports

### 🚀 How to use

1. **Add the actor** – In Apify, add **Zillow Scraper** to your account.
2. **Configure inputs** – Set `maxItems`, `location`, `operation`, and any filters below.
3. **Run the actor** – Click **Run**.
4. **Get results** – Download JSON/CSV from the **Dataset** tab when the run completes.

### 💳 Pricing

Apify's **Free plan** includes monthly credits good for small tests. For larger workloads, consider **Personal** or **Business** tiers for higher concurrency and usage limits.

### 📝 Input Parameters

Supply inputs as JSON. Fields mirror Zillow's filters where possible.

| Parameter                   |           Type |  Default | Description                                                                                                                                                                                                                                                                                                                  |
| --------------------------- | -------------: | -------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `maxItems`                  |        integer |   `1000` | **Required.** Max number of properties to scrape (`>= 1`). For `> 1000`, use `sortBy: "newest"`, `"lowPrice"`, or `"highPrice"` so the actor can walk past Zillow's 1,000-result window (default is `newest`).                                                                                                               |
| `location`                  |         string |          | Free-text location (city, ZIP, neighborhood, county). Optional when `latitude` and `longitude` are provided.                                                                                                                                                                                                                  |
| `locations`                 | array\<string> |          | Multiple free-text locations. When set, the actor searches each location in order instead of using `location`; `maxItems` applies globally across all locations.                                                                                                                                                             |
| `locationSelectionMode`     |         string |  `first` | How to choose from Zillow autocomplete results: `first` preserves the current behavior; `similarity` selects the candidate most similar to the input, useful for unit-level addresses.                                                                                                                                          |
| `latitude` / `longitude`    |         number |          | Center point for a radius search. Both values are required and take precedence over `location` and `locations`.                                                                                                                                                                                                              |
| `distanceMiles`             |        integer |     `20` | Radius around the coordinate point in miles. Zillow applies it as a server-side custom polygon.                                                                                                                                                                                                                              |
| `operation`                 |         string |    `buy` | One of: `buy`, `rent`, `sold`.                                                                                                                                                                                                                                                                                               |
| `sortBy`                    |         string | `newest` | `newest`, `relevance`, `recentlyChanged`, `highPrice`, `lowPrice`, `bedrooms`, `bathrooms`, `sqft`, `lotSize`, `yearBuilt`.                                                                                                                                                                                                  |
| `minPrice`                  |        integer |      `0` | Minimum price (`0` = any). For `rent`, price per week.                                                                                                                                                                                                                                                                       |
| `maxPrice`                  |        integer |      `0` | Maximum price (`0` = any). For `rent`, price per week.                                                                                                                                                                                                                                                                       |
| `minBeds`                   |        integer |      `0` | Minimum bedrooms (`-1` = studio, `0` = any).                                                                                                                                                                                                                                                                                 |
| `maxBeds`                   |        integer |      `0` | Maximum bedrooms (`-1` = studio, `0` = any).                                                                                                                                                                                                                                                                                 |
| `minBaths`                  |        integer |      `0` | Minimum bathrooms.                                                                                                                                                                                                                                                                                                           |
| `homeTypes`                 | array\<string> |          | Any of: `houses`, `townhomes`, `multifamily` (buy/sold), `condos`, `land` (buy/sold), `apartments`, `manufactured` (buy/sold).                                                                                                                                                                                               |
| `minSize`                   |         string |     `""` | Min interior sqft: `""`, `500`, `750`, `1000`, … `7500`.                                                                                                                                                                                                                                                                     |
| `maxSize`                   |         string |     `""` | Max interior sqft: same options as `minSize`.                                                                                                                                                                                                                                                                                |
| `minLotSize`                |         string |     `""` | Min lot: `1000-sqft`, `2000-sqft`, … `100-acre`.                                                                                                                                                                                                                                                                             |
| `maxLotSize`                |         string |     `""` | Max lot: same options as `minLotSize`.                                                                                                                                                                                                                                                                                       |
| `minYearBuilt`              |        integer |      `0` | Minimum year built (`0` = any).                                                                                                                                                                                                                                                                                              |
| `maxYearBuilt`              |        integer |      `0` | Maximum year built (`0` = any).                                                                                                                                                                                                                                                                                              |
| `airConditioning`           |        boolean |  `false` | Only listings with **AC**.                                                                                                                                                                                                                                                                                                   |
| `pool`                      |        boolean |  `false` | Only listings with **pool**.                                                                                                                                                                                                                                                                                                 |
| `waterfront`                |        boolean |  `false` | Only **waterfront** listings.                                                                                                                                                                                                                                                                                                |
| `singleStory`               |        boolean |  `false` | Only **single-story** homes.                                                                                                                                                                                                                                                                                                 |
| `basement`                  |        boolean |  `false` | Only listings **with basement**.                                                                                                                                                                                                                                                                                             |
| `views`                     | array\<string> |          | Any of: `city`, `mountain`, `park`, `water`.                                                                                                                                                                                                                                                                                 |
| `3dTour`                    |        boolean |  `false` | Only listings with a **3D/virtual tour**.                                                                                                                                                                                                                                                                                    |
| `timeOnZillow`              |         string |     `""` | `""` (any), `1d`, `1w`, `2w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`.                                                                                                                                                                                                                                                            |
| `minTimeOnZillow`           |         string |     `""` | Minimum listing age: `""` (any), `1d`, `1w`, `2w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`.                                                                                                                                                                                                                                       |
| `keywords`                  |         string |     `""` | Free-text keywords (e.g., `"garden, remodeled"`).                                                                                                                                                                                                                                                                            |
| `maxHoaFees`                |         string |     `""` | **Buy/Sold**: `""` (any), `0` (no HOA), `100`, `200`, … `2000` (USD per month).                                                                                                                                                                                                                                              |
| `parkingSpots`              |         string |     `""` | **Buy/Sold**: `""`, `1`, `2`, `3`, `4` (means 1+, 2+, …).                                                                                                                                                                                                                                                                    |
| `garage`                    |        boolean |  `false` | **Buy/Sold**: Only with **garage**.                                                                                                                                                                                                                                                                                          |
| `basementTypes`             | array\<string> |          | **Buy/Sold**: `finished`, `unfinished` (requires `basement: true`).                                                                                                                                                                                                                                                          |
| `agentListed`               |        boolean |   `true` | **Buy**: Include **agent-listed**.                                                                                                                                                                                                                                                                                           |
| `ownerPosted`               |        boolean |   `true` | **Buy**: Include **for-sale-by-owner**.                                                                                                                                                                                                                                                                                      |
| `newConstruction`           |        boolean |   `true` | **Buy**: Include **new construction**.                                                                                                                                                                                                                                                                                       |
| `foreclosure`               |        boolean |   `true` | **Buy**: Include **foreclosure (REO)** listings.                                                                                                                                                                                                                                                                             |
| `auction`                   |        boolean |   `true` | **Buy**: Include **auction** listings.                                                                                                                                                                                                                                                                                       |
| `foreclosed`                |        boolean |  `false` | **Buy**: Include **foreclosed** (bank-owned, may be listed soon).                                                                                                                                                                                                                                                            |
| `preForeclosure`            |        boolean |  `false` | **Buy**: Include **pre-foreclosure**.                                                                                                                                                                                                                                                                                        |
| `comingSoon`                |        boolean |   `true` | **Buy**: Include **Coming Soon**.                                                                                                                                                                                                                                                                                            |
| `priceDrop`                 |        boolean |  `false` | **Buy**: Only listings with **recent price drop**.                                                                                                                                                                                                                                                                           |
| `acceptingBackupOffers`     |        boolean |  `false` | **Buy**: Include **Accepting Backup Offers**.                                                                                                                                                                                                                                                                                |
| `pendingUnderContract`      |        boolean |  `false` | **Buy**: Include **Pending/Under Contract**.                                                                                                                                                                                                                                                                                 |
| `showcase`                  |        boolean |  `false` | **Buy**: Include **Zillow Showcase** premium listings.                                                                                                                                                                                                                                                                       |
| `openHouse`                 |        boolean |  `false` | **Buy**: Only with **Open House**.                                                                                                                                                                                                                                                                                           |
| `space`                     |         string |     `""` | **Rent**: `""` (any), `entirePlace`, `roomForRent`.                                                                                                                                                                                                                                                                          |
| `moveInDate`                |         string |          | **Rent**: `YYYY-MM-DD` availability date.                                                                                                                                                                                                                                                                                    |
| `hideNoMoveInDate`          |        boolean |  `false` | **Rent**: Hide listings without move-in date.                                                                                                                                                                                                                                                                                |
| `pets`                      | array\<string> |          | **Rent**: Any of `largeDogs`, `smallDogs`, `cats`, `notAllowed`.                                                                                                                                                                                                                                                             |
| `inUnitLaundry`             |        boolean |  `false` | **Rent**: In-unit laundry.                                                                                                                                                                                                                                                                                                   |
| `onSiteParking`             |        boolean |  `false` | **Rent**: On-site parking.                                                                                                                                                                                                                                                                                                   |
| `elevator`                  |        boolean |  `false` | **Rent**: Elevator.                                                                                                                                                                                                                                                                                                          |
| `highSpeedInternet`         |        boolean |  `false` | **Rent**: High-speed internet.                                                                                                                                                                                                                                                                                               |
| `furnished`                 |        boolean |  `false` | **Rent**: Furnished only.                                                                                                                                                                                                                                                                                                    |
| `outdoorSpace`              |        boolean |  `false` | **Rent**: Outdoor space.                                                                                                                                                                                                                                                                                                     |
| `utilitiesIncluded`         |        boolean |  `false` | **Rent**: Utilities included.                                                                                                                                                                                                                                                                                                |
| `hardwoodFloors`            |        boolean |  `false` | **Rent**: Hardwood floors.                                                                                                                                                                                                                                                                                                   |
| `disabilityAccess`          |        boolean |  `false` | **Rent**: Provider-marked accessible.                                                                                                                                                                                                                                                                                        |
| `incomeRestricted`          |        boolean |  `false` | **Rent**: Income-restricted listings.                                                                                                                                                                                                                                                                                        |
| `apartmentCommunity`        |        boolean |  `false` | **Rent**: Large **apartment communities** (≥ ~50 units).                                                                                                                                                                                                                                                                    |
| `acceptsZillowApplications` |        boolean |  `false` | **Rent**: Accepts applications via Zillow.                                                                                                                                                                                                                                                                                   |
| `tourScheduling`            |        boolean |  `false` | **Rent**: Tour scheduling via Zillow.                                                                                                                                                                                                                                                                                        |
| `shortTermLease`            |        boolean |  `false` | **Rent**: Short-term lease available.                                                                                                                                                                                                                                                                                        |
| `maxSoldDate`               |         string |     `""` | **Sold**: `""` (any), `1d`, `1w`, `2w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`.                                                                                                                                                                                                                                                  |
| `fetchDetails`              |        boolean |  `false` | Fetch full property details for each result and store them in a `_details` field. Increases cost and run time since it requires one extra request per property. Includes description, parcel number, zestimate, price/tax history, nearby homes, school assignments, walk/bike/transit scores, lot info, HOA fees, and more. |
| `flattenOutput`             |        boolean |  `false` | Convert nested result fields to first-level dot-path fields, such as `address.city` or `media.photos.0.url`. Useful for Apify dataset field exports, but it makes each output item larger.                                                                                                                                   |

#### Example inputs

**Buy — multiple locations:**

```json
{
  "maxItems": 25,
  "locations": ["Seattle, WA", "Austin, TX", "Miami, FL"],
  "operation": "buy",
  "sortBy": "newest"
}
```

**Buy — New York, condos/townhomes, price drop, newest:**

```json
{
  "maxItems": 60,
  "location": "New York, NY",
  "operation": "buy",
  "sortBy": "newest",
  "homeTypes": ["condos", "townhomes"],
  "minPrice": 400000,
  "maxPrice": 1500000,
  "minBeds": 2,
  "minBaths": 1,
  "airConditioning": true,
  "priceDrop": true,
  "timeOnZillow": "1m"
}
```

**Rent — Seattle, entire place, pets, move-in date:**

```json
{
  "maxItems": 80,
  "location": "Seattle, WA",
  "operation": "rent",
  "space": "entirePlace",
  "minPrice": 1500,
  "maxPrice": 3500,
  "minBeds": 1,
  "pets": ["smallDogs", "cats"],
  "inUnitLaundry": true,
  "onSiteParking": true,
  "moveInDate": "2025-10-01",
  "hideNoMoveInDate": true
}
```

**Sold — Phoenix, max sold age 6 months, lot ≥ 1/4 acre:**

```json
{
  "maxItems": 50,
  "location": "Phoenix, AZ",
  "operation": "sold",
  "sortBy": "recentlyChanged",
  "minLotSize": "1/4-acre",
  "maxSoldDate": "6m",
  "homeTypes": ["houses"]
}
```

**Buy — Austin with full details:**

```json
{
  "maxItems": 20,
  "location": "Austin, TX",
  "operation": "buy",
  "sortBy": "newest",
  "fetchDetails": true
}
```

### 📊 Output

Each dataset item is a normalized Zillow listing object. A typical item contains:

- **address**: `streetAddress`, `city`, `state`, `zipcode`
- **location**: `latitude`, `longitude`
- **price**: `value`, `pricePerSquareFoot`
- **bedrooms**, **bathrooms**, **livingArea**, **lotSizeWithUnit**, **yearBuilt**
- **listing** + **hdpView**: status, marketing, price, HDP deeplinks
- **media**: photo URLs (high-res), 3D/VR/video flags
- **estimates**: `zestimate`, `rentZestimate`
- **daysOnZillow**, **listingDateTimeOnZillow**, **bestGuessTimeZone**
- **flags**: `isShowcaseListing`, `isPreforeclosureAuction`, `zillowOwnedProperty`
- **url**: canonical listing URL (`https://www.zillow.com/homedetails/{zpid}_zpid/`)
- **hdpUrl**: address-based URL when available (e.g. `…/homedetails/123-Main-St-Austin-TX-78701/{zpid}_zpid/`); for community/new-construction listings this is omitted unless `fetchDetails` is enabled, in which case Zillow's exact URL (including `/community/…` paths) is used
- **zpid**: Zillow property ID

When `fetchDetails` is enabled, each item also includes a **`_details`** object with the full property data from Zillow's detail page:

- **description**: listing narrative text
- **resoFacts**: parcel number, year built, price/sqft, home type, parking, garage, tax assessed value, HOA fees, and more
- **priceHistory** / **taxHistory**: historical price and tax records
- **nearbyHomes**: nearby comparable listings
- **assignedSchools**: elementary, middle, and high school assignments
- **walkScore**, **bikeScore**, **transitScore**: neighborhood mobility scores
- **zestimate**, **rentZestimate**, **homeValueChartData**: valuation data
- **lotAreaValue** / **lotAreaUnits**: lot size
- **timeZone**, **county**, **countyFIPS**, **parcelId**
- **homeInsights**, **affordabilityEstimate**, **downPaymentAssistance**, and more

When `flattenOutput` is enabled, each dataset item is converted to first-level fields only. For example, `address.city` replaces `address: { city: ... }`, and array entries become fields like `media.photos.0.url`. This is recommended only when you need to select nested fields in Apify's export feature, because it increases the dataset item size.

Sample fragment (shortened):

```json
{
  "zpid": 32342867,
  "url": "https://www.zillow.com/homedetails/32342867_zpid/",
  "address": {
    "streetAddress": "52 Timber Ridge Dr",
    "city": "Staten Island",
    "state": "NY",
    "zipcode": "10306"
  },
  "price": { "value": 585000, "pricePerSquareFoot": 451 },
  "bedrooms": 3,
  "bathrooms": 2,
  "livingArea": 1297,
  "lotSizeWithUnit": { "lotSize": 1306.8, "lotSizeUnit": "squareFeet" },
  "yearBuilt": 1981,
  "estimates": { "zestimate": 587100, "rentZestimate": 3396 },
  "daysOnZillow": 5,
  "media": {
    "allPropertyPhotos": {
      "highResolution": ["https://photos.zillowstatic.com/fp/…-p_f.jpg"]
    },
    "hasVRModel": false,
    "hasVideos": false
  },
  "listing": { "listingStatus": "forSale", "marketingStatus": "active" },
  "hdpView": { "listingStatus": "forSale", "price": 585000 },
  "location": { "latitude": 40.555508, "longitude": -74.14253 },
  "bestGuessTimeZone": "America/New_York"
}
```

### 🔎 Notes & tips

- **Operations**: Some filters only apply to certain operations. For example, `space`, `pets`, `furnished`, `utilitiesIncluded` are **rent-only**; `basementTypes`, `garage`, `parkingSpots`, `maxHoaFees` are **buy/sold**.
- **Year built / sizes**: `0` or `""` means **no filter**.
- **Basement types**: Only considered if `basement: true`.
- **Price for rent**: Interpreted as **per week** in this actor to match your schema notes.
- **Sorting**: Zillow can adjust visibility by market; if a sort returns sparse results, try `relevance` or `newest`.
- **Rent output types**: Rent searches can return `property` and `propertyGroup` items. Use `_type` to distinguish them.
- **Why app count may be higher**: `propertyGroup` represents grouped/community listings (with `unitsGroup` summaries), so actor item counts can be lower than Zillow app unit-style counts.

### ⚖️ Legal & ethics

Web scraping may be subject to terms of service, IP rights, and privacy law. Ensure you have a legitimate purpose, rate-limit responsibly, and comply with the website's policies and applicable laws.

### 📜 Disclaimer

This Actor is an independent tool and is **not** affiliated with, endorsed by, or sponsored by Zillow, Inc., its brands, or subsidiaries.
All trademarks mentioned are the property of their respective owners.

# Actor input Schema

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

Maximum number of properties to scrape

## `location` (type: `string`):

Location to search for properties. Optional when latitude and longitude are provided. Ignored when Locations is provided.

## `latitude` (type: `number`):

Latitude of the center point for coordinate-based search. Use together with longitude. Coordinates take precedence over named locations.

## `longitude` (type: `number`):

Longitude of the center point for coordinate-based search. Use together with latitude.

## `distanceMiles` (type: `integer`):

Search radius around the latitude/longitude point, in miles. Zillow applies the radius as a server-side custom polygon.

## `locations` (type: `array`):

Locations to search for properties. When provided, the actor searches each location in order instead of using Location.

## `locationType` (type: `string`):

Type of location: state, county, city, neighborhood, borough, school, flex_region, address or zipcode. Leave empty to auto-detect.

## `locationSelectionMode` (type: `string`):

How to choose from Zillow's autocomplete results. First keeps the current behavior; similarity selects the candidate most similar to the input location, which is useful for unit-level addresses.

## `operation` (type: `string`):

Type of operation: buy, rent or sold

## `sortBy` (type: `string`):

Sorting method for results

## `minPrice` (type: `integer`):

Minimum price of the property (0 for any)

## `maxPrice` (type: `integer`):

Maximum price of the property (0 for any)

## `minBeds` (type: `integer`):

Minimum number of bedrooms (-1 for studio, 0 for any)

## `maxBeds` (type: `integer`):

Maximum number of bedrooms (-1 for studio, 0 for any)

## `minBaths` (type: `integer`):

Minimum number of bathrooms

## `homeTypes` (type: `array`):

Home types to search for

## `minSize` (type: `string`):

Minimum size

## `maxSize` (type: `string`):

Maximum size

## `minLotSize` (type: `string`):

Minimum lot size

## `maxLotSize` (type: `string`):

Maximum lot size

## `minYearBuilt` (type: `integer`):

Filter by minimum year built

## `maxYearBuilt` (type: `integer`):

Filter by maximum year built

## `airConditioning` (type: `boolean`):

Filter by properties with air conditioning

## `pool` (type: `boolean`):

Filter by properties with a pool

## `waterfront` (type: `boolean`):

Filter by waterfront properties

## `singleStory` (type: `boolean`):

Filter by single story properties

## `basement` (type: `boolean`):

Filter by properties with a basement

## `views` (type: `array`):

Filter by views

## `3dTour` (type: `boolean`):

To find listings that have a virtual touring experience, search with the 3D Tour filter.

## `timeOnZillow` (type: `string`):

Maximum time a listing has been on Zillow

## `minTimeOnZillow` (type: `string`):

Minimum time a listing has been on Zillow

## `keywords` (type: `string`):

Keywords to search for (maximum length is 99 characters)

## `maxHoaFees` (type: `string`):

Homeowners Association (HOA) fees are monthly or annual charges that cover the costs of maintaining and improving shared spaces.

## `parkingSpots` (type: `string`):

Filter by minimum number of parking spots

## `garage` (type: `boolean`):

Filter by properties with a garage

## `basementTypes` (type: `array`):

Filter by basement types

## `agentListed` (type: `boolean`):

If enabled, agent listed properties will be returned

## `ownerPosted` (type: `boolean`):

If enabled, owner posted properties will be returned

## `newConstruction` (type: `boolean`):

If enabled, new construction properties will be returned

## `foreclosure` (type: `boolean`):

These properties are currently listed for sale. They are owned by a bank or a lender who took ownership through foreclosure proceedings. These are also known as bank-owned or real estate owned (REO).

## `auction` (type: `boolean`):

If enabled, auction properties will be returned

## `foreclosed` (type: `boolean`):

These properties are owned by a bank or a lender who took ownership through foreclosure proceedings. They may soon be listed for sale.

## `preForeclosure` (type: `boolean`):

The lender initiated the foreclosure proceedings on these properties because the owner(s) were in default on their loan obligations. Pre-foreclosures also include properties for which a foreclosure auction is scheduled.

## `comingSoon` (type: `boolean`):

Coming Soon listings are homes that will soon be on the market. The listing agent for these homes has added a Coming Soon note to alert buyers in advance.

## `priceDrop` (type: `boolean`):

If enabled, properties with a recent price drop will be returned

## `acceptingBackupOffers` (type: `boolean`):

The seller has accepted an initial offer, but is still showing the home and taking backup offers from interested buyers.

## `pendingUnderContract` (type: `boolean`):

Sellers of these homes have accepted a buyers' offer, however, the home has not closed.

## `showcase` (type: `boolean`):

Experience homes before you ever step inside, with Zillow Showcase. These premium listings feature HD photos organized by room and 3D virtual tours.

## `openHouse` (type: `boolean`):

If enabled, properties with open house will be returned

## `space` (type: `string`):

Filter by type of rental space

## `moveInDate` (type: `string`):

Choose a move-in date to view listings available on or before that date

## `hideNoMoveInDate` (type: `boolean`):

If enabled, properties without a move-in date will be hidden

## `pets` (type: `array`):

Filter by pet policy

## `inUnitLaundry` (type: `boolean`):

If enabled, only properties with in-unit laundry will be returned

## `onSiteParking` (type: `boolean`):

If enabled, only properties with on-site parking will be returned

## `elevator` (type: `boolean`):

If enabled, only properties with an elevator will be returned

## `highSpeedInternet` (type: `boolean`):

If enabled, only properties with high-speed internet will be returned

## `furnished` (type: `boolean`):

Only include furnished properties (rent operation only)

## `outdoorSpace` (type: `boolean`):

If enabled, only properties with outdoor space will be returned

## `utilitiesIncluded` (type: `boolean`):

If enabled, only properties with utilities included will be returned

## `hardwoodFloors` (type: `boolean`):

If enabled, only properties with hardwood floors will be returned

## `disabilityAccess` (type: `boolean`):

Find rentals that the housing provider has identified as accessible for people with disabilities.

## `incomeRestricted` (type: `boolean`):

Find rentals with income restrictions. These homes have income caps that determine eligibility.

## `apartmentCommunity` (type: `boolean`):

Apartment Communities are larger properties that typically have extra amenities and at least 50 units.

## `acceptsZillowApplications` (type: `boolean`):

If enabled, only properties that accept applications through Zillow will be returned

## `tourScheduling` (type: `boolean`):

If enabled, only properties that allow tour scheduling through Zillow will be returned

## `shortTermLease` (type: `boolean`):

If enabled, only properties that offer short-term leases will be returned

## `maxSoldDate` (type: `string`):

Filter by maximum sold date

## `fetchDetails` (type: `boolean`):

When enabled, each result includes a `_details` object with the full property data: description, parcel number, price/tax history, nearby homes, school assignments, walk/bike/transit scores, lot info, zestimate, HOA fees, and more.

## `flattenOutput` (type: `boolean`):

When enabled, nested result fields are converted to first-level dot-path fields, such as `address.city` or `media.photos.0.url`. This can make Apify field exports easier but increases output size.

## Actor input object example

```json
{
  "maxItems": 1000,
  "location": "New York",
  "distanceMiles": 20,
  "locationType": "",
  "locationSelectionMode": "first",
  "operation": "buy",
  "sortBy": "newest",
  "minPrice": 0,
  "maxPrice": 0,
  "minBeds": 0,
  "maxBeds": 0,
  "minBaths": 0,
  "minSize": "",
  "maxSize": "",
  "minLotSize": "",
  "maxLotSize": "",
  "airConditioning": false,
  "pool": false,
  "waterfront": false,
  "singleStory": false,
  "basement": false,
  "3dTour": false,
  "timeOnZillow": "",
  "minTimeOnZillow": "",
  "maxHoaFees": "",
  "parkingSpots": "",
  "garage": false,
  "agentListed": true,
  "ownerPosted": true,
  "newConstruction": true,
  "foreclosure": true,
  "auction": true,
  "foreclosed": false,
  "preForeclosure": false,
  "comingSoon": true,
  "priceDrop": false,
  "acceptingBackupOffers": false,
  "pendingUnderContract": false,
  "showcase": false,
  "openHouse": false,
  "hideNoMoveInDate": false,
  "pets": [],
  "inUnitLaundry": false,
  "onSiteParking": false,
  "elevator": false,
  "highSpeedInternet": false,
  "furnished": false,
  "outdoorSpace": false,
  "utilitiesIncluded": false,
  "hardwoodFloors": false,
  "disabilityAccess": false,
  "incomeRestricted": false,
  "apartmentCommunity": false,
  "acceptsZillowApplications": false,
  "tourScheduling": false,
  "shortTermLease": false,
  "maxSoldDate": "",
  "fetchDetails": false,
  "flattenOutput": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "location": "New York",
    "keywords": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("igolaizola/zillow-scraper-ppe").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 = {
    "location": "New York",
    "keywords": "",
}

# Run the Actor and wait for it to finish
run = client.actor("igolaizola/zillow-scraper-ppe").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 '{
  "location": "New York",
  "keywords": ""
}' |
apify call igolaizola/zillow-scraper-ppe --silent --output-dataset

```

## MCP server setup

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

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/7EG6vc4LOoouPfk3t/builds/Y775AAgPeUVbH5G5X/openapi.json
