Back to Browse

Apify Zillow API MCP Server

Developer ToolsLow Risk9.8MCP RegistryRemote
Free

Server data from the Official MCP Registry

Zillow real estate listings for sale, rent, and sold, via an Apify Actor, hosted MCP.

About

Zillow real estate listings for sale, rent, and sold, via an Apify Actor, hosted MCP.

Remote endpoints: streamable-http: https://mcp.apify.com/?tools=johnvc/zillow-api

Security Report

9.8
Low Risk9.8Low Risk

Valid MCP server (1 strong, 1 medium validity signals). 1 known CVE in dependencies Imported from the Official MCP Registry. Trust signals: trusted author (22/22 approved).

Endpoint verified ยท Requires authentication ยท 2 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

What You'll Need

Set these up before or after installing:

APIFY_API_TOKENRequired

How to Connect

Remote Plugin

No local installation needed. Your AI client connects to the remote endpoint directly.

Add this to your MCP configuration to connect:

{
  "mcpServers": {
    "io-github-johnisanerd-zillow-api": {
      "url": "https://mcp.apify.com/?tools=johnvc/zillow-api"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

๐Ÿ  Zillow API: US Real Estate Listings for Sale, Rent & Sold

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.

Video Walkthrough

Watch the walkthrough

Text walkthrough

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.

Quick Start

Prerequisites

  1. Clone the repository

    git clone https://github.com/johnisanerd/Apify-Zillow-API.git
    cd Apify-Zillow-API
    
  2. Install dependencies with UV

    # Install UV if you do not have it:
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
    # Install project dependencies:
    uv sync
    
  3. Configure your API key

    cp .env.example .env
    # Edit .env and add your Apify API key
    # Get your free API key at: https://apify.com?fpr=9n7kx3
    
  4. Run the example

    uv run python zillow-api-example.py
    # Optional recipes:
    # uv run python zillow-api-example.py --example rentals
    # uv run python zillow-api-example.py --example price_cuts
    # uv run python zillow-api-example.py --example sold
    

Alternative: set the API key directly

export APIFY_API_TOKEN="your_api_key_here"
uv run python zillow-api-example.py

Why Use This Zillow API?

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.

Features

Core Capabilities

  • Search homes for sale, for rent, and recently sold across the US.
  • Plain-name location input: city, ZIP, county, neighborhood, or state.
  • Price-cut filter with the change amount and date for motivated-seller and stale-inventory work.
  • Map sharding to sweep a whole metro past the 820-result cap.

Data Quality

  • Typed fields, not scraped strings: numeric prices, coordinates, and dates.
  • Deduplicated results across map tiles.
  • Photo URLs are passed through, never re-hosted.

Recipes

Homes for sale in a city

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

Rentals in a ZIP code

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

Homes with recent price cuts

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

Recently sold homes

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.

Usage Examples

Basic Example

{
  "locations": ["Austin, TX"],
  "statusType": "sale",
  "maxResults": 10
}

Advanced Example

{
  "locations": ["Phoenix, AZ"],
  "statusType": "sale",
  "priceReduction": true,
  "bedsMin": 3,
  "priceMax": 600000,
  "autoShard": true,
  "maxResults": 2000,
  "maxUpstreamCalls": 80
}

Input Parameters

ParameterTypeRequiredDefaultDescription
locationslist[str]one location source["Austin, TX"]Plain place names: city, ZIP, county, neighborhood, or state. Up to 25 per run.
statusTypestrYESsalesale, rent, or sold.
priceMin / priceMaxintno-Price range (list price for sale/sold, monthly rent for rent).
bedsMin / bedsMaxintno-Bedroom range.
priceReductionboolnofalseOnly listings with a recent price cut.
listingTypelist[str]no-For sale: owner (FSBO), agent, new construction, foreclosure, and more.
homeTypelist[str]no-House, condo, townhome, multi-family, lot/land, apartment, manufactured.
autoShardboolnofalseSweep past the 820-result cap by splitting the map into tiles.
maxUpstreamCallsintno40Hard ceiling on requests for a sharded run.
maxResultsintno200Main cost control. Minimum 10 per search.

Output Format

{
  "resultType": "forSale",
  "zpid": "29444234",
  "title": "1200 Barton Hills Dr, Austin, TX 78704",
  "price": "$425,000",
  "priceValue": 425000,
  "priceChange": -15000,
  "priceChangeDate": "2026-08-12",
  "beds": 3,
  "baths": 2,
  "squareFeet": 1842,
  "city": "Austin",
  "state": "TX",
  "zipcode": "78704",
  "latitude": 30.2489,
  "longitude": -97.7791,
  "url": "https://www.zillow.com/homedetails/29444234_zpid/",
  "regionId": "10221",
  "scrapedAt": "2026-08-25T14:22:07Z"
}

People also search for

Is this a Zillow scraper or an API?

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.

How do I get Zillow data from Python?

Clone this repo, set APIFY_API_TOKEN, and run uv run python zillow-api-example.py. See Quick Start and Recipes above.

How do I search Zillow by ZIP code or city?

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.

Can I use this Zillow API with MCP or Claude?

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.

How do I get more than 800 Zillow results for one city?

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.


Install in Claude Cowork Desktop

Install in Claude Cowork Desktop

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.

  1. Open the Claude desktop app and go to Settings โ†’ Connectors (or Settings โ†’ Developer โ†’ Edit Config to edit claude_desktop_config.json directly).
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Add the Apify MCP server, preloaded with only this Actor:
{
  "mcpServers": {
    "apify": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.apify.com/?tools=actors,docs,johnvc/zillow-api"
      ]
    }
  }
}
  1. Restart the app. When Cowork first calls the tool, complete the OAuth prompt in your browser, or add your Apify API token in the connector settings to skip OAuth.
  2. In a Cowork chat, confirm the tool is available and ask it to run the Zillow API.

Download the desktop app and start a free trial: https://claude.ai/referral/uIlpa7nPLg More help: https://docs.apify.com/platform/integrations/claude-desktop

Install in Claude Code

Install in Claude Code

Claude Code is the command-line tool. Add the Actor's MCP server with one command:

claude mcp add --transport http apify \
  "https://mcp.apify.com/?tools=actors,docs,johnvc/zillow-api"

To use a token instead of browser OAuth:

claude mcp add --transport http apify \
  "https://mcp.apify.com/?tools=actors,docs,johnvc/zillow-api" \
  --header "Authorization: Bearer YOUR_APIFY_TOKEN"

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

Install in Claude (website)

Install in Claude (website)

On claude.ai you add Apify as a connector, then enable just this Actor's tool.

  1. Go to Settings โ†’ Connectors โ†’ Browse connectors and search for Apify MCP server. Install it (enable or update if prompted).
  2. When connecting, authenticate with your Apify API token, and enable the tool johnvc/zillow-api.
  3. In any chat, open + โ†’ Connectors and turn on Apify.
  4. Alternatively, choose Add custom connector and paste the full MCP URL https://mcp.apify.com/?tools=actors,docs,johnvc/zillow-api, using OAuth when prompted.
  5. Ask Claude to run the Zillow API.

Open Claude on the web: https://claude.ai

Install in Cursor

Install in Cursor

Cursor reads MCP servers from a project file at .cursor/mcp.json.

  1. In your project, create .cursor/mcp.json:
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com/?tools=actors,docs,johnvc/zillow-api"
    }
  }
}
  1. If you prefer token auth over browser OAuth, add a header:
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com/?tools=actors,docs,johnvc/zillow-api",
      "headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
    }
  }
}
  1. Open Cursor โ†’ Settings โ†’ MCP and confirm the apify server is connected (green dot).
  2. In Composer or Chat, ask Cursor to call the Zillow API.

New to Cursor? Get it here: https://cursor.com/referral?code=XQP4VBLI3NNX

Install in ChatGPT

Install in ChatGPT

ChatGPT connects to the Apify MCP server through Developer mode (available on ChatGPT Pro, Plus, Business, Enterprise, and Education plans).

  1. Click your profile icon, then go to Settings > Apps. If you do not see a Create app button, open Advanced settings and enable Developer mode.
  2. Click Create app and fill out the form:
    • Name: Apify
    • MCP Server URL: https://mcp.apify.com/?tools=actors,docs,johnvc/zillow-api
    • Authentication: OAuth
  3. Click Create and authorize the connection with Apify.
  4. To use the app in a conversation, click + in the chat, choose Developer mode, and select Apify.

More help: https://docs.apify.com/platform/integrations/mcp


Made with care

Use the Zillow API to power your data workflows with reliable, structured results.

Last Updated: 2026.09.05

Reviews

No reviews yet

Be the first to review this server!