Homes.com Scraper — US Property Data, Agents & KPIs
Pricing
from $1.00 / 1,000 extracted properties
Homes.com Scraper — US Property Data, Agents & KPIs
The Homes.com API and scraper for your PropTech stack. Pull US for-sale, for-rent and sold listings by location, ZIP, coordinates or URL — with agent contacts, license data, public records and market KPIs (median price, price per sqft, city breakdowns). Clean JSON or CSV.
Pricing
from $1.00 / 1,000 extracted properties
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
1
Bookmarked
20
Total users
9
Monthly active users
5 days ago
Last modified
Categories
Share
Homes.com Scraper — US Property Data, Agents & KPIs 🏡
🎉 The Homes.com scraper that turns every listing into a full property dossier — public records, 90+ features, open houses and listing-agent contacts
Built for real estate investors, buyer's agents, relocation services and market analysts who need more than a listing card
📋 Overview
Pull rich US residential data from Homes.com in one run — for-sale, for-rent and recently-sold listings, plus the property detail and agent contacts most scrapers leave behind. Search a whole metro or drill into a single home; either way you get structured, analysis-ready data.
Why professionals choose this Homes.com scraper:
- ✅ Deep property dossier: every detail lookup returns public records, home facts, the full feature list, MLS number, price/sqft, open houses, the photo gallery and the listing agents — far more than the listing card.
- ⚡ 9 lookup modes, one actor: search by location, ZIP, coordinates or URL; detail by property ID or URL; agent search and agent profiles; and location autocomplete.
- 🎯 For sale + for rent + sold: one
searchTypeswitch covers active sales, rentals and recently-sold comps. - 💰 Pay-per-result pricing: only charged for rows that land in your dataset — cheaper than monthly flat-rate Homes.com tools.
- 💎 Agent contacts included: listing agents on every detail row, plus agent search and full agent profiles with phone, email, office and license.
- ✨ Built-in market KPIs + HTML report: median price, price-per-sqft distribution and city / status / type breakdowns, every run.
This is the third independent US listings source in the SIÁN real estate suite — pair it with the Redfin and Realtor.com scrapers to cross-validate prices, beds/baths and status across three sources.
✨ Features
- 🔎 Search by location: city/state, neighborhood, ZIP or free text, fully paginated.
- 🏷️ Search by ZIP: pull every listing in a 5-digit ZIP.
- 🌐 Search by coordinates: lat/long + radius for map-bounded farming.
- 🔗 Search by URL: paste any Homes.com search page and collect the results.
- 🆔 Detail by ID / URL: full property dossier from a property key or a Homes.com listing URL.
- 👤 Agent search: find Homes.com agents by name and get their agent key.
- 📇 Agent profiles: office, phone, email, license, bio and active-listing count.
- 🧩 Facts + features + public records: beds, baths, floor space, lot, year built, HOA fee and the full feature list.
- 🚪 Open houses & media: scheduled open-house events, the photo gallery, floor plans and tours.
- 📊 Market KPIs + HTML report: median price, price/sqft, and breakdowns every run.
🎬 Quick Start
Pick an operation, give it a location (or a listing identifier), and run. Results stream to your Apify dataset as structured JSON. Start on the FREE tier to test, then scale.
curl -X POST "https://api.apify.com/v2/acts/sian.agency~homes-com-property-scraper/runs?token=YOUR_TOKEN" \-H 'Content-Type: application/json' \-d '{"operation": "searchByLocation", "location": "Austin, TX", "searchType": "FOR_SALE", "maxResults": 50}'
🚀 Getting Started (3 Simple Steps)
Step 1: Choose an operation
Search a market (searchByLocation / searchByZip / searchByCoordinates / searchByUrl), look up one home (detailsById / detailsByUrl), or work the agent side (agentSearch / agentDetails).
Step 2: Provide the input
A location string, ZIP, lat/long, Homes.com URL, property ID or agent name — whatever the operation needs.
Step 3: Run and export
Collect structured rows in the dataset and a market-KPI HTML report in the key-value store. Export to JSON, CSV or Excel.
That's it! In under a minute, you'll have:
- A clean dataset of Homes.com listings (or a full property dossier)
- Home facts, public records, open houses and listing-agent contacts
- A market-KPI summary report
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| operation | string | Yes | Which lookup to run (see list below). Default searchByLocation. |
| location | string | For location search | City/state, neighborhood, ZIP or free text, e.g. Austin, TX. |
| zipCode | string | For ZIP search | 5-digit US ZIP, e.g. 78724. |
| latitude / longitude | string | For coordinate search | Center point. |
| radius | string | No | Radius in miles for coordinate search. |
| url | string | For URL search / detail / agent details | Homes.com search page, property URL or agent profile URL. |
| id | string | For detailsById | Homes.com property key from a search row (propertyId). |
| name | string | For agentSearch | Agent name to search, e.g. John Smith. |
| agentId | string | For agentDetails | Agent key from an agentSearch row. |
| searchType | string | No | FOR_SALE (default), FOR_RENT or SOLD. |
| propertyType | array | No | One or more types, e.g. house, condo (search operations). |
| priceMin / priceMax | integer | No | Price range filter (search operations). |
| maxResults | integer | No | Max rows per run. FREE tier capped at 60. |
Operations: searchByLocation · searchByZip · searchByCoordinates · searchByUrl · detailsById · detailsByUrl · agentSearch · agentDetails · autocomplete
Example — search a metro:
{ "operation": "searchByLocation", "location": "Austin, TX", "searchType": "FOR_RENT", "maxResults": 100 }
Example — full property dossier:
{ "operation": "detailsByUrl", "url": "/home/7708-dalmation-ln-557-austin-tx-78724-463215544" }
Example — find an agent, then pull the full profile:
{ "operation": "agentSearch", "name": "John Smith", "maxResults": 25 }
{ "operation": "agentDetails", "agentId": "w9enbmj" }
📤 Output
Results are saved to the Apify dataset. Listing rows, detail rows, agent rows and suggestion rows each carry a rowType. Key fields include:
| Field | Type | Description |
|---|---|---|
| rowType | string | property · property-detail · agent · agent-detail · location-suggestion |
| propertyId / listingKey | string | Homes.com identifiers |
| url | string | Full Homes.com listing URL |
| status | string | For Sale / For Rent / Recently Sold / Off Market |
| address | object | Street, city, county, state, ZIP, neighborhood |
| location | object | Latitude / longitude |
| pricing | object | Display price + numeric value + price change |
| specs | object | Beds, baths, floor space |
| media | object | Photos, photo count, floor plans |
| propertyDescription | string | Listing description (detail rows) |
| listing | object | Price, human-readable status, MLS number, listed date (detail rows) |
| facts | object | Beds, baths, floor space, lot, year built, property type, HOA fee (detail rows) |
| features / highlights | array | Full feature list and architecture / lot / community highlights (detail rows) |
| publicRecords | object | Public-record data for the property (detail rows) |
| openHouses | array | Scheduled open-house events (detail rows) |
| agents | array | Listing agents with name, phone, email, office, license (detail rows) |
| name / agentId / office / phone / email / license | – | Agent fields (agent + agent-detail rows) |
Example — listing row:
{"rowType": "property","propertyId": "463215544_ZPID","listingKey": "7463215544","url": "https://www.homes.com/home/7708-dalmation-ln-557-austin-tx-78724-463215544","status": "For Sale","address": { "city": "Austin", "state": "TX", "zipCode": "78724", "full": "7708 Dalmation Ln #557, Austin, TX 78724" },"location": { "latitude": 30.3171, "longitude": -97.6247 },"pricing": { "price": "$129,995" },"specs": { "beds": "5bd", "baths": "3ba", "floorSpace": "2,128 sqft" }}
A market-KPI HTML report (median price, price/sqft, breakdowns) is saved to the key-value store as report.html.
💼 Use Cases & Examples
1. Real estate investors
Find and value distressed and below-market homes across a metro.
Input: searchByLocation + SOLD for comps, then detailsById on a target.
Output: Recently-sold prices, price/sqft and a full dossier on the target home.
Use: Underwrite offers with three independent sources (Homes.com + Redfin + Realtor).
2. Buyer's agents
Build detail-rich listing packets for clients.
Input: searchByZip to shortlist, then detailsByUrl on each home.
Output: Home facts, the full feature list, public records, open houses and the photo gallery in one packet.
Use: Win listings with data competitors don't surface.
3. Relocation services
Compare candidate areas for relocating employees.
Input: autocomplete to resolve each area, then searchByZip across candidate ZIPs.
Output: Price bands, beds/baths mix and property-type spread per area.
Use: Match families to the right area, fast.
4. Market analysts
Track for-sale, for-rent and sold inventory by metro.
Input: searchByLocation with each searchType.
Output: Median price, price/sqft and city/type breakdowns from the built-in KPIs.
Use: Feed dashboards and market reports.
5. Lead generation
Surface new listings and reach the agents behind them.
Input: searchByLocation sorted by newest and filtered by propertyType / priceMin, then agentSearch and agentDetails.
Output: Fresh listings with address, price and status, plus agent phone, email, office and license.
Use: Prioritize outreach to motivated sellers, renters and the agents representing them.
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/homes-com-property-scraper').call({operation: 'searchByLocation',location: 'Austin, TX',searchType: 'FOR_SALE',maxResults: 50});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/homes-com-property-scraper').call(run_input={'operation': 'detailsByUrl', 'url': '/home/7708-dalmation-ln-557-austin-tx-78724-463215544'})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~homes-com-property-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"operation": "searchByZip", "zipCode": "78724"}'
Automation Workflows (N8N / Zapier / Make)
- Trigger: Schedule or webhook
- HTTP Request: Call the actor API
- Process: Handle the JSON results
- Action: Save to a sheet, CRM or database
📊 Performance & Pricing
FREE Tier (Try It Now)
- Up to 60 rows per run — full feature access, same data quality
- No credit card required
- Perfect for testing a market or a single property
PAID Tier (Production Ready)
- Unlimited rows per run, deep pagination
- Pay-per-result: only charged for rows written to your dataset
💰 Transparent pay-per-result pricing — search listings, enriched property dossiers and enriched agent profiles are each billed per row, so you only pay for the data you keep.
❓ Frequently Asked Questions
Q: How many listings can I collect? A: FREE tier: up to 60 rows per run. PAID tier: unlimited with deep pagination.
Q: Can I get for-rent and sold listings, not just for-sale?
A: Yes — set searchType to FOR_RENT or SOLD.
Q: What's in the enriched property detail? A: Home facts (beds, baths, floor space, lot, year built, HOA fee), the full feature list, highlights, public records, MLS number and listed date, open houses, listing agents, the photo gallery with floor plans and tours, and the full description.
Q: What output formats are available? A: JSON, CSV and Excel — export directly from the Apify dataset.
Q: How do I look up one specific home?
A: Use detailsByUrl with the Homes.com listing URL, or detailsById with the propertyId from a search row. Run a search first if you don't have either.
Q: Is this legal? A: Yes — it only extracts publicly available data. See the legal section below.
🐛 Troubleshooting
No detail returned for a property
- Check the
urlis a Homes.com listing page, or pass thepropertyIdfrom a search row asid.
Empty search results
- Broaden the location, remove
propertyType/priceMinfilters, or try a differentsearchType.
Hitting the FREE-tier row cap
- FREE runs are capped at 60 rows. Upgrade your Apify plan for unlimited rows and deep pagination.
Coordinate search returns nothing
- Confirm latitude is between -90 and 90 and longitude between -180 and 180, and increase
radius.
⚠️ Trademark Disclaimer
This is an independent tool and is not affiliated with, endorsed by, or sponsored by Homes.com or Zillow Group, Inc. "Homes.com" is a trademark of its respective owner. This actor accesses only publicly available information and is intended for legitimate data-analysis purposes. All product names, trademarks and registered trademarks are the property of their respective owners and are used for identification purposes only.
⚖️ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
🤝 Support
Join our active support community
- For issues or questions, open an issue in the actor's Issues tab
- Check the SIÁN Agency Store for more automation tools
- 📧 apify@sian-agency.online
Built by SIÁN Agency | More Tools