Zillow API: Search homes for sale
Searches Zillow homes for sale in a city and state, neighborhood or ZIP code, with optional price, bedroom, bathroom and property type filters and sort order, from Zillow's public search pages (up to 100 listings).
Unofficial. Not affiliated with or endorsed by Zillow.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Sort optional
sort Listing order, for example newest.
newest
One of
homes_for_you,newest,price_low_to_high,price_high_to_low. Defaulthomes_for_you.- Location, required
location City and state, neighborhood, or ZIP code, for example Austin, TX.
78704
2 characters or more.
- Min Beds optional
min_beds Minimum number of bedrooms, for example 3.
Not set
Number 0 or more.
- Home Type optional
home_type Property type to include, for example condo.
condo
One of
any,house,condo,townhouse,multi_family,land,manufactured. Defaultany.- Max Price optional
max_price Maximum listing price in USD, for example 750000.
Not set
Number 0 or more.
- Min Baths optional
min_baths Minimum number of bathrooms, for example 2.
Not set
Number 0 or more.
- Min Price optional
min_price Minimum listing price in USD, for example 300000.
Not set
Number 0 or more.
- Max Results optional
max_results Maximum number of listings to return, for example 20.
45
Whole number from 1 to 100. Default
20.
Input as JSON
{ "sort": "newest", "location": "78704", "home_type": "condo", "max_results": 45}Output
{ "homes": [ { "beds": 2, "zpid": "94643019", "baths": 3, "price": 699000, "address": "2316 Thornton Rd #B, Austin, TX 78704", "currency": "USD", "latitude": 30.244944, "home_type": "Condo", "longitude": -97.772575, "price_cut": null, "zestimate": null, "photo_link": "https://photos.zillowstatic.com/fp/1f6981aa9adcd504cae6a48681255b66-p_e.jpg" , "square_feet": 1985, "listing_link": "https://www.zillow.com/homedetails/2316-Thornton-Rd-B-Austin-TX-78704/94643019_zpid/" , "days_on_zillow": 0, "listing_brokerage": "Christies Intl Real Estate Lone Star" }, { "beds": 3, "zpid": "345024237", "baths": 4, "price": 1395000, "address": "2706 Stacy Ln #1, Austin, TX 78704", "currency": "USD", "latitude": 30.237383, "home_type": "Condo", "longitude": -97.76179, "price_cut": null, "zestimate": null, "photo_link": "https://photos.zillowstatic.com/fp/4c47fa7becdd8b53e64739c5b724b71e-p_e.jpg" , "square_feet": 2484, "listing_link": "https://www.zillow.com/homedetails/2706-Stacy-Ln-1-Austin-TX-78704/345024237_zpid/" , "days_on_zillow": 3, "listing_brokerage": "Gottesman Residential R.E." }, { "beds": 2, "zpid": "110539637", "baths": 2, "price": 299900, "address": "2303 E Side Dr APT 109, Austin, TX 78704", "currency": "USD", "latitude": 30.240852, "home_type": "Condo", "longitude": -97.74654, "price_cut": null, "zestimate": null, "photo_link": "https://photos.zillowstatic.com/fp/c6b3508affd0631eb44b835f8c989664-p_e.jpg" , "square_feet": 1105, "listing_link": "https://www.zillow.com/homedetails/2303-E-Side-Dr-APT-109-Austin-TX-78704/110539637_zpid/" , "days_on_zillow": 3, "listing_brokerage": "JBGoodwin REALTORS NW" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"zillow.com/search_homes","input":{"sort":"newest","location":"78704","home_type":"condo","max_results":45}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "zillow.com/search_homes" , "input": { "sort": "newest", "location": "78704", "home_type": "condo", "max_results": 45 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "zillow.com/search_homes" , "input": { "sort": "newest", "location": "78704", "home_type": "condo", "max_results": 45 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run zillow.com/search_homes# with {"sort":"newest","location":"78704","home_type":"condo","max_results":45}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "location" ], "properties": { "sort": { "enum": [ "homes_for_you", "newest", "price_low_to_high", "price_high_to_low" ], "type": "string", "default": "homes_for_you", "description": "Listing order, for example newest." }, "location": { "type": "string", "minLength": 2, "description": "City and state, neighborhood, or ZIP code, for example Austin, TX." }, "min_beds": { "type": "number", "minimum": 0, "description": "Minimum number of bedrooms, for example 3." }, "home_type": { "enum": [ "any", "house", "condo", "townhouse", "multi_family", "land", "manufactured" ], "type": "string", "default": "any", "description": "Property type to include, for example condo." }, "max_price": { "type": "number", "minimum": 0, "description": "Maximum listing price in USD, for example 750000." }, "min_baths": { "type": "number", "minimum": 0, "description": "Minimum number of bathrooms, for example 2." }, "min_price": { "type": "number", "minimum": 0, "description": "Minimum listing price in USD, for example 300000." }, "max_results": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Maximum number of listings to return, for example 20." } }}Output schema
{ "type": "object", "required": [ "homes" ], "properties": { "homes": { "type": "array", "items": { "type": "object", "required": [ "address", "price", "currency", "beds", "baths", "square_feet", "home_type", "days_on_zillow", "zestimate", "price_cut", "listing_brokerage", "photo_link", "listing_link", "zpid", "latitude", "longitude" ], "properties": { "beds": { "type": [ "number", "null" ], "description": "Bedrooms." }, "zpid": { "type": [ "string", "null" ], "description": "Zillow property ID." }, "baths": { "type": [ "number", "null" ], "description": "Bathrooms." }, "price": { "type": [ "number", "null" ], "description": "Asking price." }, "address": { "type": [ "string", "null" ], "description": "Full street address." }, "currency": { "type": "string", "description": "Price currency (USD)." }, "latitude": { "type": [ "number", "null" ], "description": "Property latitude." }, "home_type": { "type": [ "string", "null" ], "description": "Property type." }, "longitude": { "type": [ "number", "null" ], "description": "Property longitude." }, "price_cut": { "type": [ "string", "null" ], "description": "Displayed price reduction and date." }, "zestimate": { "type": [ "number", "null" ], "description": "Zillow estimated value in USD." }, "photo_link": { "type": [ "string", "null" ], "description": "First listing photo URL." }, "square_feet": { "type": [ "number", "null" ], "description": "Interior area in square feet." }, "listing_link": { "type": "string", "description": "Zillow property page URL." }, "days_on_zillow": { "type": [ "integer", "null" ], "description": "Days listed on Zillow." }, "listing_brokerage": { "type": [ "string", "null" ], "description": "Listing brokerage." } } }, "description": "Homes for sale in the selected order." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
zillow.com/search_homes- Returns
- address, price, beds, baths, square feet, home type, days on Zillow, Zestimate, price cut, brokerage, photo, link, zpid, coordinates
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method zillow.com/search_homes with the inputs above.
Ask your agent
- Find 3+ bedroom houses for sale in Raleigh, NC under $550,000, newest listings first
- What condos are listed on Zillow in ZIP 33139 between $400k and $900k? Show me up to 40 with their Zestimates and any price cuts
- I'm relocating to Boise, Idaho — pull the cheapest townhouses for sale with at least 2 baths
- Show homes for sale in the Ballard neighborhood of Seattle, sorted by price high to low, with square footage and days on market
- Search Zillow for multi-family properties for sale in Columbus, OH, minimum 4 beds, max price 700000, return 50 results
See more
All Zillow methodsSearches Zillow rentals in a city, neighborhood, or ZIP code, with optional rent, bedroom, pet, and home-type filters. Listing details that Zillow does not show are null.
zillow.com/search_rentalsLooks up Zillow housing market figures for a city and state or five-digit ZIP code: typical home value, one-year change, list and sale prices, inventory and listing activity.
zillow.com/get_housing_marketSearches Homes.com homes for sale in a US city, neighborhood, or ZIP code, with optional price, bedroom, bathroom and home type filters. Returns listings in site order; days on market is null when not shown.
homes.com/search_homesSearches Realtor.com homes for sale, for rent, or recently sold in a city, neighborhood or ZIP code, with optional price, bedroom, bathroom and home type filters and sort order. Rentals with price ranges use the lowest advertised rent; withheld sold prices are blank.
realtor.com/search_homesSearches Redfin homes for sale in a city, neighborhood or ZIP code, with price, home type, bed and bath filters and a sort order, returning each listing's price, size, status, photo and links.
redfin.com/search_homesSearches Zoopla homes for sale or to rent in a UK town, area or postcode, with price, bedroom, property type and sort options. Prices are in GBP; rents are monthly.
zoopla.co.uk/search_propertiesSearches Rightmove homes for sale or to rent around a town, area or postcode, with price, bedroom, property type, radius and under-offer filters, sorted by newest or price.
rightmove.co.uk/search_propertiesGets a home's details from Realtor.com by street address or Realtor.com property link: status, list price, value estimate, beds, baths, size, year built, HOA fee, property and tax history, nearby schools, flood risk and photos.
realtor.com/get_home