Realtor.com API: Search agents by location
Finds 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.
Unofficial. Not affiliated with or endorsed by Realtor.com.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Location, required
location City and state or ZIP code, for example Denver, CO.
Denver, CO
- Max Results optional
max_results Maximum agents to return, for example 20.
20
Whole number from 1 to 50. Default
20.
Input as JSON
{ "location": "Denver, CO", "max_results": 20}Output
{ "agents": [ { "agent_id": "58c0f1d62f2c38001052f3c3", "brokerage": "SERHANT", "agent_name": "Felix Luck", "photo_link": "https://ap.rdcpix.com/d99582af3d70c23c15554b674059f24cr-c1579029028rd-w144_h144.jpg" , "star_rating": 5, "phone_number": "(720) 404-0001", "profile_link": "https://www.realtor.com/realestateagents/58c0f1d62f2c38001052f3c3" , "review_count": 72, "languages_spoken": [ "Turkish", "English" ], "total_homes_sold": 38, "price_range_of_sales": "$0 - $0", "homes_sold_last_12_months": 19 }, { "agent_id": "5cb46a61497f450012d7bc63", "brokerage": "Real Broker, Westminster CO - Broker", "agent_name": "Juan Munoz", "photo_link": "https://ap.rdcpix.com/d96c459fffeb886a5f69dfac04dedc71a-e156285030rd-w144_h144.jpg" , "star_rating": 5, "phone_number": "(720) 926-0204", "profile_link": "https://www.realtor.com/realestateagents/5cb46a61497f450012d7bc63" , "review_count": 141, "languages_spoken": [ "Spanish" ], "total_homes_sold": 58, "price_range_of_sales": "$163.646k - $1.25m", "homes_sold_last_12_months": 30 }, { "agent_id": "651b0d7fe8299b1809d76e11", "brokerage": "Serhant Colorado", "agent_name": "Brett Reasoner Founding Agent Serhant Colorado Team Lead The Cornerstone Group", "photo_link": "https://ap.rdcpix.com/6e5c1599d107e4774aa0aec5d4654dd9a-e1298920777rd-w144_h144.jpg" , "star_rating": 5, "phone_number": null, "profile_link": "https://www.realtor.com/realestateagents/651b0d7fe8299b1809d76e11" , "review_count": 23, "languages_spoken": [], "total_homes_sold": 48, "price_range_of_sales": "$280k - $1.899m", "homes_sold_last_12_months": 38 } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"realtor.com/search_agents","input":{"location":"Denver, CO","max_results":20}}' # 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": "realtor.com/search_agents" , "input": { "location": "Denver, CO", "max_results": 20 }})# 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": "realtor.com/search_agents" , "input": { "location": "Denver, CO", "max_results": 20 } }), 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 realtor.com/search_agents# with {"location":"Denver, CO","max_results":20}"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", "description": "City and state or ZIP code, for example Denver, CO." }, "max_results": { "type": "integer", "default": 20, "maximum": 50, "minimum": 1, "description": "Maximum agents to return, for example 20.", "x-fous-developer": true } }, "additionalProperties": false}Output schema
{ "type": "object", "required": [ "agents" ], "properties": { "agents": { "type": "array", "items": { "type": "object", "required": [ "agent_name", "brokerage", "star_rating", "review_count", "homes_sold_last_12_months", "total_homes_sold", "price_range_of_sales", "languages_spoken", "phone_number", "photo_link", "profile_link", "agent_id" ], "properties": { "agent_id": { "type": "string", "x-fous-developer": true }, "brokerage": { "type": [ "string", "null" ] }, "agent_name": { "type": "string" }, "photo_link": { "type": [ "string", "null" ] }, "star_rating": { "type": [ "number", "null" ] }, "phone_number": { "type": [ "string", "null" ] }, "profile_link": { "type": "string" }, "review_count": { "type": [ "integer", "null" ] }, "languages_spoken": { "type": "array", "items": { "type": "string" } }, "total_homes_sold": { "type": [ "integer", "null" ] }, "price_range_of_sales": { "type": [ "string", "null" ] }, "homes_sold_last_12_months": { "type": [ "integer", "null" ] } }, "additionalProperties": false } } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
realtor.com/search_agents- Returns
- agent name, brokerage, star rating, review count, homes sold, price range, languages, phone, photo, profile link, agent 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 realtor.com/search_agents with the inputs above.
Ask your agent
- Find me the top real estate agents in Austin, TX with the most homes sold and their phone numbers
- I need a list of 10 agents working in 80202 with their star ratings and review counts
- Which agents on realtor.com serve Tampa, FL and what languages do they speak?
- Show me agents in Portland, OR with price ranges they typically handle, limited to 25 results
- Give me agent names, brokerages, and profile links for realtors covering ZIP 30309 in Atlanta
See more
All Realtor.com methodsSearches 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_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 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 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 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 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 Apartments.com rentals by city, neighborhood, or ZIP code, with optional rent, bedroom, pet, and page filters. Rent and availability wording is returned when displayed; missing details are null.
apartments.com/search_apartmentsSearches 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_properties