Houzz Scraper - Extract Home Professionals, Reviews & Projects
Pricing
from $0.01 / 1,000 results
Houzz Scraper - Extract Home Professionals, Reviews & Projects
Extract comprehensive data from Houzz including home improvement professionals, customer reviews, portfolio projects, and business details. Perfect for lead generation, market research, and competitive analysis in the home services industry.
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer
The Howlers
Maintained by CommunityActor stats
0
Bookmarked
28
Total users
0
Monthly active users
6 days ago
Last modified
Categories
Security
Limited permissionsShare
Houzz Professional Scraper
Find Houzz professionals by business name or by trade near any US city, or read one profile by URL. Each result is read from the pro's own public Houzz profile: profile URL, name, street address, phone, website, rating, review count, category, services, areas served, license number, badges and social links, plus reviews and project photos when you ask for them. Built by John Rippy (https://www.linkedin.com/in/johnrippy/).
Good for citation and NAP audits (is this business on Houzz, and is its listing right?), lead lists of contractors and designers in a market, and feeding Houzz data into your own app.
How it works
The actor opens Houzz the way a person does, in a real browser (Camoufox, a hardened Firefox with a realistic fingerprint) on US residential IPs, one page at a time with short pauses. It never logs in.
- Search by business name: set
businessNameandlocation. Houzz's own search runs for that place, and because it ranks by place and trade it can leave the named pro out, Google's index of houzz.com is searched for the name too (Google often hides those links; the actor follows each one only far enough to read the Houzz address). Every profile with that name is opened and read, and a profile is kept only when its name, phone or street matches. Profiles in the city you gave come first. When a business has several Houzz profiles (one per office is common), givebusinessPhoneorbusinessAddressand the profile with that phone or street comes first. - Search by trade: set
searchTerm(for exampleGeneral Contractor,Interior Designer,Roofing) andlocation. You get the pros Houzz ranks for that place, in Houzz's order, up tomaxResults. - One profile: set
scrapeTypetoprofessional_profile(orreviews) andprofessionalUrl.
When a name search finds nothing, the run returns one notice row, never charged as a professional:
status: "not_found": Houzz's search and Google's index of houzz.com were both searched, every profile they returned for the name was read, and none is this business.otherResultslists the names Houzz showed instead.status: "unverified": the search could not be completed (seereasons: Google did not answer, a result link could not be opened, or a profile did not load). This is not evidence that the business is missing from Houzz.status: "blocked": neither Houzz nor the search answered after retries.
Quick start
Find one business
{"scrapeType": "search","businessName": "Bone Dry Roofing","location": "Indianapolis, IN","businessAddress": "7735 Winton Dr","maxResults": 3,"includeReviews": false,"demoMode": false}
Pros for a trade in a city
{"scrapeType": "search","searchTerm": "General Contractor","location": "Los Angeles, CA","maxResults": 25,"includeReviews": true,"maxReviewsPerProfessional": 10,"demoMode": false}
One profile with its reviews
{"scrapeType": "reviews","professionalUrl": "https://www.houzz.com/professionals/building-designers-and-drafters/stephen-davis-home-designs-llc-pfvwus-pf~1544664725","maxReviewsPerProfessional": 20,"demoMode": false}
Sample data
{"demoMode": true} returns labeled sample rows (demo: true) without visiting Houzz. Sample rows are not charged as professionals.
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
scrapeType | string | "search" | search, professional_profile or reviews |
businessName | string | - | Business to look up by name near location |
businessPhone | string | - | Optional, with businessName: ranks the profile with this phone first |
businessAddress | string | - | Optional, with businessName: ranks the profile at this street first |
searchTerm | string | "General Contractor" | Trade or name to search for when businessName is empty |
location | string | "Los Angeles, CA" | City and state, or a ZIP code |
professionalUrl | string | - | A houzz.com professional page, for professional_profile and reviews |
professionalType | string | "all" | Narrow a trade search to one Houzz category |
minRating | number | 0 | Skip pros rated below this |
includeReviews | boolean | true | Read reviews for each profile |
maxReviewsPerProfessional | integer | 20 | Reviews per profile, up to 100 |
includeProjects | boolean | false | Collect project photo URLs from each profile |
maxResults | integer | 50 | Most profiles to read |
proxyConfiguration | object | RESIDENTIAL | Keep residential proxies on; Houzz turns away most datacenter IPs |
demoMode | boolean | false | Labeled sample data, nothing fetched |
webhookUrl | string | - | Each profile is also POSTed here as it is read |
sessionCookies | string | - | Optional cookies (JSON from Cookie-Editor) from your own Houzz session |
cookieStorageKey / cookieKvStoreName | string | - | Load those cookies from a key-value store instead |
Output
One row per profile:
{"name": "Bone Dry Roofing","houzzUrl": "https://www.houzz.com/professionals/roofing-and-gutters/bone-dry-roofing-pfvwus-pf~886341101","houzzId": "886341101","professionalType": "Roofing & Gutters","address": { "street": "7735 Winton Dr", "city": "Indianapolis", "state": "IN", "zip": "46268", "full": "7735 Winton Dr, Indianapolis, IN 46268" },"fullAddress": "7735 Winton Dr, Indianapolis, IN 46268","phone": "(317) 427-5131","website": "https://bonedry.com/indianapolis/","rating": null,"reviewCount": 0,"specialty": ["Gutter Installation", "Roof Replacement", "Roof Repair"],"serviceAreas": [],"latitude": 39.8682,"longitude": -86.2123,"reviews": [],"searchQuery": "Bone Dry Roofing","searchLocation": "Indianapolis, IN","nameMatchScore": 1,"inSearchedCity": true,"matchesStreet": true}
rating is null when the pro has no reviews yet (Houzz shows no rating), never 0. location ({city, state, zipCode}) is kept for older integrations. nameMatchScore is 1 for the same name, ignoring case, punctuation and LLC or Inc.
Pricing
This actor uses pay-per-event billing:
| Event | When it is charged | Price |
|---|---|---|
| Actor start | Once when the run starts, one event per GB of memory (minimum one). At the default 2 GB of memory a run starts at $0.20 | $0.10 per GB |
| Professional Result | Each professional profile scraped | $0.002 |
| Review | Each review scraped | $0.001 |
| Project | Each project photo scraped | $0.001 |
| Result | Each item written to the default dataset | $0.00001 |
A profile is charged once, after it has been read. Not-found and blocked notices and sample rows are never charged as professionals.
Troubleshooting
A name search returns unverified
The search could not be completed (see reasons), so the business may still be on Houzz. Run again; nothing was charged.
A name search returns not_found
Neither Houzz's search nor Google's index of houzz.com has a profile with that name near that place. The row lists the names Houzz showed instead. Try the name as it appears on Houzz, or a nearby city.
status: "blocked"
Houzz did not serve the page after several tries on fresh residential IPs. Run again later; keep proxyConfiguration on RESIDENTIAL.
Several profiles with the same name
Many businesses keep one Houzz profile per office. Pass businessPhone or businessAddress to put the right one first, and read matchesPhone and matchesStreet on each row.
Built by John Rippy | Actor Arsenal