Zillow - property details
v1.0.0by extracthub Updated 11/7/2026 zillow.com
Zillow property page (homedetails): zpid, address, coordinates, price, status, price cut, beds, baths, living area, at-a-glance facts, full description, Zestimate and rent Zestimate, days on Zillow, views, saves, MLS number, brokerage, all facts and features by category, price history and tax history.
@1 follows fixes and added fields. to freeze the output.
Live Preview Not Available
This is a static view of the extractor configuration. To see a live preview and inspect the HTML, please fork this config.
What it returns
result.extracted is a JSON object with these top-level fields (from the current configuration; every released version keeps the schema it was released with, see the changes under Versions and health). A sample is in the extracted data panel above.
| Field | Type |
|---|---|
| zpid | string |
| url | string |
| address | string |
| streetAddress | string |
| city | string |
| state | string |
| zipcode | string |
| latitude | number |
| longitude | number |
| price | number |
| currency | string |
| status | string |
| priceChange | string |
| beds | number |
| baths | number |
| livingArea | number |
| homeType | string |
| atAGlance | string[] |
| description | string |
| zestimate | number |
| rentZestimate | number |
| daysOnZillow | number |
| views | number |
| saves | number |
| mlsId | string |
| brokerage | string |
| facts | object{category,items}[] |
| priceHistory | object{changePercent,date,event,price,pricePerSqft}[] |
| taxHistory | object{propertyTax,taxAssessment,year}[] |
How to call Zillow - property details
Pass the URL of a zillow.com page and this extractor's pinned id. Authenticate every request with your API key in the X-API-Key header (a test key, exth_test_..., returns simulated results at no cost). Every parameter and error code is described in the API reference.
Realtime: one URL, result in the response
https://api.extracthub.io/api/extractor/extract
Authentication required via X-API-Key header
| Parameter | Type | Required | Description |
|---|---|---|---|
| target_url | string | Yes | The URL to scrape and extract data from |
| extractor_id | string | Yes | This extractor's ID with a version pin: @extracthub1/zillow-property@1. Use @1 for the latest 1.x or @1.2.3 for an exact version. |
| return_raw_html | boolean | No | Include raw HTML in response (default: false) |
| async_fallback | boolean | No | Default true: a request still queued after the wait limit becomes an async job (202 with job_id). false: 503 queue_timeout instead |
| webhook_url | string | No | HTTPS URL notified if the request becomes a job (job.completed / job.failed) |
Code examples
curl -X GET "https://api.extracthub.io/api/extractor/extract?target_url=https://example.com&extractor_id=%40extracthub1%2Fzillow-property%401" \
-H "X-API-Key: YOUR_API_KEY" Example response
Shape of a 200 answer (placeholder values). metadata also carries costUsd, and the X-Extractor-Version header names the exact version that ran. A busy queue answers 202 with job_id, status_url and result_url; poll GET /api/extractor/jobs/{id} (or cancel it with POST /api/extractor/jobs/{id}/cancel).
{
"success": true,
"result": {
"extracted": {
"zpid": "…",
"url": "…",
"address": "…",
"streetAddress": "…",
"city": "…",
"state": "…",
"zipcode": "…",
"latitude": 0,
"longitude": 0,
"price": 0,
"currency": "…",
"status": "…",
"priceChange": "…",
"beds": 0,
"baths": 0,
"livingArea": 0,
"homeType": "…",
"atAGlance": [
"…"
],
"description": "…",
"zestimate": 0,
"rentZestimate": 0,
"daysOnZillow": 0,
"views": 0,
"saves": 0,
"mlsId": "…",
"brokerage": "…",
"facts": [
{
"category": "…",
"items": [
"…"
]
}
],
"priceHistory": [
{
"date": "…",
"event": "…",
"price": 0,
"changePercent": "…",
"pricePerSqft": 0
}
],
"taxHistory": [
{
"year": 0,
"propertyTax": 0,
"taxAssessment": 0
}
]
},
"metadata": {
"url": "https://example.com",
"useProxy": true,
"renderJs": true,
"scrapedAt": "2026-01-01T12:00:00.000Z"
}
}
} Batch: many URLs in one request
The batch runs in the background with the version resolved once at submission. Read the results as NDJSON pages with a stable cursor; succeeded URLs are charged, and failed URLs only when their scrape reached the provider. If your credit runs out the batch pauses and resumes when credit is available, and POST /api/extractor/batch/{id}/cancel stops it. Signed webhooks report batch.completed, batch.failed and batch.paused.
curl -X POST "https://api.extracthub.io/api/extractor/batch" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"extractor_id": "@extracthub1/zillow-property@1",
"targets": [
{ "url": "https://zillow.com/..." },
{ "url": "https://zillow.com/..." }
],
"webhook_url": "https://your-app.example/webhooks/extracthub"
}'
# Progress, then results as NDJSON pages (cursor = last index)
curl "https://api.extracthub.io/api/extractor/batch/BATCH_ID" -H "X-API-Key: YOUR_API_KEY"
curl "https://api.extracthub.io/api/extractor/batch/BATCH_ID/results" -H "X-API-Key: YOUR_API_KEY" In a pipeline
In the dashboard's pipeline builder, add Zillow - property details as an extractor node and set its version pin to 1 (or exactly 1.0.0). A previous node can feed it the URLs it extracts; pipelines run manually or on a cron schedule, report progress live and export JSON, CSV or NDJSON.
With an AI agent (MCP)
Connect Claude Code, Claude Desktop or Cursor to the ExtractHub MCP server (https://api.extracthub.io/mcp, your API key as a Bearer token) and ask in plain language. The agent calls extract with this extractor's pinned id, or create_batch for many URLs, at the same price and limits as the API. Use a test key to try it without credit. Set up the MCP server.
Use ExtractHub to extract https://zillow.com/... with @extracthub1/zillow-property@1 {
"tool": "extract",
"arguments": {
"extractor_id": "@extracthub1/zillow-property@1",
"url": "https://zillow.com/..."
}
} Versions and health
Each version is immutable. @N resolves to the newest non-yanked version of major N; a deprecated major keeps working until its sunset date and its responses carry Deprecation and Sunset headers. Health comes from scheduled checks of the released versions.
- v1.0.0 active healthy Released 11/6/2026
Zillow - property details: frequently asked questions
Is Zillow - property details a zillow.com scraper?
Yes. Zillow - property details is an ExtractHub extractor: a saved, versioned web scraper for zillow.com pages that returns the page as structured JSON. Call it as a zillow.com scraper API with extractor_id=@extracthub1/zillow-property@1; it never changes under you, because every released version is immutable.
What data does Zillow - property details return?
It returns a JSON object with 29 top-level fields: zpid (string), url (string), address (string), streetAddress (string), city (string), state (string), zipcode (string), latitude (number), longitude (number), price (number), currency (string), status (string), priceChange (string), beds (number), baths (number), livingArea (number), homeType (string), atAGlance (string[]), description (string), zestimate (number), rentZestimate (number), daysOnZillow (number), views (number), saves (number), mlsId (string), brokerage (string), facts (object{category,items}[]), priceHistory (object{changePercent,date,event,price,pricePerSqft}[]) and taxHistory (object{propertyTax,taxAssessment,year}[]). The extracted data panel on this page shows a sample.
How do I call Zillow - property details?
Send GET or POST https://api.extracthub.io/api/extractor/extract with your API key in the X-API-Key header, extractor_id=@extracthub1/zillow-property@1 and the URL of a zillow.com page as the target. For many URLs use POST https://api.extracthub.io/api/extractor/batch, and in a pipeline add it as an extractor node pinned to 1.
Can an AI agent use Zillow - property details?
Yes. Connect Claude Code, Claude Desktop, Cursor or another MCP client to the ExtractHub MCP server at https://api.extracthub.io/mcp with your API key, then ask it to extract a zillow.com page: the agent calls the extract tool with extractor_id=@extracthub1/zillow-property@1 (or create_batch for many URLs), at the same price as the API.
Which version should I pin?
Pin the major (@extracthub1/zillow-property@1) to receive fixes and added fields automatically, or the exact version (@extracthub1/zillow-property@1.0.0) to freeze the output. A breaking schema change is always released as a new major, so a major pin never loses or retypes a field.
Does it render JavaScript or use a proxy?
Yes, it renders the page with JavaScript and it goes through a proxy. Calls are charged at the premium_js tier (JavaScript rendering through the proxy). These settings are part of each released version; JavaScript rendering, XHR capture and browser actions always use the proxy.
More web scrapers in the scraper catalog and in Real Estate.