Homes.com API: Search homes for sale
Searches 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.
Unofficial. Not affiliated with or endorsed by Homes.com.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Location, required
location City and state, neighborhood, or ZIP code, such as Nashville, TN.
Nashville, TN
- Min Beds optional
min_beds Minimum bedrooms, such as 3.
0 (default)
Whole number 0 or more.
- Home Type optional
home_type Type of home, such as condo; any includes all types.
any (default)
One of
any,house,condo,townhouse,multi_family,land.- Max Price optional
max_price Maximum listing price in USD; 0 means no maximum, such as 700000.
0 (default)
Whole number from 0 to 2147483647.
- Min Baths optional
min_baths Minimum bathrooms, such as 2.
0 (default)
Whole number 0 or more.
- Min Price optional
min_price Minimum listing price in USD, such as 300000.
0 (default)
Whole number from 0 to 2147483647.
- Max Results optional
max_results Maximum listings to return, such as 20.
45
Whole number from 1 to 100. Default
20.
Input as JSON
{ "location": "Nashville, TN", "max_results": 45}Output
{ "homes": [ { "beds": 6, "baths": 8, "price": 8995000, "address": "1114 Tyne Blvd, Nashville, TN 37220", "currency": "USD", "brokerage": "Fridrich & Clark Realty", "home_type": "house", "listing_id": "cj8kxr50j746x", "photo_link": "https://images.homes.com/listings/115/8537361584-521842812/1114-tyne-blvd-nashville-tn-primaryphoto.jpg" , "square_feet": 9018, "listing_link": "https://www.homes.com/property/1114-tyne-blvd-nashville-tn/wzvj3evd4fzd7/" , "listing_agent": "Richard Bryan", "days_on_market": null }, { "beds": 4, "baths": 4, "price": 950000, "address": "2110 Westwood Ave, Nashville, TN 37212", "currency": "USD", "brokerage": "Fridrich & Clark Realty", "home_type": "house", "listing_id": "6bqkf3d8n7dt4", "photo_link": "https://images.homes.com/listings/115/2034383684-895275612/2110-westwood-ave-nashville-tn-primaryphoto.jpg" , "square_feet": 2953, "listing_link": "https://www.homes.com/property/2110-westwood-ave-nashville-tn/czd3eynf7v3vp/" , "listing_agent": "Richard Bryan", "days_on_market": null }, { "beds": 1, "baths": 1, "price": 529900, "address": "245 Hermitage Ave Unit 401, Nashville, TN 37210", "currency": "USD", "brokerage": "Compass RE", "home_type": "condo", "listing_id": "7f56nbc9bhzbr", "photo_link": "https://images.homes.com/listings/115/3055972105-753679922/245-hermitage-ave-nashville-tn-primaryphoto.jpg" , "square_feet": 657, "listing_link": "https://www.homes.com/property/245-hermitage-ave-nashville-tn-unit-401/9zkkwjn6qp4kk/" , "listing_agent": "Tammi Weed", "days_on_market": null } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"homes.com/search_homes","input":{"location":"Nashville, TN","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": "homes.com/search_homes" , "input": { "location": "Nashville, TN", "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": "homes.com/search_homes" , "input": { "location": "Nashville, TN", "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 homes.com/search_homes# with {"location":"Nashville, TN","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": { "location": { "type": "string", "minLength": 1, "description": "City and state, neighborhood, or ZIP code, such as Nashville, TN." }, "min_beds": { "type": "integer", "default": 0, "minimum": 0, "description": "Minimum bedrooms, such as 3." }, "home_type": { "enum": [ "any", "house", "condo", "townhouse", "multi_family", "land" ], "type": "string", "default": "any", "description": "Type of home, such as condo; any includes all types." }, "max_price": { "type": "integer", "default": 0, "maximum": 2147483647, "minimum": 0, "description": "Maximum listing price in USD; 0 means no maximum, such as 700000." }, "min_baths": { "type": "integer", "default": 0, "minimum": 0, "description": "Minimum bathrooms, such as 2." }, "min_price": { "type": "integer", "default": 0, "maximum": 2147483647, "minimum": 0, "description": "Minimum listing price in USD, such as 300000." }, "max_results": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Maximum listings to return, such as 20." } }}Output schema
{ "type": "object", "required": [ "homes" ], "properties": { "homes": { "type": "array", "items": { "type": "object", "required": [ "beds", "baths", "price", "address", "currency", "brokerage", "home_type", "listing_id", "photo_link", "square_feet", "listing_link", "listing_agent", "days_on_market" ], "properties": { "beds": { "type": [ "number", "null" ], "description": "Number of bedrooms." }, "baths": { "type": [ "number", "null" ], "description": "Number of bathrooms." }, "price": { "type": [ "number", "null" ], "description": "Listing price in USD." }, "address": { "type": "string", "description": "Full listing address." }, "currency": { "type": "string", "description": "Currency code, USD." }, "brokerage": { "type": [ "string", "null" ], "description": "Listing brokerage name." }, "home_type": { "type": [ "string", "null" ], "description": "Property type shown for this home." }, "listing_id": { "type": "string", "description": "Homes.com listing identifier." }, "photo_link": { "type": [ "string", "null" ], "description": "Primary listing photo link." }, "square_feet": { "type": [ "number", "null" ], "description": "Interior area in square feet." }, "listing_link": { "type": "string", "description": "Homes.com listing page link." }, "listing_agent": { "type": [ "string", "null" ], "description": "Listing agent name." }, "days_on_market": { "type": [ "integer", "null" ], "description": "Days on market when shown." } }, "additionalProperties": false }, "description": "Homes for sale in site order." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
homes.com/search_homes- Returns
- address, price, beds, baths, square feet, home type, days on market, listing agent, brokerage, photo, listing link, listing id
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 homes.com/search_homes with the inputs above.
Ask your agent
- Find 3+ bedroom houses for sale in Raleigh, NC under $550,000 on homes.com
- What condos are on the market in ZIP 33139 between $400k and $900k? Show me up to 30 with the listing agent and days on market.
- Pull townhouses for sale in the Capitol Hill neighborhood of Denver with at least 2 baths, max price 750000
- I'm looking at land parcels for sale around Bend, OR — list what's available with prices and links
- Homes.com listings for multi-family properties in Cleveland, OH, minimum 4 beds and 2 baths, priced from $200,000 to $450,000
See more
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).
zillow.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_homesGets 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_homeSearches 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_rentalsSearches 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_propertiesFinds real estate agents working in a city and state or ZIP code on Realtor.com, in Realtor.com's relevance order, with ratings, sales figures, price range, languages and phone number when published.
realtor.com/search_agents