Houzz Pro Directory Finder by City & Category
Find Houzz contractors, architects, and designers by city and category across 16 countries, with ratings, reviews, hires, services, license status, and location for each professional.
Open in Apify Store$0.99 / 1K on Free
Short answer
Houzz Pro Directory Finder by City & Category is an Apify Store Actor for Houzz data that returns 17 published output fields, including title, category, phoneNumber, ratingValue. It lists $0.99 per 1,000 results on the Free plan (pay per event), $0.49 on the Business plan. It takes 21 input settings, none required. It covers 6 of the 8 core Houzz fields this site tracks. Last updated Nov 2, 2026.
From the public Store listing and published build schema, synced 2026-11-12.What it returns
17 fields from the published dataset schema. Export as JSON, CSV or Excel, or read the dataset through the Apify API.
titlecategoryphoneNumberratingValuereviewCountcitystatestyleownerNamemetroAreacanonicalUrlproNameratingreviewerNameprojectDaterelationshipprofileUrl
Not in the schema among the core Houzz fields: review, profile. The field matrix shows which other tools return them.
Input
| Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| mode | string | No | search | What to scrape. `search` builds a directory from country + city + profession; `byUrls` reads directory URLs; `profiles` reads profile URLs; `reviews` emits review rows; `photos` browses photo inspiration. |
| country | string | No | us | Houzz market used for search and profile URLs. |
| city | string | No | Los Angeles, CA | City or city + state to search, e.g. `Los Angeles, CA`, `London`, `Berlin`. Used with profession or categorySlug in search mode. |
| profession | string | No | general-contractor | Universal profession mapped to the selected market's Houzz category. Used in search mode. |
| categorySlug | string | No | – | Exact Houzz category slug, used instead of the mapped profession, e.g. `general-contractor`, `architekten`, `architectes`. Use a direct directory URL if you are unsure. |
| keyword | string | No | – | Optional keyword filter for professional search, or the search term for photo mode. |
| sortBy | string | No | relevance | Server-side order for professional directory results. |
| minRating | number | No | 0 | Drop professionals below this star rating. Set 0 to keep all. |
| minReviewCount | integer | No | 0 | Drop professionals with fewer reviews. Set 0 to keep all. |
| directoryUrls | array | No | [] | Houzz professional directory, category or search-result URLs. All live markets and localised paths are accepted. |
Show the other 11 settings
| Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| profileUrls | array | No | [] | Direct Houzz professional profile URLs, including localised paths such as /experten/, /professionnels/ and /profesionales/. |
| photoUrls | array | No | [] | Direct Houzz photo detail URLs. Use mode=photos. |
| photoCategory | string | No | kitchen | Room category for photo inspiration browsing. Use keyword to search instead. |
| photoStyle | string | No | – | Optional design style filter for photo inspiration. |
| includeReviews | boolean | No | false | Attach review history to each professional record. |
| maxReviewsPerPro | integer | No | 20 | Review cap per professional. Set 0 to fetch the full history (up to 1,024). |
| fetchDetails | boolean | No | true | Open each professional profile for services, awards, socials, counts and licensing. Turn off for directory-card-only records. |
| fetchPhotoDetails | boolean | No | false | Open each photo for full image sizes, owner, location and question count. |
| enrichEmails | boolean | No | false | Best-effort email lookup on each professional's own website. Adds requests and is optional. |
| maxItems | integer | No | 25 | Hard cap on emitted records. |
| maxPages | integer | No | 0 | Optional page cap. Set 0 to use the source ceiling: 100 directory pages, 30 keyword pages, 250 photo pages or 10 photo keyword pages. |
Example input
Built from the input form's published example values and defaults.
{
"mode": "search",
"country": "us",
"city": "Los Angeles, CA",
"profession": "general-contractor",
"sortBy": "relevance",
"minRating": 0,
"minReviewCount": 0,
"directoryUrls": [],
"profileUrls": [],
"photoUrls": [],
"photoCategory": "kitchen",
"includeReviews": false,
"maxReviewsPerPro": 20,
"fetchDetails": true,
"fetchPhotoDetails": false,
"enrichEmails": false,
"maxItems": 1,
"maxPages": 0
} Run it from code or an AI agent
The same run through the Apify API, with the example input. You need an Apify API token; the run is billed to your account at the Store price.
Python
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"mode": "search",
"country": "us",
"city": "Los Angeles, CA",
"profession": "general-contractor",
"sortBy": "relevance",
"minRating": 0,
"minReviewCount": 0,
"directoryUrls": [],
"profileUrls": [],
"photoUrls": [],
"photoCategory": "kitchen",
"includeReviews": False,
"maxReviewsPerPro": 20,
"fetchDetails": True,
"fetchPhotoDetails": False,
"enrichEmails": False,
"maxItems": 1,
"maxPages": 0
}
run = client.actor("dataspryva/houzz-pro-directory-finder-by-city-and-category").call(run_input=run_input)
if run is None:
raise RuntimeError("The Actor run was not found.")
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item) pip install apify-client
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "<YOUR_APIFY_TOKEN>" });
const input = {
"mode": "search",
"country": "us",
"city": "Los Angeles, CA",
"profession": "general-contractor",
"sortBy": "relevance",
"minRating": 0,
"minReviewCount": 0,
"directoryUrls": [],
"profileUrls": [],
"photoUrls": [],
"photoCategory": "kitchen",
"includeReviews": false,
"maxReviewsPerPro": 20,
"fetchDetails": true,
"fetchPhotoDetails": false,
"enrichEmails": false,
"maxItems": 1,
"maxPages": 0
};
const run = await client.actor("dataspryva/houzz-pro-directory-finder-by-city-and-category").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items); npm install apify-client
cURL
curl -X POST "https://api.apify.com/v2/actors/dataspryva~houzz-pro-directory-finder-by-city-and-category/run-sync-get-dataset-items" -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" -d '{"mode":"search","country":"us","city":"Los Angeles, CA","profession":"general-contractor","sortBy":"relevance","minRating":0,"minReviewCount":0,"directoryUrls":[],"profileUrls":[],"photoUrls":[],"photoCategory":"kitchen","includeReviews":false,"maxReviewsPerPro":20,"fetchDetails":true,"fetchPhotoDetails":false,"enrichEmails":false,"maxItems":1,"maxPages":0}' Waits for the run and returns the dataset items (runs over 300 seconds return HTTP 408; start an async run instead).
MCP (AI agents)
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=dataspryva/houzz-pro-directory-finder-by-city-and-category",
"headers": {
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
}
}
}
} Adds this Actor as a tool in an MCP client that takes a remote server URL (Cursor, VS Code, Claude Code) through Apify's hosted MCP server. OAuth sign-in also works without the header. Clients that only start local servers can wrap the URL with npx mcp-remote.
What a run costs
The result rate falls on higher Apify plans. Each figure is the published per-result rate times the number of results.
| Apify plan | Per 1,000 | 10,000 results | 100,000 results |
|---|---|---|---|
| Free plan | $0.99 | $9.90 | $99 |
| Starter plan | $0.82 | $8.20 | $82 |
| Scale plan | $0.66 | $6.60 | $66 |
| Business plan | $0.49 | $4.90 | $49 |
- Every run also has a start event, charged per GB of memory (minimum one): $0.10 on Free, $0.03 on Business. At its default memory of 4 GB a run starts at $0.40 on Free. Fewer, larger runs keep this small.
- The Free plan includes $5 of monthly usage (Apify pricing, checked 2026-11-11); at the Free rate that covers at most about 5,050 results, less start events and platform usage.
- Worked example: 10,000 results in one run on the Free plan cost $10.30 ($9.90 for results + $0.40 start), plus Apify platform usage (compute), billed separately by Apify.
- Pay per event. Platform usage (compute) is billed by Apify on top of the event prices. Compare other tools in the cost estimator.
Where it fits among Houzz routes
It ranks 1 of 1 catalogue Actors for Houzz on the published formula (fields, price, reliability, freshness). Its line is highlighted on the map.
- 1 Houzz Pro Directory Finder by City & Category 17 output fields, pay per event 6 of 8 core fields
$0.99 / 1K - + 6 other Store tools, combined Reference only 7 of 8 core fields
from $1.00 / 1K - API Houzz Pro API Partner only fields not compared
Stops are fields. A ring means the field is in that route's published output schema; no ring means the line passes without it. Bold labels are the core fields for this website, the rest are fields that differ between routes. A white capsule means every data line stops there. The red line is the official API; its field coverage is not compared. A crossed red line means there is no open official API.
Official route: Houzz Pro API
Partner only. The Houzz Pro API gives verified partners access to Houzz Pro business data such as projects, leads, contacts, tasks, scheduling and files. It does not offer public directory search.
No public self-serve price is published.
Other Store tools for Houzz
Reference only, from their public listings.
| Tool | Fields | Price / 1K |
|---|---|---|
| Houzz Pro Scraper | 120 | $1.70 |
| Houzz Professional Scraper | 52 | $1.00 |
| Houzz Pro Scraper | 26 | $4.00 |
| Houzz Scraper | 39 | $3.55 |
| Houzz Scraper | 20 | $2.00 |
What people use it for
- find professionals
- review professional profiles
- browse project photos
Similar Actors
Yelp Business Profile, Hours & Menu Extractor
Search Yelp or fetch specific business URLs for profile data, hours, services, photo galleries, owner replies, coordinates, and reviews with…
Yelp Business Search & Review Scraper
Search Yelp by keyword and location, or scrape specific business pages directly, to collect business details, ratings, categories, contact…
Zillow Property Manager Directory by City
Search Zillow's property manager directory by city/state, or read specific profile URLs directly. Returns business name, contact details, ratings,…
2GIS Business Directory Extractor for CIS & Middle East
Search 2GIS for businesses by category and city across Russia, the UAE, Kazakhstan and the wider CIS, and get name, address, rating, hours,…
Fiverr Gig & Seller Sitemap Directory Scraper
List live Fiverr gigs, seller profiles, categories, search tags and Logo Maker ideas straight from Fiverr's own directories, with best-effort full…
Capterra Software Pricing & Feature Extractor
Look up Capterra software products by direct URL or by name and get pricing plans, feature and integration lists, ratings, pros/cons summaries,…
Questions people ask
How much does Houzz Pro Directory Finder by City & Category cost?
The published result rate depends on your Apify plan: $0.99 per 1,000 on Free, $0.82 per 1,000 on Starter, $0.66 per 1,000 on Scale, $0.49 per 1,000 on Business. So 10,000 results cost about $9.90 on the Free plan and $4.90 on Business, plus a start fee of $0.10 per run per GB of memory on Free. Platform usage is billed separately.
What data does Houzz Pro Directory Finder by City & Category return?
Its published output schema lists 17 fields: title, category, phoneNumber, ratingValue, reviewCount, city, state, style, ownerName, metroArea, canonicalUrl, proName, and 5 more. A listed field is not guaranteed to be filled in every row.
What input does Houzz Pro Directory Finder by City & Category need?
No input is strictly required; the defaults run as is. Common settings: mode, country, city, profession, categorySlug, keyword.
How do I run Houzz Pro Directory Finder by City & Category from Python or the API?
Use the Apify API client: in Python, ApifyClient(token).actor("dataspryva/houzz-pro-directory-finder-by-city-and-category").call(run_input=...), then read the run's default dataset (run.default_dataset_id); in JavaScript the same call is client.actor("dataspryva/houzz-pro-directory-finder-by-city-and-category").call(input). Without a client, POST the input JSON to https://api.apify.com/v2/actors/dataspryva~houzz-pro-directory-finder-by-city-and-category/run-sync-get-dataset-items with your API token. Ready-to-paste code with the example input is on this page.
Sources
- Houzz Pro Directory Finder by City & Category on Apify Store
- Published build with input and output schema (JSON)
- Houzz Pro API documentation
Cite this page
Scraper Finder. "Houzz Pro Directory Finder by City & Category." https://scraperfinder.com/catalogue/houzz-pro-directory-finder-by-city-and-category/ (data checked 2026-11-12).
Run Houzz Pro Directory Finder by City & Category
$0.99 per 1,000 results. Paste the example input above, set your Houzz query, then export the dataset. Still choosing? Compare every Houzz route.