Realtor APIrealtor.com ↗
Access Realtor.com property listings, detailed property info, agent search, location autocomplete, and market analytics via a single REST API.
What is the Realtor API?
This API exposes 5 endpoints covering Realtor.com's property listings, detailed records, agent matching, and market analytics. Use search_properties to query active listings by city, state, or ZIP code with filters for price, beds, baths, and status, then pass a property_id to get_property_details to retrieve tax history, price history, school ratings, and full descriptions for any individual listing.
curl -X GET 'https://api.parse.bot/scraper/8fac95fb-f5aa-42ec-8b47-f4c2de511855/search_properties?limit=5&offset=0&status=%5B%22for_sale%22%5D&beds_min=2&location=Austin%2C+TX&baths_min=1&max_price=500000&min_price=100000&sort_field=list_date&property_type=%5B%22single_family%22%5D&sort_direction=asc' \ -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 realtor-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.
from parse_apis.realtor.com_scraper_api import Realtor, SortField, SortDirection, PropertySummary, Property, Market
realtor = Realtor()
# Search for properties in Austin, TX sorted by price
for listing in realtor.properties.search(
location="Austin, TX",
sort_field=SortField.LIST_PRICE,
sort_direction=SortDirection.DESC,
beds_min=3,
max_price=800000,
limit=5,
):
print(listing.property_id, listing.list_price, listing.status)
print(listing.description.beds, listing.description.sqft)
print(listing.location.address.city, listing.location.address.state_code)
# Get full details for the first property
details = listing.details()
print(details.description.text, details.description.year_built)
for school in details.schools.schools:
print(school.name, school.rating)
break
# Search for agents in a zip code
match = realtor.agentmatches.search(postal_code="10001")
print(match.is_qualified, match.geodecoded_address.city)
for agent in match.realtors:
print(agent.name, agent.brokerage_name, agent.years_experience, agent.sold_count)
# Get location suggestions
for suggestion in realtor.locationsuggestions.search(input="San Fran", limit=3):
print(suggestion.city, suggestion.state_code, suggestion.area_type)
print(suggestion.centroid.lat, suggestion.centroid.lon)
# Get market analytics
market = realtor.markets.get(location="Austin, TX")
print(market.location, market.median_listing_price)
Search for real estate properties by location (city/state or ZIP code) with support for status, price, beds, baths, and property type filters. Returns paginated results sorted by the specified field. Pagination is offset-based with limit and offset parameters. Each property summary includes basic details; use get_property_details for full information including history and schools.
| Param | Type | Description |
|---|---|---|
| limit | integer | Number of results to return per page. |
| offset | integer | Pagination offset (number of results to skip). |
| status | string | JSON array of listing statuses to filter by. Accepted values include 'for_sale' and 'for_rent'. Example: '["for_sale"]'. |
| beds_min | integer | Minimum number of bedrooms filter. |
| locationrequired | string | Location to search. Accepts 'City, ST' format (e.g. 'Austin, TX') or a 5-digit ZIP code (e.g. '78701'). |
| baths_min | number | Minimum number of bathrooms filter. |
| max_price | integer | Maximum listing price filter. |
| min_price | integer | Minimum listing price filter. |
| sort_field | string | Field to sort results by. |
| property_type | string | JSON array of property types to filter by. Accepted values include 'single_family', 'condos', 'multi_family', 'mobile', 'land', 'farm', 'townhomes'. Example: '["single_family", "condos"]'. |
| sort_direction | string | Sort direction. |
{
"type": "object",
"fields": {
"count": "integer, number of properties returned in this response",
"total": "integer, total number of matching properties available",
"properties": "array of property summary objects with property_id, list_price, list_date, status, description, location, and photos"
},
"sample": {
"data": {
"count": 5,
"total": 7299,
"properties": [
{
"href": "https://www.realtor.com/realestateandhomes-detail/14909-Fitzhugh-Rd-Unit-B_Austin_TX_78736_M78938-42560",
"photos": [
{
"href": "http://ap.rdcpix.com/example.jpg"
}
],
"status": "for_sale",
"location": {
"address": {
"city": "Austin",
"line": "14909 Fitzhugh Rd Unit B",
"state_code": "TX",
"postal_code": "78736"
}
},
"list_date": "2026-06-10T03:04:39.000000Z",
"list_price": 2690000,
"listing_id": "2996872196",
"description": {
"beds": 3,
"sqft": 3400,
"type": "farm",
"lot_sqft": 552428,
"baths_consolidated": "3.5"
},
"property_id": "7893842560"
}
]
},
"status": "success"
}
}About the Realtor API
Property Search and Details
The search_properties endpoint accepts a required location parameter in either City, ST or 5-digit ZIP format, and supports optional filters including min_price, max_price, beds_min, baths_min, and a status array that accepts values like for_sale and for_rent. Results are paginated via limit and offset, and each returned property object includes property_id, list_price, list_date, status, description, location, and photos.
Passing a property_id from search results to get_property_details returns a richer record: the description object adds beds, baths_consolidated, sqft, lot_sqft, type, text, and year_built. The response also includes tax_history (an array of annual tax amounts and assessment totals), property_history (dated events such as price changes and prior sales), and a schools object with name, rating, and grade ranges for nearby institutions.
Agent Search and Location Utilities
The search_agents endpoint takes a 5-digit postal_code and returns agent profiles through the upnest_automatch_agents_by_zip_code object, which includes each agent's name, license number, brokerage name, and years of experience. The get_location_suggestions endpoint accepts a partial string and returns ranked hits — each with area_type, city, state_code, postal_code, centroid coordinates, and a slug_id — making it suitable for driving search autocomplete UI.
Market Analytics
The get_market_analytics endpoint accepts a city/state or ZIP code and returns median_listing_price for that area. This is a single aggregate figure per location query, useful for quick price benchmarking or trend dashboards when combined with search data from search_properties.
The Realtor API is a managed, monitored endpoint for realtor.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when realtor.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 realtor.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 property search app filtering Realtor.com listings by price range, bedroom count, and rental vs. sale status
- Display school ratings and tax history on individual property detail pages using
get_property_detailsresponse fields - Match home buyers with local agents by postal code using the
search_agentsendpoint's brokerage and experience data - Power a location autocomplete input field with city, county, and ZIP suggestions from
get_location_suggestions - Show median listing prices by city or ZIP for a market comparison dashboard using
get_market_analytics - Track historical price changes and prior sale events for a specific property using the
property_historyarray - Aggregate tax assessment records across a portfolio of properties by batching
get_property_detailsrequests
| 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 Realtor.com have an official developer API?+
What does `get_property_details` return beyond what appears in search results?+
get_property_details endpoint adds several fields not present in search_properties results: tax_history (annual tax amounts and assessment totals), property_history (dated events including past sales and price changes), schools (nearby school names, ratings, and grade ranges), and an expanded description object that includes sqft, lot_sqft, year_built, and free-text description. The search endpoint returns summary-level fields only.Can I filter `search_properties` results by property type or sort field?+
status filtering via a JSON array (e.g. for_sale, for_rent) and numeric filters for min_price, max_price, beds_min, and baths_min. The endpoint description references sort field support. There is no explicit property type filter exposed in the current parameter set. You can fork this API on Parse and revise it to add a property type filter if that field is available in the underlying data.Does the API cover rental listings or only properties for sale?+
status filter in search_properties accepts both for_sale and for_rent values, so both active sale listings and rentals are within scope. The get_market_analytics endpoint returns a single median_listing_price figure and does not currently expose a separate median rent metric. You can fork the API on Parse and revise it to add a rental-specific analytics endpoint.Is property coverage limited to specific US regions?+
search_properties and search_agents endpoints accept US city/state combinations and 5-digit ZIP codes, so coverage is US-only. International property markets are not covered by the current endpoints. You can fork this API on Parse and revise it to add support for international real estate sources if needed.