# Zillow Property API — $0.003 per property

> Zillow Property API: Full detail per zpid — price, beds/baths, size, year, description. $0.003 per delivered property, nothing delivered means nothing charged.

[Home](https://quanticdata.io/)/[Collectors](https://quanticdata.io/collectors/)/*Zillow Property API*

# Zillow Property API

A Zillow property API for a list of zpids: address split into city, state and ZIP, listing status and home type, price, beds and baths, living area and lot size with units, year built, coordinates, the listing description, last-sold price and date, the recent price history, brokerage and MLS id, photo count and photo URLs. Pass zpids or /homedetails/ URLs, one row per property.

[Get my free API key](https://app.quanticdata.io/register) [See the request](/collectors/zillow-property-api/#integration)

$0.003 per delivered property · $2 free every month · Failed runs never billed

POST /v1/scraper/collectors/zillow_property/run

```
$ curl $QD/zillow_property/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{"properties": ["29423772"], "max_results": 1}'
{ "status": "done", "count": 1,
  "results": [
    {
      "zpid": "…",
      "url": "…",
      "address": "…",
      "city": "…" } ],
  "cost": 0.003 }
# 1 property × $0.003 · nothing delivered, nothing charged
```

**$0.003 / property**666 propertys on the free $2 every month

**Semantic input**properties, max_results — no URL lists

**Up to 20**propertys per run, pagination handled for you

**No browser**read over HTTP/TLS — cheaper and faster than rendering

On this page: [What it is](/collectors/zillow-property-api/#what) [Output fields](/collectors/zillow-property-api/#output) [Inputs](/collectors/zillow-property-api/#input) [Pricing](/collectors/zillow-property-api/#pricing) [Integration](/collectors/zillow-property-api/#integration) [Use cases](/collectors/zillow-property-api/#use-cases) [Versus the alternatives](/collectors/zillow-property-api/#compare) [FAQ](/collectors/zillow-property-api/#faq)

## What a Zillow property API does

Where the Zillow search collector returns the board, this one returns the dossier: everything the home-details page holds for a single property, including the fields a results card omits — the `price_history` array of {date, price, event} events, `last_sold_price` with `date_sold`, `year_built`, the `mls_id` and brokerage, and the listing `description` up to its first 1500 characters.

The two estimate fields are handled by refusal, not by guessing. `zestimate` and `rent_zestimate` are populated only when Zillow server-renders them for that page and are left null otherwise — they are Zillow's figures, never ours, and never back-filled from a nearby number. Living area and lot size each carry their own unit field, so a sqft value is never confused with an m² one.

Input is meaning, not a URL *properties* *max_results*

## What one property looks like

Every delivered property carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

| Field | Type | What it holds |
| --- | --- | --- |
| `zpid` | string | Zillow property id. |
| `url` | string | Home-details URL. |
| `address` | string · nullable | Street address. |
| `city` | string · nullable | City. |
| `state` | string · nullable | State. |
| `zipcode` | string · nullable | ZIP. |
| `status` | string · nullable | Listing status (FOR_SALE, SOLD…). |
| `home_type` | string · nullable | SINGLE_FAMILY, CONDO… |
| `price` | number · nullable | Listing price. |
| `currency` | string · nullable | Price currency. |
| `zestimate` | number · nullable | Zestimate when server-rendered. |
| `rent_zestimate` | number · nullable | Rent Zestimate when server-rendered. |
| `beds` | number · nullable | Bedrooms. |
| `baths` | number · nullable | Bathrooms. |
| `living_area` | number · nullable | Living area. |
| `living_area_unit` | string · nullable | sqft/m². |
| `lot_size` | number · nullable | Lot size value. |
| `lot_size_unit` | string · nullable | Lot size unit. |
| `year_built` | integer · nullable | Year built. |
| `latitude` | number · nullable | Latitude. |
| `longitude` | number · nullable | Longitude. |
| `description` | string · nullable | Listing description (first 1500 chars). |
| `last_sold_price` | number · nullable | Last sold price. |
| `date_sold` | string · nullable | Last sold date. |
| `price_history` | object[] | Recent price events ({ date, price, event }). |
| `brokerage` | string · nullable | Listing brokerage. |
| `mls_id` | string · nullable | MLS id. |
| `photo_count` | integer · nullable | Total photos on the listing. |
| `photos` | string[] | First photo URLs. |

## Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

| Input | Type | Required | What it does |
| --- | --- | --- | --- |
| `properties` | array | yes | zpids or /homedetails/ URLs (zillow_search returns both). |
| `max_results` | integer | no | How many properties to deliver at most (1–20). You pay only for delivered properties. |

Pricing

## Zillow Property API pricing

$0.003 per delivered property. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 666 propertys before you spend anything.

**$0.003**per delivered property*$2.4 per 1,000 delivered propertys*

**666 propertys**on the free allowance*$2 every month, no card*

**Zero rows**zero charge*blocks, captchas and retries are on us*

**−30%**on volume tiers*the catalog returns your key's price*

### Pay as you go

$0/mo

- $2 free credit / month

- 60 requests / min

- List unit prices

### Starter

$19/mo

- $15 free credit / month

- 300 requests / min

- 10% off unit prices

Most popular

### Growth

$79/mo

- $50 free credit / month

- 600 requests / min

- 20% off unit prices

### Scale

$299/mo

- $250 free credit / month

- 1,200 requests / min

- 30% off unit prices

Same wallet, same key and same $2 monthly allowance as every other [Data API](https://quanticdata.io/web-data-api-for-ai/). Prices are launch pricing read live from the billing config — `GET /v1/scraper/collectors` returns the price your key actually pays.

Integration

## One POST, typed rows

Base URL `https://api.quanticdata.io/v1`, Bearer auth, the same key as every other Data API. Endpoint: `POST /v1/scraper/collectors/zillow_property/run`.

```
curl -X POST https://api.quanticdata.io/v1/scraper/collectors/zillow_property/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"properties":["29423772"],"max_results":1}'
```

```
import requests

r = requests.post(
    "https://api.quanticdata.io/v1/scraper/collectors/zillow_property/run",
    headers={"Authorization": f"Bearer {QD_API_KEY}"},
    json={
        "properties": [
            "29423772"
        ],
        "max_results": 1
    },
    timeout=120,
)
for row in r.json()["payload"]["results"]:
    print(row)
```

```
const res = await fetch(
  "https://api.quanticdata.io/v1/scraper/collectors/zillow_property/run",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.QD_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({"properties":["29423772"],"max_results":1}),
  },
);
const { payload } = await res.json();
console.table(payload.results);
```

```
claude mcp add quantumproxies \
  -e QUANTUMPROXIES_API_KEY=qd_live_your_key_here \
  -- npx -y quantumproxies-mcp

# then, in the chat:
> run the zillow_property collector with properties=["29423772"] and max_results=1
```

## What people build with the Zillow property API

Three shapes of work this endpoint was designed around.

### Comp dossiers

Resolve zpids from a Zillow search into full records with price history and last-sold data for a comp set.

### Valuation inputs

Feed beds, baths, living area, year built and coordinates into your own model instead of a single estimate.

### Listing archives

Snapshot description, status, brokerage and photos for a watchlist of properties over time.

## Zillow Property API versus rolling your own

The differences that actually cost time when you build this in-house.

|  | DIY scraper | This collector |
| --- | --- | --- |
| Coverage | One field row from search | The full home-details record |
| Zestimate | Presented as a fact | Only when Zillow renders it, else null |
| Units | A bare number | Living area and lot size each with their unit |

## FAQ

Questions we get about the Zillow property API.

[Something else? Ask us →](mailto:hello@quanticdata.io)

### What do I pass — a zpid or a URL?

Either a Zillow property id or a full /homedetails/ URL; the collector reads the zpid from the URL. The Zillow search collector returns both, so its rows feed straight into this one.

### Is the Zestimate always included?

Only when Zillow server-renders it on the page. When it does, `zestimate` and `rent_zestimate` are filled with Zillow's own numbers; when it does not, they stay null rather than being estimated on our side.

### Do I get the full price history?

You get the recent price events the page publishes as `price_history` — each with its date, price and event type — along with the discrete `last_sold_price` and `date_sold` fields.

### Is there a free Zillow property API?

Every account gets $2 of credit every month with no card, which is about 666 delivered propertys on this endpoint at $0.003 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

### How much does one run cost?

Multiply the rows you actually receive by $0.003. A run capped at 20 propertys — the maximum for this collector — costs $0.06 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and `GET /v1/scraper/collectors` returns the price your key actually pays.

## Run the Zillow property API now

$2 of free credit every month, no card. Your key returns its own prices from `GET /v1/scraper/collectors`.

[Get my free API key](https://app.quanticdata.io/register)

Related: [All 65 collectors](https://quanticdata.io/collectors/) [Zillow scraper API](https://quanticdata.io/collectors/zillow-scraper-api/) [Idealista Scraper API](https://quanticdata.io/collectors/idealista-scraper-api/) [Business directory API](https://quanticdata.io/collectors/business-directory-api/) [eBay Product API](https://quanticdata.io/collectors/ebay-product-api/) [Flipkart Scraper API](https://quanticdata.io/collectors/flipkart-scraper-api/) [Documentation](https://quanticdata.io/docs/)

---

Source: https://quanticdata.io/collectors/zillow-property-api/ · Site index for AI: https://quanticdata.io/llms.txt
