Homes APIhomes.com ↗
Access Homes.com listings, rental properties, and agent profiles via API. Search by location, filter by property type, and retrieve detailed facts and reviews.
What is the Homes API?
The Homes.com API exposes 6 endpoints covering property listings for sale and rent, agent search, and detailed agent profiles — all queryable by city and state. The search_properties_for_sale endpoint returns paginated listings with price, beds, baths, square footage, and listing agent info. The search_agents endpoint surfaces agent contact details, brokerage affiliation, sales volume, and price range across any U.S. market.
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
The search_properties_for_sale and search_properties_for_rent endpoints both accept a location string (e.g. 'Austin, TX') and an optional property_type filter with accepted values of houses, townhouses, condos, land, or mobile. Each returns a listings array where every object includes address, price, beds, baths, sqft, agent, brokerage, and a direct url to the listing. Pagination is handled via the page parameter. The mode field in the response is always 'sale' or 'rent', confirming which endpoint was called.
Property Details
get_property_details takes a full Homes.com property URL — typically sourced from a prior search result — and returns the address, price, description, and a facts object containing fields like price_per_sq_ft, year_built, and lot_size. This endpoint is the right choice when you need the full property write-up rather than the summary fields from search results.
Agent Search and Profiles
search_agents queries agents by location and returns an array of agent objects with name, phone, brokerage, total_sales, local_sales, price_range, photo_url, and a profile_url. The total_count field tells you how many agents match that market without paginating through all results. To fetch a full agent profile, pass the agent_id and name_slug (both available from search results) into get_agent_profile, which returns a bio, specialties array, neighborhoods_served array, and a reviews array with user-submitted feedback. A separate get_total_agent_count endpoint returns the platform-wide count of listed agents as a string.
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 an agent comparison tool using
total_sales,local_sales, andprice_rangefromsearch_agents - Populate a neighborhood property feed by calling
search_properties_for_salewith city/state and filtering byproperty_type - Enrich a CRM with agent bios, specialties, and neighborhoods served from
get_agent_profile - Track rental inventory across multiple cities by paginating
search_properties_for_rentresults - Display full listing detail pages using
description,facts, andpricefromget_property_details - Aggregate agent review sentiment by pulling the
reviewsarray fromget_agent_profilefor multiple agents in a market - Monitor total agent supply in a region using
get_total_agent_countandtotal_countfromsearch_agents
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. 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 what `search_agents` provides?+
search_agents returns summary fields: name, phone, brokerage, sales counts, price range, and a profile URL. get_agent_profile adds a written bio, a specialties array, a neighborhoods_served array, and a full reviews array with individual user reviews. You need both the agent_id and name_slug from the search result to call the profile endpoint.Can I search properties by ZIP code or MLS number?+
location string in city-and-state format (e.g. 'Seattle, WA'). ZIP code, MLS number, and coordinates are not supported as input filters. You can fork this API on Parse and revise it to add a ZIP-based or MLS lookup endpoint.What property facts are available from `get_property_details`?+
facts object can include price_per_sq_ft, year_built, and lot_size, alongside top-level fields for address, price, and description. The exact subset of facts returned depends on what the individual listing includes; not every listing will have all three fact fields populated.