Zillow API. Homes, sold prices and Zestimates as JSON.
Search Zillow homes for sale, sold homes and rentals by ZIP, city or map area. Look up any home's facts, price history and Zestimate. No Zillow partner approval, no scraping to maintain.
100 free credits · No credit card required · No Zillow login
curl -G https://api.realtycrawl.com/v1/zillow/sold \ -H "Authorization: Bearer $REALTYCRAWL_KEY" \ -d zip=80221 \ -d sold_within_days=90{ "priced_count": 1, "disclosed_count": 0, "median_sale_price": 450000, "p25": 450000, "p75": 450000, "median_price_per_sqft": 265, "earliest_sold_date": "2026-10-09", "latest_sold_date": "2026-10-09"}Six routes, one schema.
Every route returns the same typed rows as our other sources, so code you write for Zillow works for Redfin, Realtor.com, StreetEasy and Auction.com too.
For sale, sold and for rent
Search an area and get every home Zillow shows, with price, beds, baths, size, type, location and days on Zillow. Big areas are split and paged for you.
Sold prices, honestly
Sale price, sale date and how the price is known. In non-disclosure states the price is null with a reason, never a guess.
Full property history
Price history, county tax history and 10 years of monthly Zestimates for one home, sold and off-market homes included.
Zestimate and Rent Zestimate
Passed through and labeled as Zillow's. We don't make our own estimates.
Sold comps for any home
The recent sales most like one home, ranked by similarity, with the median price per sqft and an indicated value. Outliers are flagged and left out.
Find homes by address
Look up a home by address, Zillow URL or zpid. An address that matches several homes returns the candidates, and it isn't charged.
The Zillow routes. Credits per call.
Prefer an AI assistant? The same routes are tools on our Zillow MCP server.
| Route | Credits | What it returns |
|---|---|---|
GET /v1/zillow/listings | 1 | Homes for sale in an area on Zillow, one page at a time. Zillow shows at most 820 results per search, so we split large areas into smaller map boxes and page through them with `next_cursor`. A cache miss returns 202 and a job to poll. |
GET /v1/zillow/sold | 1 | Homes sold in an area on Zillow, with sale price, sale date and how the price is known. Sold prices in non-disclosure states may be null. Large areas are split and paged with `next_cursor`. |
GET /v1/zillow/rentals | 1 | Homes and apartment buildings for rent in an area on Zillow. Buildings come back as one row with the lowest rent and a unit list in `extras.units`. |
GET /v1/zillow/property | 2 | Facts about one home on Zillow: size, type, year built, listing agent, last sale, county tax record, the full price and tax history, and 10 years of monthly Zestimates, including for sold and off-market homes. If the history can't be read on a call, the facts still come back with `completeness: partial` and a field note. |
GET /v1/zillow/estimate | 1 | Zillow's Zestimate and Rent Zestimate for one home, labeled as Zillow's. We pass them through; we do not make our own. |
GET /v1/zillow/comps | 2 | Recent sales most like one home: nearby, similar in size, beds and baths, and recent, ranked by similarity. `summary` gives the median sale price and price per sqft over the comps, and an indicated value for the home. Sales far off the comps' price per sqft are flagged and left out of the maths. |
Building with ChatGPT? Paste this.
One prompt gives your assistant the endpoint, the sign-in header and how to wait for a result, so its first script works.
I'm building with the RealtyCrawl API. It returns real-estate data from Zillow as typed JSON: homes for sale, sold homes, rentals, property history, estimates and comps. Read the docs first: https://realtycrawl.com/llms.txt OpenAPI spec: https://realtycrawl.com/openapi.json Rules for the code you write: - Base URL: https://api.realtycrawl.com/v1 - Auth: send the header "Authorization: Bearer <key>". Read the key from the REALTYCRAWL_KEY environment variable. Never put it in browser code. - Zillow sold homes: GET /zillow/sold?zip=<5-digit ZIP>&sold_within_days=90. You can send city and state instead of zip. - A call often answers 202 with status "pending" and a poll_url. Poll GET /jobs/<request_id>?wait=20 with the same header until status is "complete" or "failed". - The rows are in result.data, each with address, sale_price, sold_date, sale_price_disclosure and source_url. sale_price is null when the price isn't public; result.field_notes says why. Never replace a null with a guess. - result.summary has median_sale_price and median_price_per_sqft. For the next page, send result.next_cursor as cursor. - A search costs 1 credit; property details and comps cost 2. A free account starts with 100 credits that do not refill, so save results while testing instead of repeating a call. Start with a short script that prints the median sale price for ZIP "80221". Then ask me what I want to build.
Not one you can sign up for and use today. Zillow shut down its public API in September 2021. Its data feeds now go through Bridge Interactive, which approves each partner and is aimed at MLS members and brokers.
RealtyCrawl returns Zillow's homes for sale, sold homes, rentals, property history and Zestimates as JSON with a key you can make in two minutes.
No. RealtyCrawl is not affiliated with Zillow. We collect public pages signed out and return the facts as JSON. Zestimates are labeled as Zillow's, never as ours.
An area search returns one page of homes with price, beds, baths, size, type, location and dates, plus a summary with the median price and price per sqft. Page through big areas with next_cursor.
Search by ZIP code, city, county, neighborhood, map box or a point and radius. Filter by price, beds, baths, size, year built and property type.
Yes. /v1/zillow/sold returns each home's sale price, sale date and how the price is known. In non-disclosure states like Texas the price can be null, with a field_notes entry saying why. We never fill it with a list price or an estimate.
Yes. /v1/zillow/property returns the full price and tax history and 10 years of monthly Zestimates, including for sold and off-market homes.
Start with 100 free credits, no credit card required. Plans start at $9 a month for 1,000 credits. Most calls cost 1 credit; property and comps cost 2.
Failed calls and addresses that aren't found are free.
Yes. Our hosted MCP server gives Claude, Cursor and other assistants one typed tool for each Zillow route. See the Zillow MCP page.
Get Zillow sold homes in about two minutes.
Create a free account, make a key, and send your first request. Start with 100 free credits. No credit card required.