ScavioScavio
Pricing
Tools
Sign InsGet Startedg
Blog
Zillow6 min readOct 27, 2026

How to Get Zillow Property Data Through an API: Listings, Sold Prices and Zestimates

Use Scavio's Zillow API: one POST returns about 41 for-sale, rental or sold listings for a city, and a property call adds the Zestimate and price history.

Scavio Team

Oct 27, 2026

Try the Zillow API free
scavio
Real estate / Property data
Zillow

To get Zillow property data programmatically, use Scavio's Zillow API. POST /api/v1/zillow/search with a city or ZIP returns about 41 listings a page for sale, for rent or recently sold, each with price, beds, baths, square footage, coordinates and, for sales, the sale date. /api/v1/zillow/property adds one home's Zestimate, Rent Zestimate, last sale and dated price history, and /api/v1/zillow/reviews returns a Zillow agent's profile and reviews. Every call costs 1 credit, about $0.002 on the Growth plan billed yearly, and needs no Zillow partner approval.

Zillow Group's own Zestimates and MLS Listings APIs are for approved businesses and invited MLS partners, so they are the wrong tool if you need data from an API key today.

Step 1: Search a city's listings

Bash
curl -s https://api.scavio.dev/api/v1/zillow/search \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"location": "Denver, CO"}'

On October 27, 2026 this returned 41 of 3,838 Denver homes for sale in one call. Each row carries the zpid, price, address, coordinates, beds, baths, living area, lot size, home type, days on Zillow, broker and photos. Nine rows had a dated price cut, for example "price_change": -149900 on September 24. location also takes a ZIP, a county slug or a pasted zillow.com search URL, and page moves through the rest; next_page_url is null on the last page.

Step 2: Pull recently sold homes for comps

Bash
curl -s https://api.scavio.dev/api/v1/zillow/search \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"location": "Denver, CO", "listing_status": "sold"}'

This returned 41 of 30,359 Denver sales, all closed between October 23 and 26. One row, as captured (gallery trimmed):

JSON
{
  "zpid": "13284039",
  "url": "https://www.zillow.com/homedetails/2665-Dahlia-St-Denver-CO-80207/13284039_zpid/",
  "status": "SOLD",
  "home_status": "RECENTLY_SOLD",
  "price": 875000,
  "price_display": "$875,000",
  "zestimate": 878600,
  "rent_zestimate": 3617,
  "tax_assessed_value": 914900,
  "address": "2665 Dahlia Street, Denver, CO 80207",
  "zipcode": "80207",
  "beds": 3,
  "baths": 2,
  "living_area": 2550,
  "lot_area_value": 4310,
  "lot_area_unit": "sqft",
  "home_type": "SINGLE_FAMILY",
  "date_sold": "2026-10-26T07:00:00.000Z",
  "days_on_zillow": 1
}

Divide price by living_area and you have price per square foot: the median single-family sale that week was $349 in Denver, $582 in Seattle and $185 in Columbus. One caveat: in non-disclosure states Zillow shows no sale price, and the same search for Austin returned 41 sales with price null on every one. To filter comps, use the city name with beds_min, home_type, sqft_min or days_on_zillow; a bare ZIP only works without filters.

Step 3: Get one property with its Zestimate and price history

Bash
curl -s https://api.scavio.dev/api/v1/zillow/property \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"zpid": "13288820"}'

zpid takes the id from a search row or a full Zillow listing URL. The captured response, trimmed to the valuation fields and the first three of 17 price points:

JSON
{
  "zpid": "13288820",
  "home_status": "FOR_SALE",
  "home_type": "SINGLE_FAMILY",
  "price": 1350000,
  "price_per_square_foot": 368,
  "price_change": -149900,
  "price_change_date": "2026-09-24",
  "zestimate": 1330900,
  "rent_zestimate": 5376,
  "last_sold_price": 1600000,
  "date_sold": "2024-07-02T00:00:00.000Z",
  "street_address": "1521 Monaco Parkway",
  "city": "Denver",
  "neighborhood": "South Park Hill",
  "bedrooms": 5,
  "bathrooms": 4,
  "living_area": 3669,
  "year_built": 1937,
  "mls_id": "9275500",
  "price_history": [
    { "date": "2026-09-24", "price": 1350000 },
    { "date": "2026-08-27", "price": 1499900 },
    { "date": "2026-07-16", "price": 1550000 }
  ]
}

The full history runs back to 2000 and shows the home listed at $1,750,000 on March 5, 2026 before six reductions. The response also carries the description, 47 photos, a fact sheet, the brokerage and the MLS name. A brand-new listing may have no Zestimate yet: a Phoenix house listed that day came back with zestimate null and its May 2026 sale at $247,500.

Step 4: Check rentals for yield

Bash
curl -s https://api.scavio.dev/api/v1/zillow/search \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"location": "Denver, CO", "listing_status": "for_rent"}'

Denver returned 41 of 14,586 rentals. Apartment buildings come back as one row with is_building: true, a rent range (min_rent 1715, max_rent 2370 for IMT Cherry Creek), available_unit_count and a units list by bedroom count. Pass the building's url to /property for floor plans and amenities. Pair rents with the Rent Zestimate from Step 3 to estimate gross yield by neighbourhood.

Step 5: Look up an agent's reviews

Bash
curl -s https://api.scavio.dev/api/v1/zillow/reviews \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"screen_name": "ericbramlett"}'

This endpoint is about agents, not properties. For Eric Bramlett's team it returned a rating of 5 across 2,223 reviews, split into 1,213 "helped me buy" and 426 "helped me sell", 5,851 past sales, 146 for-sale listings, an active Texas license, service areas, the team roster and the latest reviews with text, date and four sub-ratings (local knowledge, process expertise, responsiveness, negotiation skills).

All three endpoints

EndpointWhat it returnsCredits
/api/v1/zillow/searchFor-sale, rental or sold listings, about 41 a page, with 25 filters and 14 sorts1
/api/v1/zillow/propertyOne home: Zestimate, Rent Zestimate, last sale, price history, facts, photos, brokerage1
/api/v1/zillow/reviewsAn agent's profile, rating, review counts and reviews1

For a side-by-side of every option, including Zillow's own partner APIs, see the best Zillow property data APIs.

Getting started

  1. Sign up at dashboard.scavio.dev/sign-up: 50 free credits, no card required.
  2. Copy your API key from the dashboard.
  3. Send a POST to /api/v1/zillow/search with a city and your key in the Authorization header.

Try the Zillow API free in the playground first, try the no-code Zillow scraper and bulk Zestimate lookup, or call it from Claude and other agents through the MCP server.

Reference: Zillow API overview · search · property · agent reviews

Frequently asked questions

What is a property data API?

A property data API returns facts about homes as structured data you can call from code: listing price and status, beds, baths and square footage, sale history, tax values and automated value estimates. Some, such as Zillow's partner APIs or RentCast, are built on licensed feeds and public records; others, such as Scavio's Zillow API, return what Zillow's public pages show.

Can I get the Zestimate through an API?

Yes. Scavio's /api/v1/zillow/property returns zestimate and rent_zestimate for one home by zpid or listing URL, and search rows carry them when Zillow shows them on the results page. Zillow's own Zestimates API is for approved commercial use and is requested through Zillow Group's developer portal.

Does Zillow show sold prices in every state?

No. In non-disclosure states such as Texas, Zillow publishes no sale price. A sold search for Austin on October 27, 2026 returned 41 sales with beds, baths, square footage and mostly a Zestimate, and a price on none of them, while Denver, Phoenix, Atlanta, Seattle and Columbus each returned a price on all 41.

How much does Zillow data cost with Scavio?

Every Zillow call costs 1 credit: about $0.002 on the Growth plan billed yearly and $0.0043 on the $30 monthly Project plan. A search page returns about 41 listings, so a city's newest sales cost one credit. New accounts get 50 free credits with no card.

Can I search Zillow rentals through an API?

Yes. Set listing_status to for_rent on Scavio's search. Denver returned 41 of 14,586 rentals, with apartment buildings carrying a rent range, unit prices by bedroom count and available unit count. On rentals, min_price and max_price filter monthly rent.

Zillow data as JSON

  • Search, property detail and agent reviews
  • Sold prices, Zestimates and price history
  • 1 credit a call, no partner approval
Try the Zillow API free

50 free credits, no credit card

On this page

  1. Step 1: Search a city's listings
  2. Step 2: Pull recently sold homes for comps
  3. Step 3: Get one property with its Zestimate and price history
  4. Step 4: Check rentals for yield

Related articles

View all
  • scavio
    Comparison / Real estate
    Zillow
    6 Best Zillow Property Data APIs in 2026: Why Scavio Is the Best Fit Without Zillow Partner Access
  • scavio
    Zestimate / Real estate
    Zillow
    Can You Still Get Zillow Zestimate API Access? Here Is How to Get Zestimates Without It
ScavioScavio

One scraper API for every social, search, e-commerce and real estate platform. Built for AI agents.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative
  • Serper Alternative
  • Tavily vs Scavio
  • SerpAPI vs Scavio
  • All alternatives
  • Compare Scavio vs alternatives

Search APIs

  • Google Search API
  • Amazon Product API
  • YouTube API
  • Reddit API
  • Walmart Product API
  • TikTok API
  • Instagram API

Tools

  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy