# Zillow Property Details Scraper (`api-ninja/zillow-property-details-scraper`) Actor

Scrape Zillow property details for real estate analysis. Get prices, tax history, interior and building specs, lot info, schools, and photos from Zillow listings.

- **URL**: https://apify.com/api-ninja/zillow-property-details-scraper.md
- **Developed by:** [API ninja](https://apify.com/api-ninja) (community)
- **Categories:** Real estate, Developer tools, Automation
- **Stats:** 555 total users, 120 monthly users, 100.0% runs succeeded, 23 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

# README

## Zillow Property Details Scraper: The Ultimate Zillow Data API Alternative 🏠

The **Zillow Property Details Scraper** is a high-performance tool designed to **scrape Zillow property details** and extract exhaustive data from [Zillow.com](https://www.zillow.com/). While standard search tools provide only a high-level overview, this Actor acts as a powerful **Zillow data API alternative**, diving deep into every listing to retrieve granular specifications like **tax history, utility details, interior features, and school ratings.**

Whether you are a real estate investor, a data scientist, or a developer looking to **scrape Zillow data in Python or Node.js**, this scraper provides the "engine room" data required for deep market analysis and ROI calculation.

### 🌟 Why use this Zillow property details scraper for Zillow data?

- **Exhaustive Data Extraction:** Access fields hidden behind multiple clicks, including foundation types, appliance lists, and full cooling/heating specifications.
- **Bulk Enrichment:** Seamlessly process thousands of properties by connecting search results directly to this detailed scraper.
- **Optimized Performance:** Built for speed and efficiency, ensuring you get the most data for the lowest compute cost.
- **Built on Apify:** Leverage the full power of the Apify platform—access your data via API, schedule recurring crawls, and rotate proxies automatically to avoid detection.
- **Seamless Integration:** Designed to work hand-in-hand with the **[Zillow Search Scraper](https://apify.com/api-ninja/zillow-search-scraper)**.

### 🔄 The "Search & Enrich" Workflow

This Actor is the perfect second step in your real estate data pipeline:

1. **Search:** Use the **[Zillow Search Scraper](https://apify.com/api-ninja/zillow-search-scraper)** to find properties in specific regions (e.g., "Austin, TX").
2. **Connect:** Copy the **Dataset ID** from your search run.
3. **Enrich:** Paste that ID into the `Search Results Datasets` field of this scraper.
4. **Result:** Automatically fetch 50+ detailed data points for every property discovered in your search.

### 📊 What data can you extract from Zillow?

This scraper extracts nearly every piece of information available on a Zillow listing page:

| Category | Data Points |
|----------|-------------|
| **Core Details** | ZPID, Status (Sold/For Sale), Price, Bedrooms, Bathrooms, Living Area |
| **Interior Specs** | Flooring, Heating/Cooling types, Appliances, Basement details, Fireplace |
| **Building Info** | Year Built, Construction materials, Roof type, Foundation, Parking |
| **Financials** | Tax history, Annual taxes, Tax-assessed value, Zestimate®, Rent estimate |
| **Location** | Neighborhood names, Coordinates (Lat/Long), Street Address, Zipcode |
| **Community** | School names, School ratings, Distance to schools |
| **Media** | High-resolution photo URLs and listing descriptions |

### 📥 Input

To **scrape Zillow property details**, you can provide direct identifiers or connect existing datasets. For a full list of configuration options, see the **Input** tab in the Apify Console.

| Field | Type | Description |
|-------|------|-------------|
| **property** | Array | Direct Zillow URLs, ZPIDs, or full street addresses. |
| **searchResultsDatasetId** | Array | (Optional) Dataset IDs from the [Zillow Search Scraper](https://apify.com/api-ninja/zillow-search-scraper). |

#### Example Input

```json
{
  "property": [
    "https://www.zillow.com/homedetails/7413-First-Landing-Ct-Henrico-VA-23231/72095256_zpid/",
    "21386 Sunnyside Rd, Los Gatos, CA 95033"
  ],
  "searchResultsDatasetId": [
    "your-search-dataset-id"
  ]
}
```

### 📤 Output

The scraper outputs structured JSON data. You can download your results in **JSON, CSV, Excel, XML, or HTML** formats.

#### Sample Output (JSON)

```json
{
  "zpid": 72095256,
  "homeStatus": "FOR_SALE",
  "address": {
    "streetAddress": "7413 First Landing Ct",
    "city": "Henrico",
    "state": "VA",
    "zipcode": "23231"
  },
  "price": 325000,
  "bedrooms": 3,
  "bathrooms": 2.5,
  "livingArea": 1850,
  "yearBuilt": 2005,
  "lotSize": 7405,
  "taxAssessedValue": 310000,
  "schools": [
    { "name": "Fair Oaks Elementary", "rating": 7, "distance": 0.5 }
  ],
  "description": "Beautiful 2-story home in a quiet cul-de-sac..."
}
```

### 📖 How to scrape Zillow property details (step-by-step)

1. **Collect Targets:** Copy Zillow URLs or a list of addresses you want to analyze.
2. **Enter Input:** Paste them into the **property** field.
3. **Run:** Click the **Start** button.
4. **Export:** Once the run completes, navigate to the **Dataset** tab to download your data.

### ⚡ Powered by Apify

By running this scraper on the **Apify Platform**, you gain access to enterprise-grade features:

- **API Access:** Integrate Zillow data directly into your Python, Node.js, or Go applications.
- **Scheduling:** Set your scraper to run daily or weekly to track price drops and new listings.
- **Integrations:** Connect your data to **Make, Zapier, Google Sheets, AirTable**, or your favorite CRM.
- **Proxy Rotation:** Built-in smart proxy rotation ensures high reliability and minimizes blocking.

### 💰 Pricing & Compute Units (CU)

This scraper is highly optimized. On average, scraping **100 properties** consumes only **0.05 - 0.1 Compute Units**.

### ❓ FAQ

**Is it legal to scrape Zillow?**
Scraping publicly available data is generally legal. This scraper only extracts data that is publicly visible on Zillow. However, you should use the data ethically and comply with regulations like GDPR or CCPA. For commercial use, always review Zillow's terms of service.

**How is this different from the official Zillow API?**
The official Zillow API is often restricted and limited in terms of fields returned. This scraper acts as a **Zillow data API alternative**, providing access to a much wider array of listing details without the strict approval process.

**Can I use this as a Zillow API in Python or Node.js?**
Yes! Once the Actor is running on Apify, you can use the [Apify API](https://docs.apify.com/api/v2) to trigger runs and fetch data directly into your code.

### 🆘 Support & Customization

If you need a custom feature or have questions about scraping Zillow data, reach out via the **Issues** tab on Apify or contact us for custom development through our profile.

***

*Love this tool? [Try it for free on Apify](https://apify.com/api-ninja/zillow-property-details) or [upgrade to a paid plan](https://apify.com/pricing?fpr=maxdz) for higher limits.*

# Actor input Schema

## `property` (type: `array`):

Enter Zillow property URLs (e.g., https://www.zillow.com/homedetails/...), property IDs, or street addresses. This field is required even when using datasets.

## `searchResultsDatasetId` (type: `array`):

Select datasets containing search results from [Zillow Search Scraper](https://apify.com/api-ninja/zillow-search-scraper). When provided, the scraper will process all properties from these datasets. Note: The property field above must still contain at least one entry even when using datasets

## Actor input object example

```json
{
  "property": [
    "https://www.zillow.com/homedetails/7413-First-Landing-Ct-Henrico-VA-23231/72095256_zpid/",
    "21386 Sunnyside Rd, Los Gatos, CA 95033",
    "24996529"
  ]
}
```

# 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 = {
    "property": [
        "https://www.zillow.com/homedetails/7413-First-Landing-Ct-Henrico-VA-23231/72095256_zpid/",
        "21386 Sunnyside Rd, Los Gatos, CA 95033",
        "24996529"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("api-ninja/zillow-property-details-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 = { "property": [
        "https://www.zillow.com/homedetails/7413-First-Landing-Ct-Henrico-VA-23231/72095256_zpid/",
        "21386 Sunnyside Rd, Los Gatos, CA 95033",
        "24996529",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("api-ninja/zillow-property-details-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "property": [
    "https://www.zillow.com/homedetails/7413-First-Landing-Ct-Henrico-VA-23231/72095256_zpid/",
    "21386 Sunnyside Rd, Los Gatos, CA 95033",
    "24996529"
  ]
}' |
apify call api-ninja/zillow-property-details-scraper --silent --output-dataset

```

## MCP server setup

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

```

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

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/p5uZN0YlqtPIecMUv/builds/8DaRck0GgqV1o8hTm/openapi.json
