Houzz Contractors Scraper — Pro Directory & Ratings avatar

Houzz Contractors Scraper — Pro Directory & Ratings

Pricing

from $4.00 / 1,000 home professional records

Go to Apify Store
Houzz Contractors Scraper — Pro Directory & Ratings

Houzz Contractors Scraper — Pro Directory & Ratings

Scrape Houzz contractors, interior designers and architects: name, profile URL, star rating, review count and badges for lead lists. USD 5 per 1,000.

Pricing

from $4.00 / 1,000 home professional records

Rating

0.0

(0)

Developer

Muhammad Afzal

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

14 hours ago

Last modified

Share

Houzz Contractors Scraper exports public Houzz professional-directory listings (general contractors, interior designers, architects, kitchen and bath designers, builders and landscapers) with each pro's name, Houzz profile URL, star rating, review count and visible badges. It costs USD 5.00 per 1,000 professional records on the FREE tier, and you pay only for records written to your dataset.

It is built for home-improvement lead lists, local market research, and agencies that need Houzz contractor data as JSON, CSV or Excel without copying profiles by hand.

What does the Houzz Contractors Scraper return?

It returns one professional record per Houzz directory card, deduplicated by profile URL. A default run (General contractors, 1 page, 25 records) finished in about 9 seconds on 2026-10-26 and delivered 25 records.

FieldWhat you get
nameBusiness or professional name shown on Houzz
profileUrlPublic Houzz profile URL (unique key)
ratingHouzz average star rating, 0–5 (0 when the pro has no reviews yet)
reviewCountNumber of Houzz reviews shown on the card
badgesVisible badges such as Verified, Verified License, Responds Quickly, 21 Verified Hires
descriptionShort "about" excerpt from the directory card
serviceCategoriesService labels found on the card (General Contractors, Home Remodeling, Interior Designers & Decorators, Architects & Building Designers, Kitchen & Bathroom Designers, Design-Build Firms); often empty
locationAddress or service area when the card shows one; usually null on directory pages
featuredReviewA featured review excerpt, only when you pass a direct profile URL and the page shows one
imageUrlProfile or cover image URL
sourcePageThe Houzz page the record came from
scrapedAtUTC extraction time

The run also writes an OUTPUT record with the status (DATA, EMPTY, BLOCKED, REJECTED or FAILED), delivered and charged counts, and warnings.

How do I scrape Houzz contractors in a specific city?

Open Houzz in your browser, search for a professional type near the city you want, apply any filters, and paste the resulting directory URL into startUrls. The Actor keeps every filter in that URL and follows Houzz's next-page link up to maxPages pages.

{
"startUrls": [
{ "url": "https://www.houzz.com/professionals/general-contractor/probr0-bo~t_11786" }
],
"maxResults": 100,
"maxPages": 5,
"useProxy": true
}

Without startUrls, pick one of eight national directories with professionalType: general-contractor, interior-designer, architect, kitchen-and-bath, design-build, home-builders, landscape-architect or landscape-contractors.

{ "professionalType": "interior-designer", "maxResults": 25 }

Limits: up to 20 start URLs, 1–500 records per run, 1–20 pages per start URL. Houzz URLs on houzz.com, houzz.co.uk, houzz.de, houzz.com.au and houzz.ca are accepted; any other domain rejects the run before a request is made.

Can I get Houzz reviews and ratings?

Yes for ratings and review counts, no for full review text. Every record carries the pro's average rating and reviewCount from the directory card. When you pass a direct profile URL instead of a directory URL, the Actor also returns one featuredReview excerpt if the page shows it. It does not page through a pro's full review list, and it never returns reviewer names or private data.

When should I use this Actor, and when not?

Use it when you need:

  • a list of Houzz contractors, designers or architects with ratings and review counts for outreach or territory planning;
  • a repeatable export of one Houzz directory search, scheduled weekly;
  • a small structured tool an AI agent can call for "top-rated Houzz pros" questions.

Do not use it when you need:

Output example

Records from the default run on 2026-10-26 (descriptions truncated):

[
{
"recordType": "professional",
"name": "Goldenline Remodeling",
"profileUrl": "https://www.houzz.com/professionals/general-contractors/goldenline-remodeling-pfvwus-pf~28977151",
"description": "High-End Design & Luxury Craftsmanship in Greater LA Goldenline Remodeling offers a variety of construction...",
"location": null,
"serviceCategories": [],
"rating": 5,
"reviewCount": 73,
"featuredReview": null,
"imageUrl": "https://st.hzcdn.com/simgs/b663c8de0ec59db7_0-6284/_.jpg",
"badges": ["Verified", "8 Hires on Houzz", "Verified License"],
"sourcePage": "https://www.houzz.com/professionals/general-contractor/probr0-bo~t_11786",
"scrapedAt": "2026-10-26T07:39:58.804Z"
},
{
"recordType": "professional",
"name": "Monk's Home Improvements",
"profileUrl": "https://www.houzz.com/professionals/general-contractors/monk-s-home-improvements-pfvwus-pf~276872767",
"description": "*Authorized Waypoint LivingSpaces® Dealer* Monk’s specializes in maintaining and improving your northern New Jers...",
"location": null,
"serviceCategories": ["Home Remodeling"],
"rating": 4.9,
"reviewCount": 286,
"featuredReview": null,
"imageUrl": "https://www.houzz.com/res/29877822/pic/user_0.png?v=29877822",
"badges": ["Verified", "Verified License"],
"sourcePage": "https://www.houzz.com/professionals/general-contractor/probr0-bo~t_11786",
"scrapedAt": "2026-10-26T07:39:58.811Z"
}
]

Pricing: how much does it cost to scrape Houzz?

The Actor uses pay-per-event pricing. You pay one start event per run plus one event per professional record saved to the dataset. Apify platform usage is included in these prices.

EventFREEBRONZESILVERGOLD / PLATINUM / DIAMOND
Actor start (per started GB of allocated memory)USD 0.006251USD 0.006094USD 0.005938USD 0.005
Home professional recordUSD 0.005001USD 0.004875USD 0.00475USD 0.004

The default memory is 512 MB, so a normal run has one start event.

  • Default run, 25 records (FREE): 0.006251 + 25 × 0.005001 = about USD 0.13.
  • Maximum run, 500 records (FREE): 0.006251 + 500 × 0.005001 = about USD 2.51.

Set a maximum total charge on the run to cap spend; the Actor stops before writing a record it could not charge.

Use it from an AI assistant

The Actor works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add this single-tool URL to your client: https://mcp.apify.com/?tools=muhammadafzal/houzz-home-pro-directory-reviews-scraper

Example prompt: "Find 25 Houzz interior designers with at least 4.8 stars and 50 reviews, and give me a table of name, rating, review count and profile link."

Run it from the API

JavaScript (apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('muhammadafzal/houzz-home-pro-directory-reviews-scraper').call({
professionalType: 'general-contractor',
maxResults: 25,
maxPages: 1,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((pro) => `${pro.name} ${pro.rating} (${pro.reviewCount})`));

Python (apify-client 3.x):

from apify_client import ApifyClient
client = ApifyClient(token='YOUR_APIFY_TOKEN')
run = client.actor('muhammadafzal/houzz-home-pro-directory-reviews-scraper').call(run_input={
'professionalType': 'interior-designer',
'maxResults': 25,
})
for pro in client.dataset(run.default_dataset_id).iterate_items():
print(pro['name'], pro['rating'], pro['reviewCount'])

cURL:

curl -X POST 'https://api.apify.com/v2/acts/muhammadafzal~houzz-home-pro-directory-reviews-scraper/runs' \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"professionalType":"architect","maxResults":10}'

Reliability and limits

The Actor reads Houzz's public HTML with low concurrency (two requests at a time), consistent headers, cookies and sessions, and keeps the proxy enabled by default (useProxy: true, optional proxyCountry such as US). If Houzz returns a challenge page, nothing is written or charged for that page and OUTPUT.status becomes BLOCKED when no record was delivered.

Known data limits measured on the 2026-10-26 default run:

  • location was null on 24 of 25 directory cards, and one card put description text into location. Use profileUrl to look up addresses.
  • serviceCategories is filled only when the card text contains one of six known labels, so it is often empty.
  • badges can occasionally contain stray page text alongside the real badge names.
  • Pros with no reviews have rating: 0 and reviewCount: 0.

FAQ

Do I need a Houzz API key?

No. The Actor reads the same public directory pages a visitor sees and returns them as structured records, so you call it through the Apify API with your Apify token only.

How many Houzz contractors can I get in one run?

Up to 500 records per run, across up to 20 start URLs and 20 pages per URL. For larger lists, run several searches (for example one per city) and merge on profileUrl.

Does it return phone numbers or emails?

No. Records have no phone or email fields, and the Actor does not open contact forms. Pair it with a contact-enrichment Actor if you need emails.

Can I filter by rating or review count?

Filter after the run: sort the dataset by rating and reviewCount, or ask your AI assistant to filter the results. Houzz URL filters you apply in the browser are kept when you paste the URL into startUrls.

Does it work for Houzz UK, Germany, Australia and Canada?

Yes. Directory and profile URLs on houzz.co.uk, houzz.de, houzz.com.au and houzz.ca are accepted. Set proxyCountry to the matching country if Houzz challenges the default route.

What happens if I paste a non-Houzz URL?

The run stops before any request, writes OUTPUT.status: REJECTED with a message, and charges no record events.

Responsible use

Use only public pages and respect Houzz's terms, robots guidance and reasonable request rates. Business listings can include personal names; process them lawfully (for example under GDPR or CCPA where they apply) and honor removal requests. The Actor does not log in, bypass access controls or solve CAPTCHAs.

Last verified: 2026-10-26