Houzz Pros [$2💰] Contractor & Designer Leads, Reviews, Emails avatar

Houzz Pros [$2💰] Contractor & Designer Leads, Reviews, Emails

Pricing

Pay per event

Go to Apify Store
Houzz Pros [$2💰] Contractor & Designer Leads, Reviews, Emails

Houzz Pros [$2💰] Contractor & Designer Leads, Reviews, Emails

Houzz professionals scraper — find contractors, architects, designers and remodelers by trade and city. One row per pro: phone, website, address, rating, review count, services, areas served, license and cost estimate. Opt-in nested reviews and emails. Pure HTTP, no browser.

Pricing

Pay per event

Rating

5.0

(1)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

1

Bookmarked

36

Total users

12

Monthly active users

2 days ago

Last modified

Share

Houzz Professionals Scraper

Houzz Professionals Scraper

Turn the Houzz professionals directory into a clean lead list.

Search by trade and citygeneral contractor in New York, NY, architect in Austin, TX — and get one flat row per professional with phone, website, full address, review score, services provided, areas served, license number and cost estimate. Optional add-ons nest real customer reviews on the same row and hunt for a contact email on the pro's own website.

No URLs to collect, no login, no browser. JSON, CSV, Excel or straight into your API.


Why Use This Scraper?

  • The whole profile arrives in one call. Phone, website, address, license and service list come back with the search hit itself — there is no slow per-profile detail step to pay for or wait on.
  • Reviews cost nothing extra. Flip includeReviews on and each professional's reviews are nested on that pro's row. Competing Houzz actors bill reviews as separate rows; here they ride under the single professional charge you already paid.
  • Trade × city grid. Every keyword is searched in every city you list, deduped by Houzz id, so ["general contractor","roofer"] × ["Austin, TX","Dallas, TX"] is one run, not four.
  • Talks to Houzz's own mobile API. The actor speaks the signed iOS endpoint, so a website redesign cannot break the parser and no WAF stands in the way. Cheap datacenter proxies are enough — you do not need residential IPs.
  • Deep pagination. Major metros carry tens of thousands of pros per trade. Page as far as you want, or cap it with maxItems / maxItemsPerQuery.
  • Pay per professional. $2 per 1,000 rows, and duplicates are never billed twice.

Overview

The output is one row per professional, not one row per project, photo or review. Everything about a pro — identity, contact block, address, trade detail, ratings, media and (optionally) their reviews — lives in that single row.

That matters when you export to CSV: you get a lead list you can hand to a sales team as-is, with phone and website populated on the great majority of rows. Reviews, when enabled, sit in a nested reviews array on the same row rather than exploding your file into one line per review.

The scraper searches Houzz's US professionals index. It has no login, so it sees exactly what a logged-out Houzz app user sees.


Supported Inputs

InputWhat it doesExample
searchQueriesProfession or keyword, searched and paginated"general contractor", "architect", "interior designer", "kitchen remodeler", "landscape architect"
locationsOptional city/area; each query runs in each location"New York, NY", "Los Angeles, CA", "Austin, TX"
(no locations)Leave the list empty for a nationwide US search[]

Not supported: pasting an individual Houzz profile URL, Houzz ideabooks, photos, products, or the Houzz Shop catalogue. This actor is a professionals-directory search tool.


Use Cases

WhoWhat they do with it
Home-services sales teamsBuild call lists of contractors, roofers and remodelers by metro, with phone and website on every row
Building-material & tool suppliersTarget pros by trade and service list (servicesProvided) rather than by generic SIC code
Franchise & marketplace recruitersFind high-rated, licensed pros in expansion cities using reviewRating, numReviews and licenseNumber
Market researchersMeasure trade density, rating distribution and cost-estimate ranges across cities
Competitive analystsPull a rival's Houzz profile, review history and pro replies to track reputation over time
Lead-gen agenciesLayer enrichEmails on top to attach a contact email scraped from each pro's own website

How It Works

How the Houzz Professionals Scraper works

  1. Input — you give professions and (optionally) cities. The actor builds one task per keyword × location pair.
  2. Engine — each task calls Houzz's signed iOS mobile API with an HMAC digest, 40 professionals per page, taking a fresh proxy exit IP for every page. Throttled pages rotate and retry automatically.
  3. Depth (optional) — with includeReviews on, each pro's reviews are fetched from the profile reviews endpoint and nested on the row. With enrichEmails on, the pro's own website is crawled for a contact email.
  4. Output — rows stream into your dataset, deduped by Houzz id across every keyword and city in the run.

Input Configuration

FieldTypeDefaultNotes
searchQueriesarray of strings["general contractor"]Professions/keywords. Each is searched and paginated.
locationsarray of strings["New York, NY"]Optional. Each query runs once per location. Empty ⇒ nationwide US.
maxItemsinteger1000Hard cap on professional rows for the whole run. Free-tier accounts are additionally capped at 100.
maxItemsPerQueryinteger1000Cap per keyword × location pair.
dedupebooleantrueDrop professionals already emitted under another query/location.
includeReviewsbooleanfalseNest each pro's reviews on their row. No extra charge.
maxReviewsPerProinteger20Newest-first cap per pro; only used when includeReviews is on. Max 500.
enrichEmailsbooleanfalseBest-effort contact email from the pro's own website. Billed per email found.
maxConcurrencyinteger4Parallel keyword × location tasks (1–10).
maxRequestRetriesinteger8Per-page retry budget; each retry rotates the exit IP.
proxyobjectApify Proxy (datacenter)The Houzz API has no WAF, so datacenter IPs are enough. Override to use your own.

Example input

{
"searchQueries": ["general contractor", "architect"],
"locations": ["New York, NY", "Los Angeles, CA"],
"maxItems": 1000,
"maxItemsPerQuery": 500,
"dedupe": true
}

Example input with reviews

{
"searchQueries": ["general contractor"],
"locations": ["New York, NY"],
"maxItems": 50,
"includeReviews": true,
"maxReviewsPerPro": 20
}

Output Overview

Every row is a professional. The shape never changes between runs — the two optional features only add fields:

ModeFields on the row
Default34 flat fields: identity, contact, address, trade detail, ratings, media, provenance
includeReviews: trueadds reviews[], reviewsFetched, reviewsTotalAvailable
enrichEmails: trueadds contactEmail, contactWebsite, emailEnrichment

Because the extras nest, a CSV export stays one line per professional in every mode.


Output Samples

Professional (default run)

{
"id": "1967866",
"userName": "creativedesignconstruction",
"profileUrl": "https://www.houzz.com/pro/creativedesignconstruction",
"displayName": "Creative Design Construction, Inc.",
"contactName": "Glen Lumia",
"isProfessional": true,
"isBrand": false,
"isPaidPro": true,
"userType": "3",
"phone": "+1 201-885-5308",
"fax": "+1 201-784-5772",
"website": "https://www.CreativeDesignConstruction.com",
"email": "",
"location": "Northvale, New Jersey, 07647, United States",
"city": "Northvale",
"state": "New Jersey",
"zip": "07647",
"country": "United States",
"category": "Design & Build",
"aboutMe": "WELCOME TO CREATIVE DESIGN CONSTRUCTION & REMODELING…",
"servicesProvided": "3D Rendering, Basement Remodeling, Bathroom Remodeling, Home Additions, Kitchen Remodeling, Custom Cabinets",
"areasServed": "Glen Rock, Hillsdale, Mahwah, Nanuet, New City, Old Tappan, Paramus, Ridgewood, Teaneck, Tenafly",
"awards": "Creative Design Construction & Remodeling is proud to be Nationally and Regionally recognized…",
"licenseNumber": "NJ: 13VH01178400",
"numReviews": 133,
"reviewRating": 4.9,
"photoCount": 731,
"costEstimateFrom": null,
"costEstimateTo": null,
"costCurrency": "",
"profileImage": "https://st.hzcdn.com/simgs/a643b57d0fd9df32_2-5536/_.jpg",
"hasRealProfileImage": true,
"searchQuery": "general contractor",
"searchLocation": "New York, NY"
}

The same row with includeReviews: true

Three extra fields appear; everything above is unchanged.

{
// …all professional fields as above…
"reviewsFetched": 6,
"reviewsTotalAvailable": 133,
"reviews": [
{
"reviewId": "2240097",
"rating": 5,
"relationship": "CLIENT",
"projectDate": "2026-08-01",
"projectPrice": null,
"projectPriceLabel": "Choose one",
"body": "Hello, my name is Joseph Salamone. Work was done in my condo… we are pleased with the work that was done and would recommend your company.",
"reviewerName": "HU-824331203",
"reviewerUserName": "webuser_824331203",
"reviewerProfileImage": "",
"reviewerIsProfessional": false,
"photos": [],
"numberOfLikes": 0,
"createdAt": "2026-08-03T14:57:51.000Z",
"modifiedAt": "2026-08-03T14:57:51.000Z",
"status": "ACTIVE",
"proResponse": "",
"proResponseAt": ""
}
]
}

Key Output Fields

Identity

FieldDescription
idHouzz professional id — the dedupe key
userNameHouzz handle
profileUrlPublic profile permalink
displayNameBusiness name
contactNamePrimary contact person
isProfessional, isBrand, isPaidPro, userTypeAccount flags

Contact

FieldDescription
phone, faxFormatted numbers
websiteBusiness website, normalised to https://
emailOnly when Houzz exposes one (rare) — see enrichEmails
contactEmail, contactWebsite, emailEnrichmentPresent when enrichEmails is on

Address

FieldDescription
locationFull address string as Houzz stores it
city, state, zip, countryParsed components

Trade detail

FieldDescription
categoryPrimary Houzz category, e.g. Design & Build
aboutMeBusiness description
servicesProvidedComma-separated service list
areasServedComma-separated service area list
awardsAwards and recognitions
licenseNumberState licence number(s) where published
costEstimateFrom, costEstimateTo, costCurrencyPublished typical-project cost range

Ratings & media

FieldDescription
numReviewsReview count from the search index
reviewRatingAverage rating out of 5 (e.g. 4.9)
photoCountProject photos on the profile
profileImage, hasRealProfileImageAvatar URL and whether it is a real photo

Reviews (when includeReviews is on)

FieldDescription
reviewsFetchedHow many reviews were attached to this row
reviewsTotalAvailableHow many the pro has in total
reviews[].rating1–5 stars
reviews[].bodyFull review text
reviews[].reviewerName, reviews[].reviewerUserNameReviewer identity as Houzz publishes it
reviews[].relationshipe.g. CLIENT
reviews[].projectDate, reviews[].projectPrice, reviews[].projectPriceLabelProject metadata
reviews[].photos[]Full-size review photo URLs
reviews[].proResponse, reviews[].proResponseAtThe pro's public reply, when they left one
reviews[].createdAt, reviews[].modifiedAt, reviews[].statusTimestamps and moderation status

Provenance

FieldDescription
searchQuery, searchLocationWhich keyword and city produced this row

Pricing

Pay-per-event. You are billed for what the run produces, not for how long it takes.

EventWhen it firesPrice
ProfessionalOnce per unique professional row pushed$0.002 ($2 per 1,000)
Actor startOnce per run, per GB of memory$0.0005
Additional dataOnly when enrichEmails finds a contact email$0.001

Reviews are not a billable event. With includeReviews on, a pro with 200 reviews costs exactly the same as a pro with none — the reviews nest inside the row you already paid $0.002 for.

Duplicates are dropped before charging, so a keyword × city grid never bills the same pro twice.


FAQ

Do I need to log in, supply cookies, or run a browser? No. The actor is pure HTTP against Houzz's own mobile API and works fully anonymously.

Can I paste a Houzz profile URL instead of searching? Not currently. Input is profession + location searches. A specific business is usually easiest to reach by searching its name as the keyword in its own city.

Which countries does it cover? Houzz's US professionals index. locations takes US cities/areas such as Austin, TX; leaving the list empty runs a nationwide US search.

Why is email usually empty? Houzz rarely publishes email addresses on professional profiles. Turn on enrichEmails and the actor visits each pro's own website (already captured on the row) to find a contact address, filling contactEmail plus a detailed emailEnrichment object. It is best-effort and billed only when an email is actually found.

How do I get reviews, and what do they cost? Set includeReviews: true and optionally maxReviewsPerPro (default 20, max 500). Reviews are fetched newest-first and nested on the professional's row — reviewer, rating, date, full text, project relationship, photos and the pro's reply. There is no extra charge for them.

Why does reviewsTotalAvailable differ from numReviews? numReviews comes from the search index, which is cached; reviewsTotalAvailable is the live count reported by the reviews endpoint at fetch time. A small difference is normal.

Why are some reviewer names like HU-824331203? That is exactly how Houzz publishes them — reviewers who never set a display name show as their internal handle. The actor reports what the site shows rather than inventing a name.

Why are costEstimateFrom / costEstimateTo often null? Publishing a typical-project cost range is optional for pros, and most skip it. The fields stay present and null so your schema is stable.

Do I need residential proxies? No. The mobile API has no WAF, so the default Apify datacenter proxy is both sufficient and cheap. Each page takes a fresh exit IP, and throttled pages retry automatically.

How many professionals can I get for one keyword? Large metros carry tens of thousands per trade. The practical limit is your own maxItems / maxItemsPerQuery budget rather than the actor.

Why did my free run stop at 100 rows? Free-tier Apify accounts are capped at 100 rows per run. Paid accounts run to your configured maxItems.

The run finished with 0 rows — what happened? If pages were being blocked, the run fails loudly with the retry and rate-limit counts rather than reporting a silent empty result. Re-run, or lower maxConcurrency.


Support

Found a bug, need a field that is not exposed, or want a different Houzz surface covered? Open an issue on the actor's Issues tab — issues are read and answered.


Additional Services

Need this data on a schedule, merged with another source, pushed into a CRM, or delivered as a private actor tuned to your exact schema? Custom scraping and data-pipeline work is available — start a conversation through the Issues tab and it will be routed.


Explore More Scrapers

ActorWhat it does
Checkatrade ScraperUK tradesperson directory — the Houzz equivalent for Britain
Clutch.co ScraperB2B agencies, reviews and emails
Justdial Business ScraperIndian business directory leads with phone and email
Google Maps Reviews ScraperReviews for any local business on Maps
Trustpilot ScraperFull Trustpilot review history, incremental

🤖 For AI Agents & LLM Apps

Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/houzz-professionals-scraper).

Purpose: search the Houzz US professionals directory by trade and city and return one flat lead row per contractor, architect, designer or remodeler, with reviews optionally nested on the same row at no extra cost.

Minimal input:

{ "searchQueries": ["general contractor"], "locations": ["Austin, TX"], "maxItems": 25 }

Output: one dataset row per professional — id, userName, profileUrl, displayName, contactName, isProfessional, isBrand, isPaidPro, userType, phone, fax, website, email, location, city, state, zip, country, category, aboutMe, servicesProvided, areasServed, awards, licenseNumber, numReviews, reviewRating, photoCount, costEstimateFrom, costEstimateTo, costCurrency, profileImage, hasRealProfileImage, searchQuery, searchLocation. With includeReviews: reviewsFetched, reviewsTotalAvailable, reviews[{reviewId, rating, relationship, projectDate, projectPrice, projectPriceLabel, body, reviewerName, reviewerUserName, reviewerProfileImage, reviewerIsProfessional, photos[], numberOfLikes, createdAt, modifiedAt, status, proResponse, proResponseAt}]. With enrichEmails: contactEmail, contactWebsite, emailEnrichment.

Behaviors an agent should know:

  • Always set maxItems — an uncapped keyword in a large metro can return tens of thousands of professionals.
  • Tasks are the cartesian product of searchQueries × locations; an empty locations means one nationwide US search per keyword.
  • dedupe (default true) drops repeat professionals across the grid, so row count can be lower than maxItems by design.
  • Billing: professional $0.002 per unique row, apify-actor-start $0.0005 per run/GB, additional-data $0.001 only when enrichEmails finds an email. Reviews are never billed separately.
  • includeReviews adds one or more extra HTTP requests per professional, so runs take longer; keep maxReviewsPerPro modest for wide sweeps.
  • Limitations: US index only, no profile-URL input, email is usually empty without enrichEmails, and cost-estimate fields are frequently null.
  • Free Apify accounts are capped at 100 rows per run.

⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Houzz Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available professional-directory data — no authenticated endpoints, paid features, or content behind the houzz.com login wall. Users are responsible for ensuring their use complies with houzz.com's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization. Scraped data is returned directly to your Apify dataset; it is not stored or resold by this Actor.


SEO Keywords

houzz scraper, houzz professionals scraper, houzz contractor scraper, houzz pro directory scraper, houzz reviews scraper, houzz api alternative, houzz data extraction, houzz bulk export, contractor leads scraper, home services lead generation, general contractor database, architect directory scraper, interior designer leads, remodeler contact list, home improvement market research, trade directory scraper, b2b lead generation, sales prospecting data, local business data extraction, contractor email finder, houzz json export, houzz csv export, apify scraper, no-code scraper