# Zillow Search Scraper (`maxcopell/zillow-scraper`) Actor

Extract data about properties for sale and rent on Zillow using the Zillow API, but with no daily call limits. Scrape millions of listings and download your data as HTML, JSON, CSV, Excel, XML. Export scraped data, run the scraper via API, schedule and monitor runs, or integrate with other tools.

- **URL**: https://apify.com/maxcopell/zillow-scraper.md
- **Developed by:** [Max](https://apify.com/maxcopell) (Apify)
- **Categories:** Real estate
- **Stats:** 6,349 total users, 514 monthly users, 96.2% runs succeeded, 160 bookmarks
- **User rating**: 4.89 out of 5 stars

## Pricing

from $1.30 / 1,000 results

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

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

## What's an Apify Actor?

Actors are 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

### 🏡 What is Zillow Search Scraper?

This Zillow Search Scraper lets you **extract data from the search of real estate listings on [Zillow.com](https://zillow.com/)**. It enables you to search properties in any location and extract Zillow data such as full addresses, price, URL, photos, number of bedrooms and bathrooms, zestimate, ZPID, and other available information.

> If you need even more details from each listing such as description, amenities, parking features, tour availability or agent's email, try [Zillow Details Scraper](https://apify.com/maxcopell/zillow-detail-scraper) 🔗, which scrapes **all** **available details for each property** based on its URL.
### 🚪 What can this Zillow Scraper do?

Zillow Search Scraper is a data extraction tool created to go beyond the limitations of Zillow API. It extracts Zillow data from the listing depending on its property type (For sale/Sold/For rent). With this scraping tool, you can:

📈 Extract Zillow market data from house listings on Zillow **at scale**

🏡 **Get basic Zillow listings data** including price, availability, home type, address, date of posting, etc.

📩 Extract **full address, price, posted date, ZPID, zestimate, photos**, and other details from agencies registered on the platform

☄️ Get **more than 2,000 results for free**

⬇️ **Download Zillow real estate data** in Excel, CSV, JSON, and other formats

> This scraper can be easily integrated with other existing [Zillow scrapers](https://apify.com/store?search=zillow), especially [Zillow Details Scraper](https://apify.com/maxcopell/zillow-detail-scraper) and [Zillow ZIP Code Search Scraper](https://apify.com/maxcopell/zillow-zip-search) 🔗.

### 🌳 What Zillow data can I extract using this tool?

Our Zillow Scraper is capable of extracting data such as:

<table>
<tr>
<td>🏠 Full address</td>
<td>💰 Price</td>
</tr>
<tr>
<td>🛏️ Bedrooms and bathrooms</td>
<td>📍 Longitude and latitude</td>
</tr>
<tr>
<td>📅 Date posted</td>
<td>⏳ Time on Zillow</td>
</tr>
<tr>
<td>📷 Photos</td>
<td>📏 Area</td>
</tr>
<tr>
<td>💼 Broker name </td>
<td>⭐️ Featured listing</td>
</tr>
<tr>
<td>🏠 Home type and status</td>
<td>🌳 Lot size</td>
</tr>
<tr>
<td>🔗 URL</td>
<td>🏢 ZPID</td>
</tr>
<tr>
<td>💸 Rent zestimate</td>
<td>💵 Zestimate</td>
</tr>
</table>

### 📚 How do I scrape Zillow?

This Zillow scraper was designed for an easy start even if you've never extracted property data from the web before. Here's how you can scrape real estate listings data with this tool:

1. Create a free Apify account using your email.
2. Open [Zillow Search Scraper](https://apify.com/maxcopell/zillow-scraper).
3. Add one or more Zillow search URLs to scrape available listings.
4. Click "Start" and wait for the data to be extracted.
5. Download your data in JSON, XML, CSV, Excel, or HTML.

For a step-by-step guide on how to scrape Zillow data, follow our [tutorial](https://blog.apify.com/how-to-scrape-zillow/).

### ⬇️ Input

To scrape Zillow property data, just use specific **search** **URLs from Zillow.com website 🔗** (you can apply all the necessary filters beforehand). Note that the URL must contain the fragment `?searchQueryState=…`.

For detailed descriptions and examples for all input fields, please visit the dedicated [Input page](https://apify.com/maxcopell/zillow-scraper/input-schema).

```json
{
  "searchUrls": [
    {
      "url": "https://www.zillow.com/homes/for_sale/?searchQueryState=%7B%22isMapVisible%22%3Atrue%2C%22mapBounds%22%3A%7B%22west%22%3A-124.61572460426518%2C%22east%22%3A-120.37225536598393%2C%22south%22%3A36.71199595991113%2C%22north%22%3A38.74934086729303%7D%2C%22filterState%22%3A%7B%22sort%22%3A%7B%22value%22%3A%22days%22%7D%2C%22ah%22%3A%7B%22value%22%3Atrue%7D%7D%2C%22isListVisible%22%3Atrue%2C%22customRegionId%22%3A%227d43965436X1-CRmxlqyi837u11_1fi65c%22%7D"
    }
  ],
  "extractionMethod": "PAGINATION_WITH_ZOOM_IN"
}
````

### ⬆️ Output example

The scraped property homes will be shown as a dataset which you can find in the **Output** and **Storage tabs**. Note that the output will first be organized as a table for viewing convenience:

[![Zillow scraping dataset](https://github.com/apify-projects/actor-readme-images/blob/master/Zillow%20scraping%20dataset.png?raw=true)](https://console.apify.com/sign-up)

You can preview all the fields and choose in which format to download the data you’ve extracted: JSON, CSV, Excel, HTML table, or XML. Here below is the same dataset in JSON:

```json
{
    "zpid": "2064142765",
    "id": "2064142765",
    "providerListingId": "1648702",
    "imgSrc": "<https://photos.zillowstatic.com/fp/33578db80c877648aba386c3aa28e042-p_e.jpg>",
    "hasImage": true,
    "detailUrl": "<https://www.zillow.com/homedetails/130-Water-St-APT-12D-New-York-NY-10005/2064142765_zpid/>",
    "statusType": "FOR_SALE",
    "statusText": "Condo for sale",
    "countryCurrency": "$",
    "price": "$995,000",
    "unformattedPrice": 995000,
    "address": "130 Water St APT 12D, New York, NY 10005",
    "addressStreet": "130 Water St APT 12D",
    "addressCity": "New York",
    "addressState": "NY",
    "addressZipcode": "10005",
    "isUndisclosedAddress": false,
    "beds": 2,
    "baths": 2,
    "area": 1280,
    "latLong": {
        "latitude": 40.7057,
        "longitude": -74.0073
    },
    "isZillowOwned": false,
    "variableData": {
        "type": "DAYS_ON",
        "text": "38 days on Zillow"
    },
    "badgeInfo": null,
    "hdpData": {
        "homeInfo": {
            "zpid": 2064142765,
            "streetAddress": "130 Water St APT 12D",
            "zipcode": "10005",
            "city": "New York",
            "state": "NY",
            "latitude": 40.7057,
            "longitude": -74.0073,
            "price": 995000,
            "bathrooms": 2,
            "bedrooms": 2,
            "livingArea": 1280,
            "homeType": "CONDO",
            "homeStatus": "FOR_SALE",
            "daysOnZillow": -1,
            "isFeatured": false,
            "shouldHighlight": false,
            "rentZestimate": 4470,
            "listing_sub_type": {
                "is_FSBA": true
            },
            "isUnmappable": false,
            "isPreforeclosureAuction": false,
            "homeStatusForHDP": "FOR_SALE",
            "priceForHDP": 995000,
            "isNonOwnerOccupied": true,
            "isPremierBuilder": false,
            "isZillowOwned": false,
            "currency": "USD",
            "country": "USA",
            "unit": "Apt 12D"
        }
    },
    "isSaved": false,
    "isUserClaimingOwner": false,
    "isUserConfirmedClaim": false,
    "pgapt": "ForSale",
    "sgapt": "For Sale (Broker)",
    "zestimate": null,
    "shouldShowZestimateAsPrice": false,
    "has3DModel": false,
    "hasVideo": false,
    "isHomeRec": false,
    "brokerName": "Listing by: SERHANT.",
    "hasAdditionalAttributions": true,
    "isFeaturedListing": false,
    "isShowcaseListing": false,
    "availabilityDate": null,
    "list": true,
    "relaxed": false
}
```

*Note that we can't guarantee 100% stability of this output, since Zillow can change the availability of individual fields in search results.*

### ❓FAQ

#### Is there a Zillow API?

Around 20 of them. Zillow offers several APIs to facilitate access to its rich real estate data, for example, **Zillow Property Details API** or **Zillow Neighborhood Data API.** However, it's worth noting that Zillow's API offerings are subject to change, and their availability or the details of their functionality might vary. Additionally, accessing these APIs usually requires an API key, and there may be usage limitations or costs associated with high-volume use. Which is why a lot of people opt for scrapers and crawlers as a stand-in for a web scraping API, e.g. **🏘 [Zillow Search Scraper.](https://apify.com/maxcopell/zillow-scraper)**

#### Why would anyone scrape Zillow?

Zillow has over 110 million properties in its database, more than 245 million monthly unique visitors, and 80% of all homes in the United States have been viewed on the website.

So what could you do with all that real estate listings data?

- Use the data to add value to your real estate business by providing extra information to your visitors.
- Extract business intelligence to predict the future of the real estate market, track demographic changes, and identify popular new neighborhoods.
- Make smarter investment decisions by ensuring that you understand how the market is changing.
- Automate real estate agency lead generation and make sure that you can find, and keep, the right clients in the long term.
- Find new ways to provide tech services to real estate agencies and local listing agencies.
- Train AI models to predict future trends and act fast when opportunities arise.

These are just some ideas to get you thinking about how web scraping can give you the data you need.

#### How much does Zillow Search Scraper cost?

This scraper uses the Pay-per-result pricing model, so your costs can be easily calculated: it will cost you **$2 to scrape 1,000 search results**, so $0.002 per item. It is possible to limit the number of output items in input configuration, under the last Options section.

Apify provides you with $5 free usage credits every month on the Apify Free plan, so you can get **2,500 results for free** for those credits from Zillow.

But if you need more data or to extract data regularly, you should get an Apify subscription. We recommend our [$49/month Starter plan](https://apify.com/pricing) — you could get up to **24,500 Zillow results every month with the monthly plan.**

#### Can I integrate Zillow Scraper with other apps?

Yes. Zillow Search Scraper can be connected with almost any cloud service or web app thanks to <a href="https://apify.com/integrations"  target="_blank">integrations on the Apify platform</a>. You can integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, LangChain <a href="https://docs.apify.com/integrations"  target="_blank">and more</a>.

Or you can use <a href="https://docs.apify.com/integrations/webhooks"  target="_blank">webhooks</a> to carry out an action whenever an event occurs, e.g. get a notification whenever Zillow Search Scraper successfully finishes a run.

You can take a look at this video guide on how to integrate two other Zillow scrapers - Zillow Zipcode Search and Zillow Detail: [Zillow scrapers](https://www.youtube.com/watch?v=a1prADVcZAE).

Or explore the available [Integrations](https://console.apify.com/actors/X46xKaa20oUA1fRiP/integrations/options) yourself:

![Integrations](https://i.imgur.com/0NiYbnt.png)

#### What scraping modes does Zillow Search Scraper support?

This scraper offers three modes: Map markers, and Pagination with and without zooming in. The first two modes are useful if you want to quickly get a sample of results from a given area, or if you want to know which results Zillow shows on the first pages(for example to find out if your property is featured).

The third mode, Pagination with zoom-in, takes longer but is the most powerful, and therefore is the default.

##### Map markers

This mode is the simplest of them all: the scraper simply loads the map from your search request and then returns data from each of the markers visible on the map. This mode is the fastest, but it only returns a limited number of results.

##### Pagination without zooming in

This mode loads the map for your search requests and then iterates through the pages of results that you can see on the right-hand side of the page. Zillow shows up to 20 pages of 41 items each, so this mode can extract up to 820 results from a single search.

##### Pagination + zooming in

This mode is the most powerful, since it can return all results from any given area. Note that the number of results found can be even larger than what Zillow shows you on the website, and therefore the scrape can be quite expensive too!

How it works: The scraper loads the map for a given area. It returns the items from the first page and checks the total number of pages available. If there are 20 pages (= the maximum that Zillow offers), it splits the map into 4 parts and repeats the process with increased zoom for each of them. Finally, when it reaches a zoom level where there are less than 20 pages of results for the given map area, it returns the results from all of them.

A big advantage of this approach is that you aren't wasting money on scraping both dense areas and areas with few results at the zoom level - the scraper only zooms in if it needs to do so in order to get complete results. Using this method, it is possible to scrape over 600 thousand results from a single search!

#### Can I use Zillow Search Scraper data with API?

Yes, by using Apify API. This API gives you programmatic access to the Apify platform. The API is organized around RESTful HTTP endpoints that enable you to manage, schedule, and run Apify [Actors](https://apify.com/actors). The API also lets you access any datasets, monitor Actor performance, fetch results, create and update versions, and more.

To access the API using Node.js, use the `apify-client` [NPM package](https://apify.com/maxcopell/zillow-scraper/api/client/nodejs). To access the API using Python, use the `apify-client` [PyPI package](https://apify.com/maxcopell/zillow-scraper/api/client/python).

Check out the <a href="https://docs.apify.com/api/v2"  target="_blank"> Apify API reference</a> docs for full details or click on the <a href="https://apify.com/maxcopell/zillow-scraper/api/client/nodejs"  target="_blank"> API tab</a> for code examples.

#### Can I use this Zillow Search API in Python?

Yes, by using Apify API. To access the [Zillow Search API using Python](https://apify.com/maxcopell/zillow-scraper/api/client/python), use the `apify-client` PyPI package. You can find more details about the client in our [Docs for Python Client](https://docs.apify.com/api/client/python/).

#### Is it legal to scrape Zillow data?

It is legal to scrape publicly available data such as property prices, availability, or street address. However, you should be aware that the results from your Zillow scrape **might contain personal information**.

Personal data is protected by GDPR ([EU Regulation 2016/679](https://eur-lex.europa.eu/eli/reg/2016/679/oj)), and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, please consult your lawyers. You can also read our blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

# Actor input Schema

## `searchUrls` (type: `array`):

URLs of your search queries. The url must contain `?searchQueryState=...`, if you only have URL like `www.zillow.com/homes/32754_rb/`, move the map the bit and the details will appear in the URL.

## `extractionMethod` (type: `string`):

Select your preferred method of extraction of items from the search results. See Actor's README for more details.

## Actor input object example

```json
{
  "searchUrls": [
    {
      "url": "https://www.zillow.com/homes/for_sale/?searchQueryState=%7B%22isMapVisible%22%3Atrue%2C%22mapBounds%22%3A%7B%22west%22%3A-124.61572460426518%2C%22east%22%3A-120.37225536598393%2C%22south%22%3A36.71199595991113%2C%22north%22%3A38.74934086729303%7D%2C%22filterState%22%3A%7B%22sort%22%3A%7B%22value%22%3A%22days%22%7D%2C%22ah%22%3A%7B%22value%22%3Atrue%7D%7D%2C%22isListVisible%22%3Atrue%2C%22customRegionId%22%3A%227d43965436X1-CRmxlqyi837u11_1fi65c%22%7D"
    }
  ],
  "extractionMethod": "PAGINATION_WITH_ZOOM_IN"
}
```

# 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 = {
    "searchUrls": [
        {
            "url": "https://www.zillow.com/homes/for_sale/?searchQueryState=%7B%22isMapVisible%22%3Atrue%2C%22mapBounds%22%3A%7B%22west%22%3A-124.61572460426518%2C%22east%22%3A-120.37225536598393%2C%22south%22%3A36.71199595991113%2C%22north%22%3A38.74934086729303%7D%2C%22filterState%22%3A%7B%22sort%22%3A%7B%22value%22%3A%22days%22%7D%2C%22ah%22%3A%7B%22value%22%3Atrue%7D%7D%2C%22isListVisible%22%3Atrue%2C%22customRegionId%22%3A%227d43965436X1-CRmxlqyi837u11_1fi65c%22%7D"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("maxcopell/zillow-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 = { "searchUrls": [{ "url": "https://www.zillow.com/homes/for_sale/?searchQueryState=%7B%22isMapVisible%22%3Atrue%2C%22mapBounds%22%3A%7B%22west%22%3A-124.61572460426518%2C%22east%22%3A-120.37225536598393%2C%22south%22%3A36.71199595991113%2C%22north%22%3A38.74934086729303%7D%2C%22filterState%22%3A%7B%22sort%22%3A%7B%22value%22%3A%22days%22%7D%2C%22ah%22%3A%7B%22value%22%3Atrue%7D%7D%2C%22isListVisible%22%3Atrue%2C%22customRegionId%22%3A%227d43965436X1-CRmxlqyi837u11_1fi65c%22%7D" }] }

# Run the Actor and wait for it to finish
run = client.actor("maxcopell/zillow-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 '{
  "searchUrls": [
    {
      "url": "https://www.zillow.com/homes/for_sale/?searchQueryState=%7B%22isMapVisible%22%3Atrue%2C%22mapBounds%22%3A%7B%22west%22%3A-124.61572460426518%2C%22east%22%3A-120.37225536598393%2C%22south%22%3A36.71199595991113%2C%22north%22%3A38.74934086729303%7D%2C%22filterState%22%3A%7B%22sort%22%3A%7B%22value%22%3A%22days%22%7D%2C%22ah%22%3A%7B%22value%22%3Atrue%7D%7D%2C%22isListVisible%22%3Atrue%2C%22customRegionId%22%3A%227d43965436X1-CRmxlqyi837u11_1fi65c%22%7D"
    }
  ]
}' |
apify call maxcopell/zillow-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Zillow Search Scraper",
        "description": "Extract data about properties for sale and rent on Zillow using the Zillow API, but with no daily call limits. Scrape millions of listings and download your data as HTML, JSON, CSV, Excel, XML. Export scraped data, run the scraper via API, schedule and monitor runs, or integrate with other tools.",
        "version": "0.0",
        "x-build-id": "hAZ0lsr2jUdPNws1r"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/maxcopell~zillow-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-maxcopell-zillow-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/maxcopell~zillow-scraper/runs": {
            "post": {
                "operationId": "runs-sync-maxcopell-zillow-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/maxcopell~zillow-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-maxcopell-zillow-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": [
                    "searchUrls",
                    "extractionMethod"
                ],
                "properties": {
                    "searchUrls": {
                        "title": "Zillow Search URLs",
                        "type": "array",
                        "description": "URLs of your search queries. The url must contain `?searchQueryState=...`, if you only have URL like `www.zillow.com/homes/32754_rb/`, move the map the bit and the details will appear in the URL.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "extractionMethod": {
                        "title": "Items extraction method",
                        "enum": [
                            "PAGINATION_WITH_ZOOM_IN",
                            "PAGINATION",
                            "MAP_MARKERS"
                        ],
                        "type": "string",
                        "description": "Select your preferred method of extraction of items from the search results. See Actor's README for more details.",
                        "default": "PAGINATION_WITH_ZOOM_IN"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
