Homes APIhomes.com ↗
Search Homes.com listings for sale and rent, filter by property type, and retrieve detailed agent profiles with brokerage, specialties, and neighborhoods served.
What is the Homes API?
The Homes.com API provides 5 endpoints covering property listings and real estate agent data sourced from Homes.com. Use search_properties_for_sale or search_properties_for_rent to query active listings by city and state, or call get_agent_profile to retrieve a specific agent's bio, languages, specialties, awards, and neighborhoods served — all in structured JSON.
curl -X GET 'https://api.parse.bot/scraper/01f9a261-e666-4d65-9cdf-cd5351f7f592/search_agents?page=1&location=Seattle%2C+WA' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace homes-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Homes.com SDK — search agents, browse listings, drill into details."""
from parse_apis.Homes_com_API import Homes, Location, PropertyType, ResourceNotFound
homes = Homes()
# Search for real estate agents in Seattle
for agent in homes.agents.search(location=Location.SEATTLE__WA, limit=3):
print(agent.name, agent.phone, agent.brokerage)
# Drill into the first agent's detailed profile
agent = homes.agents.search(location=Location.AUSTIN__TX, limit=1).first()
if agent:
profile = agent.details()
print(profile.name, profile.specialties, profile.neighborhoods_served)
# Search for houses for sale in Denver
for listing in homes.listings.search_for_sale(location=Location.DENVER__CO, property_type=PropertyType.HOUSES, limit=3):
print(listing.address, listing.price, listing.beds, listing.baths)
# Get full property details from a listing
sale = homes.listings.search_for_sale(location=Location.MIAMI__FL, limit=1).first()
if sale:
try:
prop = sale.details()
print(prop.address, prop.price, prop.description, prop.facts.bedrooms, prop.facts.year_built)
except ResourceNotFound as exc:
print(f"Property no longer available: {exc}")
# Search for rentals
for rental in homes.listings.search_for_rent(location=Location.AUSTIN__TX, property_type=PropertyType.CONDOS, limit=3):
print(rental.address, rental.price, rental.sqft)
print("exercised: agents.search / agent.details / listings.search_for_sale / listing.details / listings.search_for_rent")
Search for real estate agents by location (city and state). Returns a paginated list of agents with their contact info, brokerage, and profile URLs. Each page returns up to 48 agents. The total_count field reflects the total number of agents serving the area.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based) |
| locationrequired | string | City and state to search (e.g. 'Seattle, WA', 'Austin, TX') |
{
"type": "object",
"fields": {
"page": "integer echoing the current page number",
"agents": "array of agent objects with name, profile_url, agent_id, name_slug, phone, brokerage, photo_url",
"location": "string echoing the input location",
"total_count": "integer total number of agents serving the location"
},
"sample": {
"data": {
"page": 1,
"agents": [
{
"name": "John Doe",
"phone": "+1 (555) 012-3456",
"agent_id": "ycqgq7s",
"brokerage": "COMPASS",
"name_slug": "john-doe",
"photo_url": "https://imagescdn.homes.com/i2/BSLMTJMQGDW7G7VzBrrTLZ3jmcRlUHiPww28zJvKJys/115/john-doe.jpg?p=1",
"profile_url": "https://www.homes.com/real-estate-agents/john-doe/ycqgq7s/"
}
],
"location": "Seattle, WA",
"total_count": 12437
},
"status": "success"
}
}About the Homes API
Property Search
Both search_properties_for_sale and search_properties_for_rent accept a location string (e.g. Austin, TX) and an optional property_type filter from a fixed set: houses, townhouses, condos, land, or mobile. Each page returns up to 40 listings. Each listing object includes address, price, beds, baths, sqft, agent, brokerage, and a direct url to the listing on Homes.com. The response also echoes mode (sale or rent), the current page, and the input location and property_type for easy result labeling.
Property Details
get_property_details accepts any full Homes.com property URL — typically obtained from a listing's url field in a search response. It returns price, address, description, and a structured facts object containing fields such as bedrooms, bathrooms, sqft, year_built, price_per_sq_ft, and property_type. This endpoint is the natural next step after a search query when full listing details are needed.
Agent Search and Profiles
search_agents queries agents by location and returns up to 48 agents per page, including name, phone, brokerage, photo_url, profile_url, agent_id, and name_slug. The total_count field reflects all agents serving that area, not just the current page. Feed agent_id and name_slug into get_agent_profile to retrieve deeper data: bio, specialties, languages, awards, neighborhoods_served, and contact details. Both fields from search_agents are required inputs for get_agent_profile.
The Homes API is a managed, monitored endpoint for homes.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when homes.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official homes.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a neighborhood property search tool filtered by
property_typeand paginated bypage - Aggregate rental listings across multiple cities by looping
search_properties_for_rentwith differentlocationvalues - Enrich CRM records with agent
brokerage,specialties, andneighborhoods_servedfromget_agent_profile - Display full listing details including
year_built,price_per_sq_ft, anddescriptionon a property detail page - Create an agent directory sorted by brokerage, pulling
phoneandprofile_urlfromsearch_agents - Monitor listing availability in a target city by polling
search_properties_for_saleand comparing results over time
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Homes.com have an official developer API?+
What does `get_agent_profile` return beyond basic contact info?+
get_agent_profile returns bio, specialties, awards, languages, neighborhoods_served, brokerage, phone, and profile_url. It requires both agent_id and name_slug, which are returned in every object from search_agents.Can I filter property searches by price range, square footage, or number of bedrooms?+
location and property_type as filters; price, sqft, and bedroom filters are not exposed as parameters. You can fork this API on Parse and revise it to add those filtering inputs.Does `get_property_details` return listing photos or virtual tour links?+
price, address, description, and a facts object covering fields like bedrooms, sqft, year_built, and price_per_sq_ft. Photo arrays and tour URLs are not part of the current response. You can fork this API on Parse and revise it to include media fields.How does pagination work across the search endpoints?+
search_agents, search_properties_for_sale, search_properties_for_rent) use 1-based page integers. Agent search returns up to 48 results per page; property searches return up to 40. The total_count field in search_agents tells you the total agents in that area, which you can divide by 48 to determine the page ceiling.