# Houzz Professionals Scraper (`parseforge/houzz-scraper`) Actor

Scrape Houzz professionals directory. Extract interior designers, architects, contractors, and other home improvement professionals with reviews, ratings, contact info, and more.

- **URL**: https://apify.com/parseforge/houzz-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Features:** Limited permissions
- **Stats:** 10 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $12.99 / 1,000 result items

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner-v4.webp)](https://apify.com/parseforge?fpr=vmoqkp)

### Houzz Professionals Scraper

**Scrape Houzz professional profiles by category, location, style, budget, and more, up to a million per run.** Each listing returns contact details, reviews, badges, service areas, and business descriptions. No API key or login required. Export to CSV, JSON, Excel, or XML.

Houzz does not offer a public API for its professional directory, making bulk lead generation and market research a manual grind. This Actor reads the public professional search pages directly, letting you filter by 15 categories, 17 design styles, budget level, rating, language, and 16 professional highlights. It returns every matched professional in one consistent, flat schema so you can build a clean prospecting list in minutes.

| Who uses it | What they scrape Houzz for |
|---|---|
| Home renovation sales teams | Build targeted lead lists of interior designers and contractors in a specific city who offer free consultations. |
| Market researchers | Analyze the density and rating distribution of landscape architects across different metro areas. |
| Recruitment agencies | Find top-rated design-build firms with verified hires and Best of Houzz badges for executive outreach. |
| Marketing agencies | Identify kitchen remodelers who speak Spanish and serve a particular region for localized ad campaigns. |

### What it does

This Actor collects Houzz professional profiles from search results or direct URLs and returns each one as a flat row with contact information, reviews, badges, and business details.

- 🏗️ **15 professional categories:** architects, interior designers, general contractors, pool builders, and more.
- 📍 **Location-based search:** target any city, state, or region to find local professionals.
- 🎨 **17 design styles:** filter by Modern, Farmhouse, Scandinavian, Victorian, and others.
- 💰 **Budget level filter:** narrow results to budget-friendly, mid-range, or premium professionals.
- ⭐ **Minimum rating filter:** only return pros rated 3+, 4+, or a perfect 5 stars.
- 🏅 **16 professional highlights:** Best of Houzz winners, eco-friendly, woman-owned, free estimates, and more.
- 🗣️ **Language filter:** find professionals who speak Spanish, French, Chinese, and other languages.
- 🔧 **Service type filter:** target specialists in color consulting, floor plans, sustainable design, and more.
- 🔗 **Direct URL input:** paste specific Houzz professional page URLs to scrape known profiles directly.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with Houzz data

**📋 Build a local lead list.**

A home services company scrapes all general contractors in Dallas with a 4+ star rating and free estimate badge to create a warm outreach list.

**🎯 Find niche specialists.**

A product supplier filters for kitchen and bathroom designers who offer 3D visualization and speak Spanish in the Miami area.

**📊 Analyze a competitive market.**

A market analyst collects all interior designers in New York, segments them by budget level and style, and maps the competitive landscape.

**🏆 Identify award-winning pros.**

A trade publication scrapes Best of Houzz winners across multiple categories and cities to build a feature shortlist.

### Why choose this scraper

|  | What you get |
|---|---|
| **No official API** | Houzz does not provide a public API for its professional directory, so this Actor is the fastest way to get structured data. |
| **Multi-filter search** | Combine category, location, style, budget, rating, and 16 professional highlights in one run. |
| **Fixed flat schema** | Every professional comes back in the same columns, ready for your CRM or spreadsheet. |
| **Scale ready** | Collect up to a million listings per run with no rate-limiting guesswork. |

### How it compares

This Actor focuses on the Houzz professional directory with 8 filter dimensions that run during collection, while other Houzz scrapers vary in their filter depth and data coverage.

| Feature | ParseForge | Houzz Professional Scraper | houzz | Houzz.com Scraper | All In One |
|---|---|---|---|---|
| Category filter (15 types) | Yes | Not listed | Not listed | Not listed |
| Design style filter (17 styles) | Yes | Not listed | Not listed | Not listed |
| Budget level filter | Yes | Not listed | Not listed | Not listed |
| Professional highlights filter (16 badges) | Yes | Not listed | Not listed | Not listed |
| Language spoken filter | Yes | Not listed | Not listed | Not listed |
| Service type filter | Yes | Not listed | Not listed | Not listed |

### Configure the run

Drive the Actor from direct Houzz professional URLs or use the built-in category, location, style, budget, rating, highlight, language, and service type filters. Filters run as each listing is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "maxItems": 10,
  "startUrls": [
    {
      "url": "https://www.houzz.com/professionals/interior-designer/probr0-bo~t_11785"
    }
  ]
}
```

A larger pull:

```json
{
  "maxItems": 200,
  "startUrls": [
    {
      "url": "https://www.houzz.com/professionals/interior-designer/probr0-bo~t_11785"
    }
  ]
}
```

### Pricing

Pay-per-result: **$0.01734 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $1.73 |
| 1,000 results | $17.34 |
| 10,000 results | $173.40 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [Houzz Professionals Scraper](https://apify.com/parseforge/houzz-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to Houzz through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/houzz-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Your filter combination may be too narrow. Try removing one filter at a time, starting with the highlight or service type, to see which one eliminates all matches. Also check that your location spelling matches how Houzz writes it.

**The Actor returns fewer results than my maxItems setting.**

This is expected when there are not enough professionals on Houzz that match your filters. Try broadening your location or removing some filters to increase the pool.

**Some contact fields are empty in my dataset.**

Houzz professionals choose what contact information to display publicly. If a phone number or website is missing, that professional did not list it on their profile.

**Can I scrape product pages or photos instead of professionals?**

This Actor is built for the Houzz professional directory only. It does not scrape product listings, photos, or discussion threads. Use a general Houzz scraper if you need those data types.

**The run takes a long time with a high maxItems.**

Large runs naturally take longer because the Actor respects Houzz's page load times. Reduce maxItems or narrow your filters to speed things up.

### FAQ

| Question | Answer |
|---|---|
| Can I scrape a specific professional's full profile page? | Yes. Paste the direct URL of any Houzz professional page into the startUrls field, and the Actor will return that profile's details. When you provide direct URLs, all search filters are ignored. |
| What information do I get for each professional? | Each row includes the business name, contact phone, website, address, service area, review count and rating, badges and highlights, business description, and category tags. The exact fields are shown in the sample output above. |
| How do I search for professionals in a specific city? | Enter the city, state, or region name in the location field, for example 'Austin' or 'San Diego'. The Actor will search Houzz for professionals in that area matching your other filters. |
| Can I combine multiple filters in one run? | Yes. You can set a category, location, design style, budget level, minimum rating, professional highlight, language, and service type all at once. The Actor applies every filter you configure. |
| Does this Actor handle pagination automatically? | Yes. The Actor navigates through all pages of search results until it reaches your maxItems limit or there are no more listings. |
| What is the maximum number of professionals I can scrape? | You can set maxItems up to 1,000,000. The actual number returned depends on how many professionals match your filters on Houzz. |
| Do I need a Houzz account or API key? | No. This Actor reads the publicly available Houzz professional directory pages. No login, API key, or account registration is required. |
| Can I filter by professionals who offer free consultations? | Yes. Set the highlight filter to 'Free Consultation' and the Actor will only return professionals who have that badge on their profile. |
| What export formats are supported? | You can export your dataset in JSON, CSV, Excel, XML, and several other formats directly from the Apify platform. |
| Can I schedule this scraper to run weekly? | Yes. Apify supports scheduled runs. You can set this Actor to run daily or weekly to keep your professional list fresh. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Houzz Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

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

How many listings to collect per run.

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

Direct URLs to Houzz professional listing pages. If provided, filters are ignored.

## `category` (type: `string`):

Type of professional to search for

## `location` (type: `string`):

City or area to search in (e.g., 'New York', 'Los Angeles')

## `style` (type: `string`):

Filter by design style preference

## `budget` (type: `string`):

Filter by budget level

## `highlight` (type: `string`):

Filter by professional highlights/badges

## `language` (type: `string`):

Filter by language spoken

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

Filter by minimum star rating

## `serviceType` (type: `string`):

Filter by specific service offered

## Actor input object example

```json
{
  "maxItems": 10,
  "startUrls": [
    {
      "url": "https://www.houzz.com/professionals/interior-designer/probr0-bo~t_11785"
    }
  ],
  "category": "interior-designers"
}
```

# Actor output Schema

## `profileImageUrl` (type: `string`):

URL of the professional's profile image

## `userId` (type: `string`):

Unique Houzz user identifier

## `professionalId` (type: `string`):

Unique Houzz professional identifier

## `displayName` (type: `string`):

Professional's display name or business name

## `userName` (type: `string`):

Houzz username/handle

## `profileUrl` (type: `string`):

URL to the professional's Houzz profile

## `aboutMe` (type: `string`):

Professional's bio/about section

## `proTypeDisplayName` (type: `string`):

Type of professional (e.g., Interior Designer)

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

Internal code for professional type

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

City where professional is located

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

State where professional is located

## `zip` (type: `string`):

ZIP/postal code

## `country` (type: `string`):

Country where professional is located

## `latitude` (type: `string`):

Geographic latitude coordinate

## `longitude` (type: `string`):

Geographic longitude coordinate

## `formattedAddress` (type: `string`):

Full formatted address

## `formattedPhone` (type: `string`):

Contact phone number

## `socialLinks` (type: `string`):

Social media links (website, facebook, instagram, etc.)

## `numReviews` (type: `string`):

Total number of reviews

## `reviewRating` (type: `string`):

Average review rating (1-5)

## `reviewRatingStars` (type: `string`):

Star rating visualization

## `budgetLevels` (type: `string`):

Budget levels the professional works with

## `badges` (type: `string`):

Professional badges (Best of Houzz, etc.)

## `meritBadges` (type: `string`):

Merit badges earned

## `isVideoConsultationEnabled` (type: `string`):

Whether video consultations are available

## `hasVerifiedLicense` (type: `string`):

Whether professional has a verified license

## `isProVerified` (type: `string`):

Whether professional is verified by Houzz

## `scrapedAt` (type: `string`):

Timestamp when data was scraped

# 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 = {
    "maxItems": 10,
    "startUrls": [
        {
            "url": "https://www.houzz.com/professionals/interior-designer/probr0-bo~t_11785"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/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 = {
    "maxItems": 10,
    "startUrls": [{ "url": "https://www.houzz.com/professionals/interior-designer/probr0-bo~t_11785" }],
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/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 '{
  "maxItems": 10,
  "startUrls": [
    {
      "url": "https://www.houzz.com/professionals/interior-designer/probr0-bo~t_11785"
    }
  ]
}' |
apify call parseforge/houzz-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/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/502idKNX7AZ4rscSp/builds/4UFl5lJaXYG975IlQ/openapi.json
