# Zillow ZIP Code Scraper (`unfenced-group/zillow-zip-scraper`) Actor

Scrape Zillow by ZIP code: for sale, rent, sold. 55 filters, map tiling, price history. $0.80/1K results — the lowest price on Apify, cheaper than any alternative.

- **URL**: https://apify.com/unfenced-group/zillow-zip-scraper.md
- **Developed by:** [Unfenced Group](https://apify.com/unfenced-group) (community)
- **Categories:** Real estate
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.80 / 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.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Zillow ZIP Code Scraper

![zillow-zip-scraper](https://api.apify.com/v2/key-value-stores/lJlifu6C8YQfZMPKE/records/zillow-zip-scraper)

![Banner](https://api.apify.com/v2/key-value-stores/2z7xggEcMVsLvHvb9/records/banner.png)

Extract US real estate listings from Zillow by ZIP code — for sale, for rent, or recently sold. **$1.50 per 1,000 listings.** No API key required.

Built by **unfenced-group** — the same team behind 280+ job board and real estate scrapers in the Apify Store.

---

### Why this scraper?

#### 🎯 ZIP code native input
Type any US ZIP code directly — no need to construct search URLs or navigate Zillow's interface first. Batch multiple ZIP codes in one run.

#### 🚫 Zero silent failures
Unlike other Zillow scrapers that return empty datasets with no error, this scraper fails loudly with a clear message when no results are found — so you always know what happened.

#### 🗂️ 40+ input filters
Price range, beds, baths, square footage, year built, days on market, property type, listing sub-type (new construction, FSBO, coming soon, foreclosure), amenities (pool, garage, A/C, waterfront), and full rental-specific filters.

#### 📄 50+ output fields per listing
ZPID, full address, coordinates, price, Zestimate, rent Zestimate, tax assessed value, beds, baths, living area, home type, listing status, days on market, price change history, open house times, broker name, photos, and more.

#### 📑 Automatic pagination
Dense markets (NYC, LA) return 100+ listings per ZIP. The scraper automatically pages through all results — no result cap from Zillow's search limits.

#### 📦 Multi-ZIP batch runs
Scrape 1, 10, or 100 ZIP codes in a single run. Results are automatically deduplicated across ZIPs.

---

### Input parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `zipCodes` | array | required | US ZIP codes to search, e.g. `["90210", "10001"]` |
| `operationType` | string | `"sale"` | `"sale"`, `"rent"`, or `"sold"` |
| `maxItems` | integer | `0` | Max listings total across all ZIPs. `0` = unlimited |
| `fetchDetails` | boolean | `false` | Fetch detail page for price history, schools, walk scores |
| `minPrice` / `maxPrice` | integer | `0` | Sale price range in USD |
| `rentMin` / `rentMax` | integer | `0` | Monthly rent range |
| `bedsMin` / `bedsMax` | integer | `0` | Bedroom count range |
| `bathsMin` | integer | `0` | Minimum bathrooms |
| `sqftMin` / `sqftMax` | integer | `0` | Living area range |
| `yearBuiltMin` / `yearBuiltMax` | integer | `0` | Year built range |
| `daysOnZillow` | string | `""` | Listing age: `"1"`, `"7"`, `"14"`, `"30"`, `"90"`, `"6m"`, `"12m"` |
| `maxHoa` | integer | `0` | Max monthly HOA fee |
| `homeTypes` | array | `[]` | `houses`, `townhomes`, `condos`, `multifamily`, `land`, `apartments`, `manufactured` |
| `sortBy` | string | `"days"` | `days`, `priceHigh`, `priceLow`, `sqft`, `yearBuilt`, `relevance` |
| `keywords` | string | `""` | Keyword filter, e.g. `"pool, ocean view"` |
| `includeNewConstruction` | boolean | `true` | Include new construction listings |
| `includeForeclosures` | boolean | `true` | Include foreclosures |
| `includeComingSoon` | boolean | `true` | Include coming-soon listings |
| `includeFSBO` | boolean | `true` | Include For Sale By Owner |
| `mustHavePool` | boolean | `false` | Pool required |
| `mustHaveGarage` | boolean | `false` | Garage required |
| `mustHaveAC` | boolean | `false` | Air conditioning required |
| `waterfront` | boolean | `false` | Waterfront only |
| `openHouseOnly` | boolean | `false` | Open house scheduled |
| `priceReduced` | boolean | `false` | Price-reduced listings only |
| `petsAllowed` | boolean | `false` | Pets allowed (rent only) |
| `inUnitLaundry` | boolean | `false` | In-unit laundry (rent only) |
| `proxyConfiguration` | object | RESIDENTIAL | Proxy settings — leave as default |

---

### Output schema

#### Always present

| Field | Type | Description |
|-------|------|-------------|
| `zpid` | string | Zillow Property ID — unique identifier |
| `url` | string | Full Zillow listing URL |
| `address` | string | Full formatted address |
| `streetAddress` / `city` / `state` / `zipcode` | string | Address components |
| `latitude` / `longitude` | number | GPS coordinates |
| `price` | number | Listing price in USD |
| `priceText` | string | Formatted price, e.g. `",250,000"` |
| `pricePerSqft` | number | Price per square foot |
| `currency` | string | Always `"USD"` |
| `zestimate` | number | Zillow automated valuation |
| `rentZestimate` | number | Zillow rent estimate |
| `taxAssessedValue` | number | Most recent tax assessed value |
| `beds` / `baths` / `livingArea` | number | Bedroom, bathroom counts; sqft |
| `homeType` | string | `SINGLE_FAMILY`, `CONDO`, `TOWNHOUSE`, etc. |
| `listingStatus` | string | `FOR_SALE`, `FOR_RENT`, `RECENTLY_SOLD` |
| `statusText` | string | Display status text |
| `daysOnZillow` | number | Days since listing was posted |
| `priceChange` | number | Last price change (negative = reduction) |
| `priceChangedDate` | string | ISO date of last price change |
| `dateSold` | string | ISO date sold (sold listings only) |
| `isNewConstruction` | boolean | New construction flag |
| `isComingSoon` | boolean | Coming-soon flag |
| `isFSBO` | boolean | For Sale By Owner |
| `isForeclosure` | boolean | Bank-owned / foreclosure |
| `isOpenHouse` | boolean | Open house is scheduled |
| `isPriceReduced` | boolean | Price has been reduced |
| `brokerName` | string | Listing brokerage name |
| `imgSrc` | string | Primary listing image URL |
| `hasPhotos` / `hasVideo` / `has3DModel` | boolean | Media availability flags |
| `openHouseStart` / `openHouseEnd` | string | Open house ISO timestamps |
| `source` | string | Always `"zillow.com"` |
| `scrapedAt` | string | ISO timestamp of scrape |

#### With `fetchDetails: true`

| Field | Type | Description |
|-------|------|-------------|
| `description` | string | Full property description |
| `parcelNumber` | string | County parcel/APN number |
| `schools` | array | Assigned schools with name, rating, distance |
| `walkScore` / `transitScore` / `bikeScore` | number | Walkability scores (0–100) |
| `priceHistory` | array | Price event history: `{date, price, event}` |
| `taxHistory` | array | Annual tax records: `{year, taxPaid, value}` |
| `hoaFee` | number | Monthly HOA fee |
| `photos` | array | Full high-resolution photo URLs |

#### Example output

```json
{
  "zpid": "60147953",
  "url": "https://www.zillow.com/homedetails/150-W-26th-St-APT-903-New-York-NY-10001/60147953_zpid/",
  "address": "150 W 26th St APT 903, New York, NY 10001",
  "streetAddress": "150 W 26th St APT 903",
  "city": "New York",
  "state": "NY",
  "zipcode": "10001",
  "country": "US",
  "latitude": 40.7448,
  "longitude": -74.0,
  "price": 1850000,
  "priceText": ",850,000",
  "pricePerSqft": 1011,
  "currency": "USD",
  "zestimate": 1816900,
  "rentZestimate": 7500,
  "taxAssessedValue": 1450000,
  "beds": 3,
  "baths": 3,
  "livingArea": 1829,
  "homeType": "CONDO",
  "listingStatus": "FOR_SALE",
  "statusText": "For sale",
  "daysOnZillow": 6,
  "priceChange": null,
  "priceChangedDate": null,
  "dateSold": null,
  "isNewConstruction": null,
  "isComingSoon": null,
  "isFSBO": null,
  "isForeclosure": null,
  "isOpenHouse": null,
  "isPriceReduced": null,
  "brokerName": "Compass",
  "imgSrc": "https://photos.zillowstatic.com/fp/abc123.jpg",
  "hasPhotos": true,
  "hasVideo": false,
  "has3DModel": true,
  "openHouseStart": null,
  "openHouseEnd": null,
  "source": "zillow.com",
  "scrapedAt": "2026-06-03T20:00:00.000Z"
}
````

***

### Examples

#### 1. Basic search — NYC for sale

```json
{
  "zipCodes": ["10001"],
  "operationType": "sale",
  "maxItems": 50
}
```

#### 2. Filtered search — LA condos under 00k

```json
{
  "zipCodes": ["90210", "90211", "90212"],
  "operationType": "sale",
  "homeTypes": ["condos"],
  "maxPrice": 800000,
  "bedsMin": 2,
  "maxItems": 100
}
```

#### 3. Rental market snapshot — Chicago

```json
{
  "zipCodes": ["60601", "60602", "60603", "60604"],
  "operationType": "rent",
  "rentMax": 3000,
  "bedsMin": 1,
  "petsAllowed": true,
  "maxItems": 200
}
```

#### 4. Daily new listings feed — Austin

```json
{
  "zipCodes": ["78701", "78702", "78703", "78704"],
  "operationType": "sale",
  "daysOnZillow": "1",
  "maxItems": 0
}
```

#### 5. Recently sold comps — Beverly Hills

```json
{
  "zipCodes": ["90210"],
  "operationType": "sold",
  "daysOnZillow": "90",
  "minPrice": 2000000,
  "maxItems": 50
}
```

***

### 💰 Pricing

**$1.50 per 1,000 listings** — you only pay for successfully scraped listings.

| Results | Cost |
|---------|------|
| 100 | ~$0.15 |
| 1,000 | ~$1.50 |
| 10,000 | ~$15.00 |
| 100,000 | ~$150.00 |

> Flat-rate alternatives typically charge $29–$49/month regardless of usage. Use the **Max results** cap to control your spend exactly.

***

### Performance

| ZIP codes | Max results | Typical duration |
|-----------|-------------|-----------------|
| 1 | 50 | 1–2 min |
| 1 | 500 | 5–8 min |
| 5 | 500 | 10–20 min |
| 10 | 1,000 | 20–40 min |

Actual duration varies by proxy IP quality. The scraper retries automatically with fresh IPs when needed.

***

### Known limitations

- **Year built** is not available in standard list results — only retrievable with `fetchDetails: true`
- **Filter accuracy**: server-rendered results use Zillow's default sort; filters take effect as the page hydrates. For strict filter enforcement, run with smaller `maxItems` values and verify results
- **Success rate**: ~87–100% per run. Rare failures occur when all proxy IP attempts are blocked — simply retry the run for a fresh IP pool

***

### Technical details

- Source: zillow.com — US residential listings only
- Memory: 2,048 MB
- Proxy: Apify RESIDENTIAL (required — Zillow blocks datacenter IPs)
- Deduplication: automatic across ZIP codes within a single run
- Output format: JSON dataset + OUTPUT and HEALTH keys in Key-Value Store

***

### Additional services

Need scheduled runs, webhook integration, bulk data delivery, or custom filter combinations not covered by the input schema? Email <info@unfencedgroup.nl> — we build on request.

***

*Part of the [Unfenced Group](https://apify.com/unfenced-group) real estate scraper portfolio.*\
*Built by [unfenced-group](https://apify.com/unfenced-group) · Issues? Open a ticket or send a message.*

# Actor input Schema

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

Sort order for results.

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

Minimum listing price in USD (sale/sold). For rent, use Rent Min.

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

Maximum listing price in USD (sale/sold).

## `daysOld` (type: `integer`):

Only return listings published within the last N days. Leave empty for no recency filter.

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

Fetch each listing's detail page for richer data: price history, tax history, school ratings, walk/transit/bike scores, and full photo gallery. Slower and uses more proxy bandwidth.

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

Maximum total listings to collect across all ZIP codes. 0 = no limit.

## `startUrls` (type: `array`):

Optional list of search-results page URLs. When provided, all filter fields above are ignored.

## `zipCodes` (type: `array`):

List of US ZIP codes to search. One or more, e.g. \["90210", "10001"].

## `operationType` (type: `string`):

Type of listing to search: sale (for sale), rent (for rent), or sold (recently sold).

## `rentMin` (type: `integer`):

Minimum monthly rent (for rent only).

## `rentMax` (type: `integer`):

Maximum monthly rent (for rent only).

## `bedsMin` (type: `integer`):

Minimum number of bedrooms.

## `bedsMax` (type: `integer`):

Maximum number of bedrooms (0 = any).

## `bathsMin` (type: `integer`):

Minimum number of bathrooms.

## `sqftMin` (type: `integer`):

Minimum living area in square feet.

## `sqftMax` (type: `integer`):

Maximum living area in square feet.

## `yearBuiltMin` (type: `integer`):

Earliest year of construction.

## `yearBuiltMax` (type: `integer`):

Latest year of construction.

## `daysOnZillow` (type: `string`):

Only include listings active (or sold) within this many days.

## `maxHoa` (type: `integer`):

Maximum monthly HOA fee (0 = any).

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

Filter by property type. Leave empty to include all types.

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

Optional keyword filter, e.g. 'pool, ocean view' (max 99 characters).

## `includeNewConstruction` (type: `boolean`):

Include new construction listings in results.

## `includeForeclosures` (type: `boolean`):

Include bank-owned and foreclosure listings.

## `includeComingSoon` (type: `boolean`):

Include listings marked as Coming Soon.

## `includeFSBO` (type: `boolean`):

Include For Sale By Owner listings.

## `includeFSBA` (type: `boolean`):

Include agent-listed properties.

## `mustHavePool` (type: `boolean`):

Only include properties with a pool.

## `mustHaveGarage` (type: `boolean`):

Only include properties with a garage.

## `mustHaveAC` (type: `boolean`):

Only include properties with air conditioning.

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

Only include waterfront properties.

## `openHouseOnly` (type: `boolean`):

Only include listings with an open house scheduled.

## `has3DTour` (type: `boolean`):

Only include listings with a 3D virtual tour.

## `priceReduced` (type: `boolean`):

Only include listings with a recent price reduction.

## `petsAllowed` (type: `boolean`):

Only include pet-friendly rentals (rent only).

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

Only include rentals with in-unit laundry (rent only).

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

Only include rentals with on-site parking (rent only).

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

Only include furnished rentals (rent only).

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

Only include rentals with utilities included (rent only).

## `proxyConfiguration` (type: `object`):

Proxy settings. Residential proxy is required — leave default unless you have a custom setup.

## Actor input object example

```json
{
  "sortBy": "days",
  "minPrice": 0,
  "maxPrice": 0,
  "fetchDetails": false,
  "maxItems": 0,
  "startUrls": [],
  "zipCodes": [
    "90210",
    "10001"
  ],
  "operationType": "sale",
  "rentMin": 0,
  "rentMax": 0,
  "bedsMin": 0,
  "bedsMax": 0,
  "bathsMin": 0,
  "sqftMin": 0,
  "sqftMax": 0,
  "yearBuiltMin": 0,
  "yearBuiltMax": 0,
  "daysOnZillow": "",
  "maxHoa": 0,
  "keywords": "",
  "includeNewConstruction": true,
  "includeForeclosures": true,
  "includeComingSoon": true,
  "includeFSBO": true,
  "includeFSBA": true,
  "mustHavePool": false,
  "mustHaveGarage": false,
  "mustHaveAC": false,
  "waterfront": false,
  "openHouseOnly": false,
  "has3DTour": false,
  "priceReduced": false,
  "petsAllowed": false,
  "inUnitLaundry": false,
  "onSiteParking": false,
  "furnished": false,
  "utilitiesIncluded": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

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

Dataset containing all scraped property listings.

# 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 = {
    "zipCodes": [
        "90210",
        "10001"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("unfenced-group/zillow-zip-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 = {
    "zipCodes": [
        "90210",
        "10001",
    ],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("unfenced-group/zillow-zip-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "zipCodes": [
    "90210",
    "10001"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call unfenced-group/zillow-zip-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=unfenced-group/zillow-zip-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Zillow ZIP Code Scraper",
        "description": "Scrape Zillow by ZIP code: for sale, rent, sold. 55 filters, map tiling, price history. $0.80/1K results — the lowest price on Apify, cheaper than any alternative.",
        "version": "0.0",
        "x-build-id": "8fikiK8kYU0lX72OP"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/unfenced-group~zillow-zip-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-unfenced-group-zillow-zip-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/unfenced-group~zillow-zip-scraper/runs": {
            "post": {
                "operationId": "runs-sync-unfenced-group-zillow-zip-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/unfenced-group~zillow-zip-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-unfenced-group-zillow-zip-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "zipCodes"
                ],
                "properties": {
                    "sortBy": {
                        "title": "Sort by",
                        "enum": [
                            "days",
                            "relevance",
                            "recentlyChanged",
                            "priceHigh",
                            "priceLow",
                            "bedrooms",
                            "bathrooms",
                            "sqft",
                            "lotSize",
                            "yearBuilt"
                        ],
                        "type": "string",
                        "description": "Sort order for results.",
                        "default": "days"
                    },
                    "minPrice": {
                        "title": "Min price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum listing price in USD (sale/sold). For rent, use Rent Min.",
                        "default": 0
                    },
                    "maxPrice": {
                        "title": "Max price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum listing price in USD (sale/sold).",
                        "default": 0
                    },
                    "daysOld": {
                        "title": "Max listing age (days)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only return listings published within the last N days. Leave empty for no recency filter."
                    },
                    "fetchDetails": {
                        "title": "Fetch detail pages",
                        "type": "boolean",
                        "description": "Fetch each listing's detail page for richer data: price history, tax history, school ratings, walk/transit/bike scores, and full photo gallery. Slower and uses more proxy bandwidth.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum total listings to collect across all ZIP codes. 0 = no limit.",
                        "default": 0
                    },
                    "startUrls": {
                        "title": "Start URLs (overrides filters)",
                        "type": "array",
                        "description": "Optional list of search-results page URLs. When provided, all filter fields above are ignored.",
                        "items": {
                            "type": "object"
                        },
                        "default": []
                    },
                    "zipCodes": {
                        "title": "ZIP Codes",
                        "type": "array",
                        "description": "List of US ZIP codes to search. One or more, e.g. [\"90210\", \"10001\"].",
                        "items": {
                            "type": "string"
                        }
                    },
                    "operationType": {
                        "title": "Operation type",
                        "enum": [
                            "sale",
                            "rent",
                            "sold"
                        ],
                        "type": "string",
                        "description": "Type of listing to search: sale (for sale), rent (for rent), or sold (recently sold).",
                        "default": "sale"
                    },
                    "rentMin": {
                        "title": "Rent: minimum ($/mo)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum monthly rent (for rent only).",
                        "default": 0
                    },
                    "rentMax": {
                        "title": "Rent: maximum ($/mo)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum monthly rent (for rent only).",
                        "default": 0
                    },
                    "bedsMin": {
                        "title": "Bedrooms: minimum",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum number of bedrooms.",
                        "default": 0
                    },
                    "bedsMax": {
                        "title": "Bedrooms: maximum",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of bedrooms (0 = any).",
                        "default": 0
                    },
                    "bathsMin": {
                        "title": "Bathrooms: minimum",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum number of bathrooms.",
                        "default": 0
                    },
                    "sqftMin": {
                        "title": "Square feet: minimum",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum living area in square feet.",
                        "default": 0
                    },
                    "sqftMax": {
                        "title": "Square feet: maximum",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum living area in square feet.",
                        "default": 0
                    },
                    "yearBuiltMin": {
                        "title": "Year built: minimum",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Earliest year of construction.",
                        "default": 0
                    },
                    "yearBuiltMax": {
                        "title": "Year built: maximum",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Latest year of construction.",
                        "default": 0
                    },
                    "daysOnZillow": {
                        "title": "Days on Zillow",
                        "enum": [
                            "",
                            "1",
                            "7",
                            "14",
                            "30",
                            "90",
                            "6m",
                            "12m",
                            "24m",
                            "36m"
                        ],
                        "type": "string",
                        "description": "Only include listings active (or sold) within this many days.",
                        "default": ""
                    },
                    "maxHoa": {
                        "title": "Max HOA fee ($/mo)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum monthly HOA fee (0 = any).",
                        "default": 0
                    },
                    "homeTypes": {
                        "title": "Home types (empty = all)",
                        "type": "array",
                        "description": "Filter by property type. Leave empty to include all types.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "houses",
                                "townhomes",
                                "condos",
                                "multifamily",
                                "land",
                                "apartments",
                                "manufactured"
                            ],
                            "enumTitles": [
                                "Houses",
                                "Townhomes",
                                "Condos/Co-ops",
                                "Multi-family",
                                "Lots/Land",
                                "Apartments",
                                "Manufactured"
                            ]
                        }
                    },
                    "keywords": {
                        "title": "Keywords",
                        "type": "string",
                        "description": "Optional keyword filter, e.g. 'pool, ocean view' (max 99 characters).",
                        "default": ""
                    },
                    "includeNewConstruction": {
                        "title": "Include new construction",
                        "type": "boolean",
                        "description": "Include new construction listings in results.",
                        "default": true
                    },
                    "includeForeclosures": {
                        "title": "Include foreclosures",
                        "type": "boolean",
                        "description": "Include bank-owned and foreclosure listings.",
                        "default": true
                    },
                    "includeComingSoon": {
                        "title": "Include coming soon",
                        "type": "boolean",
                        "description": "Include listings marked as Coming Soon.",
                        "default": true
                    },
                    "includeFSBO": {
                        "title": "Include For Sale By Owner",
                        "type": "boolean",
                        "description": "Include For Sale By Owner listings.",
                        "default": true
                    },
                    "includeFSBA": {
                        "title": "Include agent-listed",
                        "type": "boolean",
                        "description": "Include agent-listed properties.",
                        "default": true
                    },
                    "mustHavePool": {
                        "title": "Must have pool",
                        "type": "boolean",
                        "description": "Only include properties with a pool.",
                        "default": false
                    },
                    "mustHaveGarage": {
                        "title": "Must have garage",
                        "type": "boolean",
                        "description": "Only include properties with a garage.",
                        "default": false
                    },
                    "mustHaveAC": {
                        "title": "Must have A/C",
                        "type": "boolean",
                        "description": "Only include properties with air conditioning.",
                        "default": false
                    },
                    "waterfront": {
                        "title": "Waterfront only",
                        "type": "boolean",
                        "description": "Only include waterfront properties.",
                        "default": false
                    },
                    "openHouseOnly": {
                        "title": "Open house only",
                        "type": "boolean",
                        "description": "Only include listings with an open house scheduled.",
                        "default": false
                    },
                    "has3DTour": {
                        "title": "Must have 3D tour",
                        "type": "boolean",
                        "description": "Only include listings with a 3D virtual tour.",
                        "default": false
                    },
                    "priceReduced": {
                        "title": "Price-reduced only",
                        "type": "boolean",
                        "description": "Only include listings with a recent price reduction.",
                        "default": false
                    },
                    "petsAllowed": {
                        "title": "Pets allowed (rent only)",
                        "type": "boolean",
                        "description": "Only include pet-friendly rentals (rent only).",
                        "default": false
                    },
                    "inUnitLaundry": {
                        "title": "In-unit laundry (rent only)",
                        "type": "boolean",
                        "description": "Only include rentals with in-unit laundry (rent only).",
                        "default": false
                    },
                    "onSiteParking": {
                        "title": "On-site parking (rent only)",
                        "type": "boolean",
                        "description": "Only include rentals with on-site parking (rent only).",
                        "default": false
                    },
                    "furnished": {
                        "title": "Furnished (rent only)",
                        "type": "boolean",
                        "description": "Only include furnished rentals (rent only).",
                        "default": false
                    },
                    "utilitiesIncluded": {
                        "title": "Utilities included (rent only)",
                        "type": "boolean",
                        "description": "Only include rentals with utilities included (rent only).",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. Residential proxy is required — leave default unless you have a custom setup."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
