# Zillow Zestimate & Rent Estimate API

> Zillow rent estimate and Zestimate via API: Zestimate history per home, rent Zestimate with low/high range for any address, rental data by ZIP.

- URL: https://everydata.io/zillow-zestimate-api
- Updated: 2026-09-30
- Publisher: everydata.io (https://everydata.io)

The Zestimate is Zillow's automated valuation for almost every home in the United States, and its history tells you how the market has treated a specific property. The everydata.io Zillow Zestimate API, currently in beta, exposes three things around it: the Zestimate time series for a property, a Zillow rent estimate (the rent Zestimate) with a low/high range and comparable floorplans for any address, and rental market statistics – median rent, trend over time, rent histogram and per-ZIP medians – for a city or ZIP code.

## Key facts

- Platform: [Zillow API](https://everydata.io/apis/zillow) (beta)
- Main endpoint: `GET /zil/zestimate-history`
- Quota: A call to the Zillow API counts as 2 requests against the monthly quota.
- Pricing: 100 free requests a month; paid plans from €30 a month for 5,000 requests (€1.00–€6.00 per 1,000 requests). One quota is shared across all 35 platforms; failed requests (5xx, blocked pages) are not counted.

## What you get

GET /zil/zestimate-history returns data, an array of series. The series named "This home" contains points as {x, y} pairs where x is a Unix timestamp in milliseconds and y the Zestimate in USD on that date – ready to plot or to compute year-over-year change. The current Zestimate, its low and high percent band and the rentZestimate are also part of the property object from /zil/property-v2 if you only need the latest value.

GET /zil/rent-estimate works from an address rather than a zpid. Under data you get floorplans with rentZestimate, rentZestimateRangeLow and rentZestimateRangeHigh for the matched home, geo with lat, lng, zip, city and state, marketSummary with medianRent, availableRentals and medianDaysOnMarket for the surrounding area, and similarFloorplans – count, medianRent and a listings array of nearby rentals with rent, beds, baths, distance and active flag, filterable by bedrooms, propertyTypes, laundry, amenities, pets and distanceInMiles.

GET /zil/market-data takes a location such as "Houston, TX" or a ZIP and returns data.marketPage: areaName, areaType, date and marketTemperature; summary with medianRent, monthlyChange, yearlyChange and availableRentals; medianRentPriceOverTime with currentYear and prevYear series; rentHistogram.priceAndCount buckets; rentCompare with nationalMedianRent versus cityMedianRent; and zipcodesInCity with a medianRent per ZIP, plus nearByAreas and nearbyAreaTrends.

- Zestimate history as a {x: epoch ms, y: USD} time series per zpid or URL
- Rent Zestimate with rentZestimateRangeLow / rentZestimateRangeHigh for any address
- Comparable rental floorplans with rent, beds, baths, distance and active status
- Area marketSummary: medianRent, availableRentals, medianDaysOnMarket
- City or ZIP market data: medianRentPriceOverTime, rentHistogram, rentCompare, zipcodesInCity
- Filters on rent comparables: bedrooms 0–4plus, propertyTypes, laundry, amenities, pets, distanceInMiles 1–5

## How it works

Start with the history: call GET /zil/zestimate-history with zpid or url. The example is cut to two points; real series typically hold monthly values spanning several years, oldest first.

```bash
curl -s "https://api.everydata.io/zil/zestimate-history?zpid=28253016" \
  -H "x-api-key: YOUR_API_KEY"
```

Response (shortened):

```json
{
  "responseStatus": "PAGE_FOUND",
  "responseMessage": "Page successfully found!",
  "data": [
    {
      "name": "This home",
      "points": [
        {
          "x": 1735689600000,
          "y": 270000
        },
        {
          "x": 1738368000000,
          "y": 280100
        }
      ]
    }
  ]
}
```

For rents, call GET /zil/rent-estimate?address=15626 Laurel Heights Dr Houston TX 77084&bedrooms=3&propertyTypes=house. The response's data.floorplans[0] gives rentZestimate 2100 with a 1900–2300 range in the example, data.marketSummary reports medianRent 1650 across 8,123 available rentals with 28 median days on market, and data.similarFloorplans lists the comparable listings that informed the estimate. Tighten the comparables with distanceInMiles, laundry=inUnit, amenities=parking or pets=dogs.

For an area rather than a home, call GET /zil/market-data?location=Houston, TX. data.marketPage.summary gives the headline medianRent with monthlyChange and yearlyChange in dollars; medianRentPriceOverTime.currentYear and prevYear are arrays of {date, price} for month-end dates; rentHistogram.priceAndCount shows how many listings sit in each rent bucket; zipcodesInCity ranks every ZIP in the city by medianRent. marketTemperature.temperature (for example WARM) summarises demand.

Zestimates are model outputs, not appraisals, and Zillow updates them roughly monthly; do not expect a new point every day. For sold homes, pair the history with /zil/price-tax-history to compare Zestimate against actual sale prices – a quick way to gauge model accuracy in a neighbourhood.

## What teams build with this

### Home-equity and portfolio tracking

Fintech and lending apps refresh the Zestimate series for each customer's home to show equity growth and to trigger refinance or HELOC conversations.

### Rent pricing for landlords and property managers

Set or review asking rents using the rent Zestimate range, the comparable floorplans and the area's medianDaysOnMarket, then re-check before every lease renewal.

### Buy-versus-rent and yield analysis

Divide the rent Zestimate by the Zestimate or asking price per home to screen for gross yield, and compare against the city median from market-data.

### Market reports and content

Publishers and brokerages generate monthly rental-market pages per city and ZIP from medianRentPriceOverTime, rentHistogram and zipcodesInCity without maintaining their own data collection.

## Pricing

Each zestimate-history, rent-estimate or market-data call is one request and counts 2 quota units. A portfolio tool refreshing 1,000 homes monthly plus 50 city market pages weekly makes about 1,200 requests – roughly 2,400 units – so the Starter plan (5,000 units, €30) is usually enough; larger apps move to Production (50,000 units, €80). All Zillow endpoints are included in every plan, and upstream 5xx errors are not billed.

## FAQ

### What format are the history points?

data[].points is an array of {x, y}: x is a Unix epoch timestamp in milliseconds, y the Zestimate in US dollars. The series named "This home" is the property itself.

### How far back does the Zestimate history go?

As far as Zillow displays on the property page – typically several years of roughly monthly values. Newly built homes have shorter series.

### Do I need a zpid for the rent estimate?

No. /zil/rent-estimate takes a plain address string plus optional filters such as bedrooms and propertyTypes. The matched zpid is returned inside data.floorplans.

### What does market-data cover?

Rental market statistics for a city or ZIP: median rent, monthly and yearly change, listings count, rent trend over the current and previous year, a rent histogram, national comparison and per-ZIP medians. It is not a for-sale price index.

### Is this endpoint in beta?

Yes – the Zillow endpoints on everydata.io are currently in beta. Response shapes follow Zillow's data and are stable, but additional fields may appear.

## Related use cases

- [Zillow API for Property Data](https://everydata.io/zillow-property-data-api)
- [Zillow Listings Scraper API](https://everydata.io/zillow-real-estate-listings-api)
- [Yahoo Finance Options Chain & Market Data API](https://everydata.io/yahoo-finance-market-data-api)

## More

- [All platforms](https://everydata.io/apis) · [Pricing](https://everydata.io/pricing) · [API reference](https://everydata.io/docs) · [Getting started](https://everydata.io/docs/getting-started) · [MCP server](https://everydata.io/docs/mcp) · [Status](https://everydata.io/status)
- Machine-readable: [llms.txt](https://everydata.io/llms.txt), [llms-full.txt](https://everydata.io/llms-full.txt), [OpenAPI](https://api.everydata.io/openapi.json)
