# Houzz Pro Scraper - Contractor & Designer Leads (`haketa/houzz-scraper`) Actor

Scrape home-improvement professionals from Houzz: name, profession, phone, website, address, rating, reviews, cost estimate, areas served and verification badges. Search by category or city URL. Export to JSON, CSV or Excel for lead generation.

- **URL**: https://apify.com/haketa/houzz-scraper.md
- **Developed by:** [Haketa](https://apify.com/haketa) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.75 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Houzz Pro Scraper 🏠🔨

**Extract home-improvement professionals from Houzz — the leading platform for renovation & design pros — into clean, structured lead data.** Scrape contractors, interior designers, architects and more, with **phone, website, address, rating, reviews, cost estimate, areas served and verification badges**. Built for lead generation, contractor directories, competitor research and local-market analytics.

[![Actor](https://img.shields.io/badge/Apify-Actor-00b04f?style=flat-square\&logo=apify)](https://apify.com)
[![Market](https://img.shields.io/badge/Market-US%20Home%20Pros-2c6e49?style=flat-square)](https://apify.com)
[![Contact](https://img.shields.io/badge/Phone%20%2B%20Website-Included-brightgreen?style=flat-square)](https://apify.com)
[![Ratings](https://img.shields.io/badge/Ratings%20%26%20Reviews-Included-success?style=flat-square)](https://apify.com)
[![Cost estimate](https://img.shields.io/badge/Cost%20estimate-Included-blue?style=flat-square)](https://apify.com)
[![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-2b7489?style=flat-square)](https://apify.com)
[![Pagination](https://img.shields.io/badge/Pagination-Automatic-9cf?style=flat-square)](https://apify.com)
[![No code](https://img.shields.io/badge/No--code-Friendly-blueviolet?style=flat-square)](https://apify.com)
[![Maintained](https://img.shields.io/badge/Maintained-Yes-brightgreen?style=flat-square)](https://apify.com)

***

### 🎯 What does Houzz Pro Scraper do?

Houzz hosts one of the largest directories of home-improvement professionals — general contractors, interior designers, architects, kitchen & bath remodelers, landscapers and more. This actor turns any Houzz professional category (or a category + city page) into a structured lead dataset.

Give it a **category** (or a **Houzz professionals URL**) and it will:

- 🔎 Read every professional in the directory and **paginate automatically**
- 📞 Capture **phone, website and full address** (with contact enrichment)
- ⭐ Include the **star rating and number of reviews**
- 💵 Add the **cost estimate** and **areas served**
- 🏅 Flag **license & profile verification**
- 🏢 Provide **business name, profession, city/state and social links**
- 🧹 Deliver **clean, deduplicated, structured records** — no HTML, no clutter
- ⬇️ Export to **JSON, CSV, Excel, HTML or via API** in one click

No login, no browser extensions, no manual copy-paste.

***

### ✨ Key features

| Feature | Description |
| --- | --- |
| **Full contact details** | Phone, website and address for each professional (with contact enrichment). |
| **Ratings & reviews** | Star rating and review count. |
| **Cost estimate** | Typical project cost range where the pro provides it. |
| **Areas served** | The cities/regions each professional covers. |
| **Verification badges** | License-verified and profile-verified indicators. |
| **Category or URL input** | Scrape by category, or paste a category + city URL for local leads. |
| **Automatic pagination** | Walks through the directory up to your `maxItems` limit. |
| **Deduplicated output** | Each professional appears once, identified by a unique ID. |
| **Clean exports** | JSON, CSV, Excel, HTML table, RSS or JSON API. |

***

### 📥 Input

The actor accepts a simple, no-code input form.

#### Option A — by category (easiest)

```json
{
    "categories": ["interior-designers", "general-contractor"],
    "includeContact": true,
    "maxItems": 100
}
```

#### Option B — by URL (category + city for local leads)

```json
{
    "startUrls": [
        { "url": "https://www.houzz.com/professionals/general-contractor" }
    ],
    "maxItems": 200
}
```

> **Tip:** For local leads, browse to your category and city on Houzz and copy the URL from your browser into `startUrls`.

#### Input parameters

| Field | Type | Description |
| --- | --- | --- |
| `categories` | array | Houzz professional categories (e.g. `interior-designers`, `general-contractor`, `architects-and-building-designers`). |
| `startUrls` | array | Houzz professionals directory URLs (category or category + city). |
| `includeContact` | boolean | Fetch each profile for phone, website and address. Default `true`. |
| `maxItems` | integer | Maximum number of professionals to collect. Default `100`. |
| `proxyConfiguration` | object | Proxy settings. US residential proxies are recommended. |

***

### 📤 Output

Each professional is returned as a clean JSON object:

```json
{
    "id": 15771470,
    "name": "So Cal Builders & Design",
    "url": "https://www.houzz.com/professionals/general-contractors/so-cal-builders-design-...",
    "proType": "General Contractors",
    "phone": "(888) 877-1585",
    "website": "http://mysocalbuilders.com",
    "address": "5567 Reseda Blvd, Suite 205, Tarzana, California 91356, United States",
    "city": "Sherman Oaks",
    "state": "California",
    "zip": "91356",
    "country": "United States",
    "latitude": 34.15,
    "longitude": -118.53,
    "rating": 5.0,
    "reviewCount": 125,
    "costEstimate": "$50,000 - 5 million",
    "areasServed": "Los Angeles, Orange County, Ventura…",
    "about": "Award-winning design-build firm specializing in…",
    "hasVerifiedLicense": true,
    "isVerified": true,
    "socialLinks": ["https://www.facebook.com/..."],
    "searchCategory": "general-contractor"
}
```

#### Output fields

| Field | Type | Description |
| --- | --- | --- |
| `id` | number | Unique Houzz professional ID. |
| `name` | string | Business name. |
| `url` | string | Profile URL. |
| `proType` | string | Profession (e.g. General Contractors, Interior Designers). |
| `phone` / `website` / `address` | string | Contact details (with enrichment). |
| `city` / `state` / `zip` / `country` | string | Location. |
| `latitude` / `longitude` | number | Geo-coordinates. |
| `rating` / `reviewCount` | number | Star rating and number of reviews. |
| `costEstimate` | string | Typical project cost range. |
| `areasServed` | string | Areas the professional covers. |
| `about` | string | Business description. |
| `hasVerifiedLicense` / `isVerified` | boolean | Verification flags. |
| `socialLinks` | array | Social profile links. |
| `searchCategory` | string | The category this result came from. |

You can download the dataset as **JSON, CSV, Excel, HTML, RSS or XML**, or fetch it programmatically through the Apify API.

***

### 🚀 How to use Houzz Pro Scraper (step by step)

1. Click **Try for free** / **Start**.
2. Enter one or more **categories** — or paste a **Houzz professionals URL**.
3. Keep **Include contact details** on for phone/website/address.
4. Set **maxItems** to how many professionals you want.
5. Click **Save & Start**.
6. When the run finishes, open the **Dataset** tab and **Export** to your preferred format — or grab it via API.

That's it. No code required.

***

### 💡 Use cases

- **Lead generation** — Build targeted lists of contractors, designers and architects with phone and website.
- **Contractor directories** — Power your own home-services directory or marketplace.
- **Competitor research** — Track ratings, reviews and cost positioning across a category or city.
- **Local-market analytics** — Map professional supply and specialties by area.
- **Sales & outreach** — Reach verified home pros by category and location.
- **Recruitment** — Source design and construction firms for partnerships or hiring.

***

### 📞 Why the contact & rating data matters

A directory is only useful if you can act on it. This actor enriches each professional with **phone, website and address**, alongside the **rating, review count, cost estimate and areas served** — turning a browse-only directory into an actionable lead list.

***

### ⏱️ How many professionals can I collect?

A single category spans hundreds of pages of professionals. Set `maxItems` to control the volume, and add more categories or city URLs for broader coverage. Schedule regular runs to keep the data current.

***

### 🔌 Integrations & automation

Because this runs on Apify, you can:

- 📅 **Schedule** runs (daily, weekly) to keep a live leads feed.
- 🔗 Push results to **Google Sheets, Airtable, Slack, Zapier, Make, or any webhook**.
- 🧩 Call it from your backend with the **Apify API** and SDKs (JavaScript / Python).
- 🔔 Use **webhooks** to trigger downstream workflows the moment a run completes.

#### Call via API (example)

```bash
curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
        "categories": ["interior-designers"],
        "maxItems": 100
      }'
```

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('YOUR_ACTOR_ID').call({
    categories: ['general-contractor'],
    includeContact: true,
    maxItems: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

***

### ❓ FAQ

**Do I need a Houzz account or API key?**
No. Just provide a category or a Houzz professionals URL.

**Does it include phone and website?**
Yes — with **Include contact details** on, each professional's profile is fetched for phone, website and full address.

**Can I get local (city) results?**
Yes. Browse to your category and city on Houzz, copy the URL, and paste it into `startUrls`.

**Does it include ratings and cost estimates?**
Yes — star rating, review count and the professional's typical cost range are included where provided.

**Are results deduplicated?**
Yes. Each professional is uniquely identified and appears once per run.

**What formats can I export?**
JSON, CSV, Excel, HTML, RSS and XML — via the dashboard or the API.

**How do I keep data fresh?**
Schedule the actor to run on the interval you need; each run returns the current live listings.

***

### 📌 Tips for best results

- **Use category + city URLs for local leads.** Paste the exact browser URL for the tightest targeting.
- **Keep contact enrichment on.** It's what turns the directory into an actionable lead list.
- **Start small, then scale.** Test a low `maxItems`, confirm the fields, then raise it.
- **Schedule for freshness.** Ratings and listings change; a scheduled run keeps your data current.

***

### ⚖️ Legal & responsible use

This actor is intended for lawful data collection such as lead generation, market research and analytics. You are responsible for how you use the collected data. Only collect publicly available information, respect the target website's Terms of Service and `robots.txt`, and comply with all applicable laws and regulations — including data-protection (GDPR/CCPA) and anti-spam/telemarketing rules (e.g. DNC) when contacting professionals. Do not use the data for spam or any unlawful purpose. This actor is an independent tool and is **not affiliated with, endorsed by, or connected to Houzz** or its parent companies. All trademarks belong to their respective owners.

***

### 🛟 Support

Questions, feature requests or an issue with the data? Open an issue on the actor's page — feedback is welcome and helps improve the tool.

***

⭐ **If this actor saves you time, please leave a review — it really helps!**

# Actor input Schema

## `categories` (type: `array`):

Houzz professional categories to scrape (e.g. interior-designers, general-contractor, architects-and-building-designers, kitchen-and-bath-remodelers, landscape-architects-and-designers).

## `startUrls` (type: `array`):

Paste Houzz professionals directory URLs, e.g. a category + city page copied from your browser (https://www.houzz.com/professionals/general-contractor/... or a city-specific listing). Scraped in addition to the categories.

## `includeContact` (type: `boolean`):

Fetch each professional's profile to add phone, website and full address. Recommended for lead generation; turn off for a faster listing-only run.

## `maxItems` (type: `integer`):

Maximum number of professionals to collect across all categories and URLs.

## `proxyConfiguration` (type: `object`):

Proxy settings. US residential proxies are recommended for reliable, uninterrupted results.

## Actor input object example

```json
{
  "categories": [
    "interior-designers-and-decorators"
  ],
  "includeContact": true,
  "maxItems": 25,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `id` (type: `string`):

Houzz professional ID

## `name` (type: `string`):

Business name

## `url` (type: `string`):

Profile URL

## `proType` (type: `string`):

Professional type

## `phone` (type: `string`):

Phone number

## `website` (type: `string`):

Website

## `city` (type: `string`):

City

## `state` (type: `string`):

State

## `rating` (type: `string`):

Star rating

## `reviewCount` (type: `string`):

Number of reviews

## `costEstimate` (type: `string`):

Cost estimate

## `areasServed` (type: `string`):

Areas served

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "categories": [
        "interior-designers-and-decorators"
    ],
    "maxItems": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("haketa/houzz-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "categories": ["interior-designers-and-decorators"],
    "maxItems": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("haketa/houzz-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "categories": [
    "interior-designers-and-decorators"
  ],
  "maxItems": 25
}' |
apify call haketa/houzz-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,haketa/houzz-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/QEi5sk3FuC9W4XQ1L/builds/HOObTng5jeGUAqU4k/openapi.json
