# Zillow Property Lookup API — Address · URL · ZPID (`sian.agency/zillow-property-lookup`) Actor

Zillow property detail API alternative. Look up any home by street address, listing URL, or ZPID and get clean JSON: price, Zestimate, beds, baths, sqft, year built, days on market, plus a premium tier with tax history, price history, schools, agent contacts and 180+ property facts.

- **URL**: https://apify.com/sian.agency/zillow-property-lookup.md
- **Developed by:** [SIÁN OÜ](https://apify.com/sian.agency) (community)
- **Categories:** Real estate, Automation, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.25 / 1,000 property details

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

## Zillow Property Detail API — Address, URL & ZPID Lookup 🏠

[![SIÁN Agency Store](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![Smart Idealista Scraper](https://img.shields.io/badge/Store-Smart%20Idealista%20Scraper-E60023)](https://apify.com/sian.agency/smart-idealista-scraper?fpr=sian) [![Redfin Property Scraper](https://img.shields.io/badge/Store-Redfin%20Property%20Scraper-A02021)](https://apify.com/sian.agency/redfin-property-scraper?fpr=sian) [![Apartments.com Property Scraper](https://img.shields.io/badge/Store-Apartments.com%20Scraper-1AE392)](https://apify.com/sian.agency/apartments-com-property-scraper?fpr=sian)

#### 🎉 The Zillow API replacement for single-property lookups — resolve any home by address, URL, or ZPID into clean JSON
##### Built for real estate developers, PropTech teams, investors, appraisers, and analysts

---

### 📋 Overview

**Need a home's price, Zestimate, beds/baths, tax history, or listing agent — but Zillow retired its public API?** This actor is the drop-in replacement. Give it a street address, a Zillow listing URL, or a numeric ZPID and it returns one clean, structured JSON record per property — no account, no scraping headaches, no API key of your own.

**Why thousands of real estate teams choose us:**
- ✅ **Three input types, auto-detected**: mix street addresses, Zillow URLs, and ZPIDs freely in one run — each row is classified and routed automatically.
- ⚡ **Two detail tiers in one actor**: a cheap standard lookup (core fields) or a premium full-intelligence payload (180+ fields) — pick cost vs depth per run.
- 🎯 **Lead-gen ready**: the premium tier surfaces the listing agent and broker (name, phone, email, license number, MLS ID).
- 💰 **Never charged for dead properties**: a not-found lookup is skipped and billed at zero — you only pay for real results.
- 💎 **Full property intelligence**: price history, tax history, schools, rent Zestimate, lot size, home type, coordinates, and RESO facts on the premium tier.
- ✨ **NEW**: single-actor `standard` + `premium` tiers so you can run high-volume cheap lookups and deep-dive enrichment side by side.

---

### ✨ Features

- 🏠 **Address / URL / ZPID lookup**: resolve properties by whatever identifier you have — no need to convert between them first.
- 📊 **Standard tier**: price, Zestimate, bedrooms, bathrooms, living area (sqft), year built, days on market, structured address, and the canonical Zillow URL.
- 💎 **Premium tier**: everything in standard PLUS tax history, price history, schools, rent Zestimate, last-sold price, lot size, home type, latitude/longitude, county, parcel ID, and 180+ RESO property facts.
- 👤 **Agent & broker contacts** (premium): listing agent name, phone, email, license number, MLS name & ID, and co-agent.
- 🔢 **Bulk in one run**: pass an array of identifiers or load a large list from a text file.
- 🧾 **Clean, typed output**: numbers are numbers, addresses are structured — ready for spreadsheets, dashboards, and models.
- 📄 **HTML run report**: cohort medians (price, Zestimate, $/sqft) and state / city / home-type coverage.
- 🔁 **Automatic de-duplication**: the same property resolved from different identifiers is only returned once.

---

### 🎬 Quick Start

Provide one or more property identifiers, pick a detail tier, and run. Results land in the Apify dataset as clean JSON in seconds.

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~zillow-property-lookup/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"propertyIdentifiers": ["1875 Avondale Circle, Jacksonville, FL 32205", "44471319"], "detailTier": "standard"}'
````

***

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Add your properties

Paste street addresses, Zillow listing URLs, or ZPIDs into **Property Identifiers** — mix any combination.

#### Step 2: Choose a detail tier

Pick `standard` for fast, low-cost core fields, or `premium` for the full property-intelligence payload.

#### Step 3: Run and export

Start the actor. In seconds you'll have clean JSON you can export to CSV, Excel, or an API.

**That's it! In under a minute, you'll have:**

- Structured property records for every identifier
- Optional agent contacts, tax/price history, and schools (premium)
- An HTML summary with cohort price and Zestimate medians

***

### 📥 Input Configuration

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `propertyIdentifiers` | array | No | Addresses, Zillow URLs, or ZPIDs (mix freely). FREE plan: up to 5 per run. |
| `detailTier` | string | No | `standard` (core fields) or `premium` (180+ fields). Default `standard`. |
| `propertyUrl` | string | No | Convenience field for a single Zillow property URL. |
| `zpid` | string | No | Convenience field for a single numeric ZPID. |
| `propertyAddress` | string | No | Convenience field for a single street address. |
| `requestsFromUrl` | string | No | URL of a text file with one identifier per line. |

**Example:**

```json
{
  "propertyIdentifiers": [
    "1875 Avondale Circle, Jacksonville, FL 32205",
    "44471319",
    "https://www.zillow.com/homedetails/2762-Downing-St-Jacksonville-FL-32205/44471319_zpid/"
  ],
  "detailTier": "premium"
}
```

***

### 📤 Output

Results are saved to the Apify dataset. Standard rows carry the core fields; premium rows add the full intelligence payload.

| Field | Type | Description |
|-------|------|-------------|
| `zpid` | number | Zillow property ID |
| `zillowUrl` | string | Canonical property page URL |
| `price` | number | Listed / last-known price (USD) |
| `zestimate` | number | Estimated market value (USD) |
| `bedrooms` / `bathrooms` | number | Bed & bath counts |
| `areaSqft` | number | Living area (sqft) |
| `yearBuilt` | number | Year built |
| `daysOnZillow` | number | Days on market |
| `address` | object | streetAddress, city, state, zipcode, neighborhood |
| `rentZestimate` | number | Estimated monthly rent (premium) |
| `priceHistory` | array | Listing / sale / price-change events (premium) |
| `taxHistory` | array | Yearly tax paid & assessed value (premium) |
| `schools` | array | Nearby schools with ratings (premium) |
| `agent` | object | Listing agent & broker contacts (premium) |
| `resoFacts` | object | 180+ RESO property facts (premium) |

**Example (premium):**

```json
{
  "detailTier": "premium",
  "zpid": 243335909,
  "zillowUrl": "https://www.zillow.com/homedetails/...",
  "price": 460000,
  "zestimate": 462100,
  "rentZestimate": 2750,
  "bedrooms": 3,
  "bathrooms": 2,
  "areaSqft": 1680,
  "yearBuilt": 1998,
  "homeType": "SINGLE_FAMILY",
  "address": { "streetAddress": "...", "city": "Austin", "state": "TX", "zipcode": "78745" },
  "agent": {
    "agentName": "Clay Byrne",
    "agentPhoneNumber": "(512) 942-7880",
    "brokerName": "Keller Williams Realty",
    "mlsName": "Unlock MLS",
    "mlsId": "5013986"
  },
  "priceHistory": [ /* ... */ ],
  "taxHistory": [ /* ... */ ],
  "schools": [ /* ... */ ]
}
```

***

### 💼 Use Cases & Examples

#### 1. Property Valuation (AVMs & Pricing Tools)

**PropTech teams building automated valuation models.**

**Input:** a list of ZPIDs or addresses
**Output:** price, Zestimate (with high/low range), rent Zestimate, last-sold price
**Use:** power an AVM or instant-offer pricing engine without a Zillow API key.

#### 2. Comps & CMA Research

**Agents and appraisers building comparative market analyses.**

**Input:** a batch of nearby addresses
**Output:** price, sqft, beds/baths, year built, price & tax history
**Use:** assemble a defensible CMA in minutes instead of hours.

#### 3. Lead Enrichment via Agent Contacts

**Lead-gen and CRM teams enriching a list of properties.**

**Input:** addresses or ZPIDs, `detailTier: premium`
**Output:** listing agent name, phone, email, license number, broker, MLS ID
**Use:** enrich a spreadsheet of listings with the people behind them.

#### 4. Real-Estate Analytics Dashboards

**Analysts feeding clean property data into BI tools.**

**Input:** portfolios of ZPIDs
**Output:** typed JSON — home type, days on market, lot size, price history
**Use:** stream directly into dashboards and models.

#### 5. Portfolio Monitoring

**Investors tracking a portfolio over time.**

**Input:** a saved list of ZPIDs on a schedule
**Output:** Zestimate movement, days on market, status changes
**Use:** get alerted when a home's value or status shifts.

***

### 🔗 Integration Examples

#### JavaScript/Node.js

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });

const run = await client.actor('sian.agency/zillow-property-lookup').call({
  propertyIdentifiers: ['44471319', '1875 Avondale Circle, Jacksonville, FL 32205'],
  detailTier: 'premium'
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')

run = client.actor('sian.agency/zillow-property-lookup').call(
    run_input={
        'propertyIdentifiers': ['44471319', '1875 Avondale Circle, Jacksonville, FL 32205'],
        'detailTier': 'premium'
    }
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item)
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~zillow-property-lookup/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"propertyIdentifiers": ["44471319"], "detailTier": "standard"}'
```

#### Automation Workflows (N8N / Zapier / Make)

1. **Trigger**: Schedule or webhook
2. **HTTP Request**: Call the actor API with your identifiers
3. **Process**: Handle the JSON property records
4. **Action**: Save to a CRM, spreadsheet, or database

***

### 📊 Performance & Pricing

#### FREE Tier (Try It Now)

- **Up to 5 identifiers** per run — full standard-tier access, same quality
- No credit card required
- Perfect for testing and small projects

#### PAID Tier (Production Ready)

- **Unlimited** identifiers per run
- Unlocks the **premium** detail tier (agent contacts, tax & price history, schools, 180+ facts)
- Pay-per-result: only charged for successful lookups — dead properties cost nothing

💰 **Transparent per-result pricing** — cheap standard lookups, aggressively priced premium intelligence.

🔗 [View current pricing](https://apify.com/sian.agency/zillow-property-lookup?fpr=sian)

***

### ❓ Frequently Asked Questions

**Q: What can I look a property up by?**
A: A street address, a Zillow property URL, or a numeric ZPID — mix all three in one run.

**Q: What's the difference between standard and premium?**
A: Standard returns core fields (price, Zestimate, beds/baths/sqft, year, days on market). Premium adds tax & price history, schools, rent Zestimate, agent contacts, lot size, coordinates, and 180+ RESO facts.

**Q: Do I get charged if a property isn't found?**
A: No. A not-found lookup is skipped and billed at zero — you only pay for real results.

**Q: How many properties can I process?**
A: FREE plan: up to 5 per run. PAID plan: unlimited.

**Q: What output formats are available?**
A: JSON, CSV, and Excel — export directly from the Apify dataset.

**Q: Is this legal?**
A: Yes — only publicly available property listing data is returned. See the legal section below.

***

### 🐛 Troubleshooting

**A lookup returns "no property found"**

- Verify the ZPID or address points to a live Zillow property.
- For addresses, include city and state (and ZIP where possible) for the most reliable match.

**Premium fields are empty**

- The premium tier requires a paying Apify plan — FREE runs fall back to standard automatically.
- Some fields (e.g. agent contacts) are only populated for actively listed properties.

**A URL isn't accepted**

- Provide a `https://www.zillow.com/homedetails/...` link that contains a ZPID (apartment/building URLs are not supported).

***

### ⚠️ Trademark Disclaimer

This is an independent tool and is **not affiliated with, endorsed by, or sponsored by Zillow Group, Inc.** "Zillow" and "Zestimate" are registered trademarks of Zillow, Inc. This actor returns only publicly available property listing data. All product names, trademarks, and registered trademarks are the property of their respective owners and are used for identification purposes only.

***

### ⚖️ Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the **GDPR** in the European Union 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, consult your lawyers.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

***

### 🤝 Support

[![Telegram Support](https://img.shields.io/badge/Telegram-Support%20Group-0088cc?logo=telegram)](https://t.me/+vyh1sRE08sAxMGRi)

**Join our active support community**

- For issues or questions, open an issue in the actor's Issues tab
- Check [SIÁN Agency Store](https://apify.com/sian.agency?fpr=sian) for more automation tools
- 📧 <apify@sian-agency.online>

***

**Built by [SIÁN Agency](https://www.sian-agency.online)** | **[More Tools](https://apify.com/sian.agency?fpr=sian)**

# Actor input Schema

## `propertyIdentifiers` (type: `array`):

🏠 **BULK LOOKUP:** Add one or more property identifiers. Each row is auto-detected as a **Zillow listing URL**, a **numeric ZPID**, or a **street address** — you can mix all three types freely.

📋 **Examples (one per line, use "Bulk edit"):**

- `1875 Avondale Circle, Jacksonville, FL 32205`
- `44471319`
- `https://www.zillow.com/homedetails/2762-Downing-St-Jacksonville-FL-32205/44471319_zpid/`

💡 **TIER-BASED LIMITS:**

- **FREE plan:** up to 5 identifiers per run
- **PAID plan:** unlimited identifiers

💡 **TIP:** for a single property you can instead use the convenience fields below.

## `detailTier` (type: `string`):

✨ **Choose how much data you get per property:**

- **standard** — lightweight core fields: price, Zestimate, beds, baths, area (sqft), year built, days on market, address, Zillow URL. Best for high-volume, low-cost lookups.
- **premium** — everything in standard PLUS tax history, price history, schools, rent Zestimate, listing agent & broker contacts, latitude/longitude, lot size, home type, and 180+ property facts. Available on paying Apify plans.

💡 FREE-plan runs always use the standard tier.

## `propertyUrl` (type: `string`):

🔗 **SINGLE LOOKUP (URL):** Paste one Zillow property URL.

📋 **How to get it:**

1. Open the property page on Zillow
2. Copy the address-bar URL
3. Paste it here

✅ **SUPPORTED:** `https://www.zillow.com/homedetails/...` links that contain a ZPID.

💡 **TIP:** use the array field above to look up many properties at once.

## `zpid` (type: `string`):

🔢 **SINGLE LOOKUP (ZPID):** A property's numeric Zillow ID (ZPID). You can find it in the property URL (the digits before `_zpid`).

📋 **Example:** `44471319`

## `propertyAddress` (type: `string`):

📍 **SINGLE LOOKUP (Address):** A full street address including city and state.

📋 **Example:** `1875 Avondale Circle, Jacksonville, FL 32205`

💡 **TIP:** the more complete the address (street, city, state, ZIP), the more reliable the match.

## `requestsFromUrl` (type: `string`):

📄 **BULK FROM FILE:** URL of a plain-text file with one identifier per line (address, URL, or ZPID). Handy for very large lists hosted in cloud storage.

💡 Lines are merged with any identifiers provided above and de-duplicated.

## Actor input object example

```json
{
  "detailTier": "standard"
}
```

# Actor output Schema

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

Structured property details — price, Zestimate, beds/baths/sqft, and (premium tier) tax + price history, schools, agent contacts, and 180+ facts.

## `htmlReport` (type: `string`):

HTML summary with lookup stats, cohort price / Zestimate / $-per-sqft medians, and state / city / home-type coverage.

# 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 = {
    "detailTier": "standard"
};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/zillow-property-lookup").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 = { "detailTier": "standard" }

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/zillow-property-lookup").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 '{
  "detailTier": "standard"
}' |
apify call sian.agency/zillow-property-lookup --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Zillow Property Lookup API — Address · URL · ZPID",
        "description": "Zillow property detail API alternative. Look up any home by street address, listing URL, or ZPID and get clean JSON: price, Zestimate, beds, baths, sqft, year built, days on market, plus a premium tier with tax history, price history, schools, agent contacts and 180+ property facts.",
        "version": "1.0",
        "x-build-id": "k3ygvRsmICtf7KpaR"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/sian.agency~zillow-property-lookup/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-sian.agency-zillow-property-lookup",
                "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/sian.agency~zillow-property-lookup/runs": {
            "post": {
                "operationId": "runs-sync-sian.agency-zillow-property-lookup",
                "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/sian.agency~zillow-property-lookup/run-sync": {
            "post": {
                "operationId": "run-sync-sian.agency-zillow-property-lookup",
                "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",
                "properties": {
                    "propertyIdentifiers": {
                        "title": "🏠 Property Identifiers (Address · URL · ZPID)",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "🏠 **BULK LOOKUP:** Add one or more property identifiers. Each row is auto-detected as a **Zillow listing URL**, a **numeric ZPID**, or a **street address** — you can mix all three types freely.\n\n📋 **Examples (one per line, use \"Bulk edit\"):**\n- `1875 Avondale Circle, Jacksonville, FL 32205`\n- `44471319`\n- `https://www.zillow.com/homedetails/2762-Downing-St-Jacksonville-FL-32205/44471319_zpid/`\n\n💡 **TIER-BASED LIMITS:**\n- **FREE plan:** up to 5 identifiers per run\n- **PAID plan:** unlimited identifiers\n\n💡 **TIP:** for a single property you can instead use the convenience fields below.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "detailTier": {
                        "title": "✨ Detail Tier",
                        "enum": [
                            "standard",
                            "premium"
                        ],
                        "type": "string",
                        "description": "✨ **Choose how much data you get per property:**\n\n- **standard** — lightweight core fields: price, Zestimate, beds, baths, area (sqft), year built, days on market, address, Zillow URL. Best for high-volume, low-cost lookups.\n- **premium** — everything in standard PLUS tax history, price history, schools, rent Zestimate, listing agent & broker contacts, latitude/longitude, lot size, home type, and 180+ property facts. Available on paying Apify plans.\n\n💡 FREE-plan runs always use the standard tier.",
                        "default": "standard"
                    },
                    "propertyUrl": {
                        "title": "🔗 Single Property URL",
                        "type": "string",
                        "description": "🔗 **SINGLE LOOKUP (URL):** Paste one Zillow property URL.\n\n📋 **How to get it:**\n1. Open the property page on Zillow\n2. Copy the address-bar URL\n3. Paste it here\n\n✅ **SUPPORTED:** `https://www.zillow.com/homedetails/...` links that contain a ZPID.\n\n💡 **TIP:** use the array field above to look up many properties at once."
                    },
                    "zpid": {
                        "title": "🔢 Single ZPID",
                        "type": "string",
                        "description": "🔢 **SINGLE LOOKUP (ZPID):** A property's numeric Zillow ID (ZPID). You can find it in the property URL (the digits before `_zpid`).\n\n📋 **Example:** `44471319`"
                    },
                    "propertyAddress": {
                        "title": "📍 Single Street Address",
                        "type": "string",
                        "description": "📍 **SINGLE LOOKUP (Address):** A full street address including city and state.\n\n📋 **Example:** `1875 Avondale Circle, Jacksonville, FL 32205`\n\n💡 **TIP:** the more complete the address (street, city, state, ZIP), the more reliable the match."
                    },
                    "requestsFromUrl": {
                        "title": "📄 Identifiers from a Text File (URL)",
                        "type": "string",
                        "description": "📄 **BULK FROM FILE:** URL of a plain-text file with one identifier per line (address, URL, or ZPID). Handy for very large lists hosted in cloud storage.\n\n💡 Lines are merged with any identifiers provided above and de-duplicated."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
