Houzz Scraper — Professionals, Photos, Projects & Reviews
Pricing
from $1.99 / 1,000 houzz professionals
Houzz Scraper — Professionals, Photos, Projects & Reviews
Scrape Houzz professionals, photos, projects and reviews into JSON: phone, rating, badges, portfolio and design images. A Houzz API alternative for contractor leads and design research — Python, Node.js, and MCP.
Pricing
from $1.99 / 1,000 houzz professionals
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Disclaimer: Unofficial integration for publicly accessible sources. Trademarks belong to their respective owners. Provided for informational use only; users must comply with applicable platform terms and laws.
Crawloop directory suite — home professionals, public reviews, and employer signals.
| Houzz (home pros) | Trustpilot (public reviews) | Glassdoor (employer) | ThomasNet (industrial) |
|---|---|---|---|
| Houzz Scraper ◄── you are here | Trustpilot Scraper | Glassdoor Scraper | ThomasNet Scraper |
Houzz Scraper for Apify — scrape Houzz professionals, design photos, projects, and reviews into flat JSON without a public Houzz API. Extract name, phone, website, rating, review count, badges, typical job cost, sponsored vs organic rank, photo URLs, project portfolios, and review text.
Built for contractor lead lists (interior designers, architects, remodelers by city) and design research (kitchen/bath photo galleries, project portfolios). This Actor does not hunt emails on company websites. Run from the Console or with Python, Node.js, cURL, or MCP / AI assistants. A practical Houzz API alternative.
When to use this Actor
- You need a Houzz scraper for a profession + city (interior designers in Austin, kitchen remodelers in London)
- You want organic rank vs sponsored directory cards
- You are pulling Houzz photos for styles, rooms, and owner pros (modern kitchen, farmhouse bath)
- You need project portfolios or review rows tied to a professional — not contact emails
When not to use this Actor
- Email enrichment / website crawling for inboxes — out of scope on purpose
- Houzz Shop / product SKUs — the consumer marketplace is discontinued; use photos for product-in-room images
- Posting jobs or messaging pros through Houzz — read-only extraction
- Datacenter-only high volume — use Apify residential proxies for stable directory crawls
Key features
- Houzz API alternative — structured dataset instead of nested raw Houzz objects
- No pasted URL required — profession +
Austin, TX(or 14 country sites) builds the directory for you - Start URLs still work — directory,
pf~profiles, photo galleries,pj-vj~projects; type is auto-detected - Flat CRM fields — phone, decoded website, socials, rating, badges, cost band, lat/long on profiles
- Sponsored flag + listing position — paid vs organic cards (15 pros per
?fi=page) - Photos — React Query galleries (
?pg=) and classic SpaceStore pages; owner pro + image URL - Projects — portfolio rows from a pro profile or a project URL
- Reviews — featured / listing reviews nested or as separate
recordType=reviewrows - Filters —
minRating,minReviewCount,verifiedOnly,excludeSponsored - Monitor — scheduled NEW/UPDATED vs last run (rating, reviews, phone, verified). Skip UNCHANGED.
- HTTP —
curl_cffi(no browser). Residential recommended.
Use cases
| Buyer | Job to be done |
|---|---|
| Supplier / trade BD | Build a city list of kitchen remodelers: phone, cost band, hire badges, organic rank |
| Design / SEO research | Scrape modern kitchen photos with owner pro and tags |
| Market mapping | Compare ratings and review volume for architects in a metro |
| Reputation workflow | Pull Houzz reviews, then run Trustpilot on the decoded website |
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | Array | Austin interior designers | Directory, profile, photo, or project URLs. |
recordType | Enum | professionals | professionals / photos / projects / reviews. |
site | Enum | houzz.com | Country site when building from profession + location. |
profession | Enum | interior-designers | Directory category slug. |
locations | Array | Austin, TX | Cities (Austin, TX → /c/Austin--TX). |
searchQueries | Array | Photo keywords, or extra professional slugs × each location. | |
fetchDetails | Boolean | false | Open profiles for services, areas, aspect ratings, hires, website. |
includeReviews | Boolean | false | Nest reviews on each professional row. |
emitReviewRows | Boolean | false | Also push recordType=review rows. |
minRating / minReviewCount | Number | Shortlist floors. | |
verifiedOnly / excludeSponsored | Boolean | false | Trust and organic filters. |
maxItems | Integer | 50 | Max primary rows (0 = unlimited within maxPages). |
maxPages | Integer | 5 | Max listing pages per start URL. |
incrementalMode | Boolean | false | Emit NEW/UPDATED vs KV baseline. |
proxyConfiguration | Object | US residential | Residential recommended. |
Example — Austin interior designers (no URL)
{"recordType": "professionals","profession": "interior-designers","locations": ["Austin, TX"],"maxItems": 50,"maxPages": 3,"excludeSponsored": true,"minRating": 4.5}
Example — modern kitchen photos
{"recordType": "photos","searchQueries": ["modern kitchen"],"maxItems": 40,"maxPages": 2}
Example — profile + reviews
{"startUrls": [{ "url": "https://www.houzz.com/professionals/upholstery/spruce-pfvwus-pf~1988573048" }],"fetchDetails": true,"includeReviews": true,"emitReviewRows": true}
Output
Each default row is a professional, photo, project, or review (recordType). Reviews can also nest on reviews when includeReviews is on.
| Field | Description |
|---|---|
professionalId / userId / url | Stable Houzz ids and profile URL (pf~). |
displayName / profession / phone / website | Identity and decoded website (unwraps Houzz /trk/ redirects). |
rating / reviewCount / costEstimate | Directory score (5.0 scale) and typical job cost. |
city / state / formattedAddress / latitude | Geography. |
isSponsored / isProVerified / listingPosition | Paid vs organic + verification. |
badges / hireCount / aspectQuality | Best of Houzz, hires, aspect ratings (on profile fetch). |
photoId / imageUrl / ownerName | Design photo rows. |
projectId / photoCount / professionalName | Portfolio project rows. |
{"recordType": "professional","professionalId": "86143","displayName": "Calming Spaces Interiors, Design & Remodeling","profession": "Interior Decorators","phone": "(512) 842-4664","city": "Austin","state": "TX","rating": 4.8,"reviewCount": 50,"isSponsored": true,"listingPosition": 1,"url": "https://www.houzz.com/professionals/interior-decorators/calming-spaces-interiors-design-and-remodeling-pfvwus-pf~436247126"}
Integration examples
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('crawloop/houzz-scraper').call({profession: 'interior-designers',locations: ['Austin, TX'],maxItems: 25,excludeSponsored: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient(token="YOUR_TOKEN")run = client.actor("crawloop/houzz-scraper").call(run_input={"profession": "interior-designers","locations": ["Austin, TX"],"maxItems": 25,"excludeSponsored": True,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
cURL
curl "https://api.apify.com/v2/acts/crawloop~houzz-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"profession":"interior-designers","locations":["Austin, TX"],"maxItems":25}'
MCP and AI assistants
Use this Actor from AI tools via Apify MCP.
Connect your Apify account, then call this Actor by its Store ID crawloop/houzz-scraper.
Example prompts:
- "Run Houzz Scraper for kitchen remodelers in Austin, TX, exclude sponsored listings, min rating 4.5, and return the top 20 rows as JSON"
- "Scrape modern kitchen photos with Houzz Scraper and summarize owner professionals and styles"
- "Chain Houzz Scraper then Trustpilot Scraper on the decoded websites for public reputation"
Suite next step
After a Houzz contractor shortlist, run Trustpilot Scraper on the same websites for public reviews, or Glassdoor Scraper for employer/team signals.
FAQ
Is this a Houzz API?
No. Houzz does not offer a public directory API. This Actor is a Houzz API alternative that reads public listing, profile, and gallery HTML.
Why not emails?
Lead workflows already get phones, websites, and socials published on Houzz. Third-party inbox hunting is noisy, extra-billed, and not this product.
How many professionals per page?
A directory page currently renders 15 cards. Pagination is ?fi=15, ?fi=30, …. Photo galleries paginate with ?pg=2 (20 images).
Does it work with Python / Node.js / MCP?
Yes. Use the Apify client examples above or Apify MCP prompts.
Which country sites?
houzz.com, .co.uk, .com.au, .de, .fr, .it, .es, and other Houzz locales in the site enum.