The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Zillow API listing page.
A Zillow API on Apify that returns US real estate listings as clean, structured JSON. Search by plain city or ZIP, filter for price cuts, and export homes for sale, for rent, and sold.
Actor page: apify.com/johnvc/zillow-api Input schema: apify.com/johnvc/zillow-api/input-schema
This Zillow API turns Zillow into a structured data feed. Send a location and a few filters and get back typed rows for each listing: price, beds, baths, square footage, address, coordinates, broker, Zestimate, days on market, and the amount and date of any recent price cut. It covers homes for sale, rentals, and recently sold homes, and it resolves a plain city or ZIP to the right Zillow region for you.
The Zillow API takes plain locations, so you never build a search URL or look up a region id: pass "Austin, TX" or "78704" in locations, pick a statusType of sale, rent, or sold, and add filters like priceReduction or bedsMin. Each row comes back with price, priceValue, priceChange, beds, baths, squareFeet, address, latitude, longitude, and url, plus zestimate and daysOnZillow. A single Zillow search is capped at 820 results, so turn on autoShard to sweep a whole metro by splitting the map into tiles. One common use case is a weekly price-cut feed: set priceReduction to true for a city, save it as a Task, and schedule it so your dataset always shows the freshest motivated-seller listings. Rentals return building-level data (per-floorplan rents, available units, leasing phone), and sold results return the sold date with the Zestimate and tax-assessed value.
Clone the repository
Install dependencies with UV
Configure your API key
Run the example
Zillow's own developer access runs through an invite-only partner program, so most people cannot self-serve. This Zillow API is the practical alternative: no application, no region ids, no hand-built search URLs. You send plain inputs and get structured JSON.
It is correct where raw scrapers are silently wrong. Hand most tools a ZIP code and they return a different city's listings; this Actor resolves the ZIP to the right Zillow region first, so 78704 gives you Austin, not a same-numbered town in another state.
It covers the full market in one place: for sale, for rent, and sold, each with the fields that match. It is built to run on a schedule, so a saved search becomes a standing feed you can diff week over week.
And it is MCP-ready, so an AI assistant can call it as a tool and ask for listings in plain language.
Run this on Apify: search a city or ZIP for sale with beds and price filters, get back typed listing rows.
Local: uv run python zillow-api-example.py
Run this on Apify: building-level rentals with per-floorplan rents, available units, and leasing phone.
Local: uv run python zillow-api-example.py --example rentals
Run this on Apify: set priceReduction and read priceChange and priceChangeDate for a motivated-seller feed.
Local: uv run python zillow-api-example.py --example price_cuts
Run this on Apify: recently sold homes with sold date, Zestimate, and tax-assessed value.
Local: uv run python zillow-api-example.py --example sold
Schedule tip: Save any of these inputs as an Apify Task and schedule it to run daily or weekly so your dataset stays fresh without manual runs.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
locations | list[str] | one location source | ["Austin, TX"] | Plain place names: city, ZIP, county, neighborhood, or state. Up to 25 per run. |
statusType | str | YES | sale | sale, rent, or sold. |
priceMin / priceMax | int | no | - | Price range (list price for sale/sold, monthly rent for rent). |
bedsMin / bedsMax | int | no | - | Bedroom range. |
priceReduction | bool | no | false | Only listings with a recent price cut. |
listingType | list[str] | no | - | For sale: owner (FSBO), agent, new construction, foreclosure, and more. |
homeType | list[str] | no | - | House, condo, townhome, multi-family, lot/land, apartment, manufactured. |
autoShard | bool | no | false | Sweep past the 820-result cap by splitting the map into tiles. |
maxUpstreamCalls | int | no | 40 | Hard ceiling on requests for a sharded run. |
maxResults | int | no | 200 | Main cost control. Minimum 10 per search. |
Open a ready-to-send prompt about the Zillow API in the AI of your choice:
This repo teaches the Zillow API on Apify. People often search for a "zillow scraper"; the same Actor covers that need and returns structured JSON you can call from Python or MCP, without building or maintaining a scraper yourself.
Clone this repo, set APIFY_API_TOKEN, and run uv run python zillow-api-example.py. See Quick Start and Recipes above.
Put the ZIP or city in locations, for example "78704" or "Austin, TX". The Actor resolves it to the correct Zillow region automatically, so you do not get another city's listings by mistake.
Yes. Use the install sections below to add the Actor as an MCP tool in Claude Code (free trial), Claude Cowork (free trial), Claude.ai, Cursor, or ChatGPT.
Turn on autoShard. A single Zillow search returns at most 820 results, so the Actor splits the map into tiles and merges them, deduplicated, to cover a full metro. Use maxUpstreamCalls to cap the cost.

Cowork is the desktop app's automation mode. To give it the Zillow API as a tool, add the Apify MCP server as a connector.
claude_desktop_config.json directly).
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonDownload the desktop app and start a free trial: https://claude.ai/referral/uIlpa7nPLg More help: https://docs.apify.com/platform/integrations/claude-desktop

Claude Code is the command-line tool. Add the Actor's MCP server with one command:
To use a token instead of browser OAuth:
Then verify with claude mcp list, or run /mcp inside a session. Ask Claude Code to call the Zillow API.
Try Claude Code free: https://claude.ai/referral/uIlpa7nPLg Claude Code MCP docs: https://code.claude.com/docs/en/mcp

On claude.ai you add Apify as a connector, then enable just this Actor's tool.
johnvc/zillow-api.https://mcp.apify.com/?tools=actors,docs,johnvc/zillow-api, using OAuth when prompted.Open Claude on the web: https://claude.ai

Cursor reads MCP servers from a project file at .cursor/mcp.json.
.cursor/mcp.json:New to Cursor? Get it here: https://cursor.com/referral?code=XQP4VBLI3NNX

ChatGPT connects to the Apify MCP server through Developer mode (available on ChatGPT Pro, Plus, Business, Enterprise, and Education plans).
https://mcp.apify.com/?tools=actors,docs,johnvc/zillow-apiMore help: https://docs.apify.com/platform/integrations/mcp
Use the Zillow API to power your data workflows with reliable, structured results.
Last Updated: 2026.09.28