Houzz Professional Scraper
Pricing
from $1.00 / 1,000 results
Houzz Professional Scraper
Extract Houzz professional and service provider data at scale. Scrape profiles, business names, locations, ratings, reviews, services, categories, contact details, websites, and more. Ideal for lead generation, market research, contractor discovery, and business intelligence.
Pricing
from $1.00 / 1,000 results
Rating
5.0
(5)
Developer
Shahid Irfan
Maintained by CommunityActor stats
2
Bookmarked
65
Total users
10
Monthly active users
7 days ago
Last modified
Categories
Security
Limited permissionsShare
What does Houzz Professional Scraper do?
Houzz Professional Scraper collects contractor, designer, and trade listings from the Houzz professional directory. Search by trade and an optional city, or paste directory URLs, and the Actor returns structured records with names, phone numbers, addresses, ratings, review counts, profile links, and service details. The result is a dataset you can filter, export, or send to a CRM without copying profiles by hand.
Why use Houzz Professional Scraper?
- Build local prospect lists for remodeling, design, and trade services.
- Compare professional density and review activity across cities.
- Enrich an existing vendor or partner list with Houzz profile data.
- Keep a repeatable data feed for market research instead of manual collection.
- Run on demand or on a schedule and download the dataset in several formats.
What data can you extract from Houzz?
| Field | Description |
|---|---|
name | Business or professional display name |
professional_type | Houzz trade label, such as Woodworkers & Carpenters |
profile_url | Public Houzz profile link |
phone | Phone number shown on the listing |
formatted_address | Full address as a single line |
city, state, zip, country | Address parts |
latitude, longitude | Map coordinates |
rating | Average review score on a 0 to 5 scale |
review_count | Number of published reviews |
about_me | Profile introduction text |
social_links | Social and website links listed on the profile |
budget_levels | Budget ranges the professional reports |
image_url | Profile image link |
total_results | Total listings Houzz reports for the search |
The dataset also carries verification flags, financing flags, badge identifiers, the most recent review text, and pagination metadata. Fields with no value on the source page are left out of the record.
How to use Houzz Professional Scraper
- Open the Actor in Apify Console.
- Enter a profession, such as
carpenterorinterior-designer. - Optionally add a city, such as
BostonorAustin, TX. - Set the maximum number of professionals and pages.
- Start the run and open the dataset when it finishes.
- Download the results or connect the dataset to your workflow.
If you already have a Houzz directory URL, place it in startUrls and leave the profession and location fields empty. Start URLs take precedence over the search fields.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | Array | No | - | Houzz professional directory URLs. When set, the profession and location fields are ignored. |
profession | String | No | carpenter | Trade to search. Common forms such as architect, interior designers, or general contractor are resolved to the matching Houzz category. |
location | String | No | - | City or city and state. Leave empty to search all locations. |
results_wanted | Integer | No | 20 | Maximum number of professionals to save. |
max_pages | Integer | No | 10 | Maximum result pages to read for each search. Each page holds up to 15 listings. |
proxyConfiguration | Object | No | Disabled | Apify Proxy or custom proxy settings. Residential proxies help on larger runs. |
Output Data
| Field | Type | Description |
|---|---|---|
search_url | String | Directory URL used for the search |
page_url | String | Result page where the record was found |
page_number | Number | Page position in the run |
page_offset | Number | Listing offset for that page |
professional_id | Number | Houzz professional identifier |
user_id | Number | Houzz user identifier |
pro_id | Number | Houzz pro account identifier |
user_name | String | Houzz username |
name | String | Business display name |
professional_type | String | Trade label |
pro_type_id | Number | Numeric trade identifier |
pro_sku_id | Number | Plan or SKU identifier when present |
profile_url | String | Profile link |
image_url | String | Profile image link |
phone | String | Phone number |
emails | Array | Email addresses found in the profile text |
address | String | Street address |
formatted_address | String | Full address on one line |
city | String | City |
state | String | State or region |
zip | String | Postal code |
country | String | Country code |
location | String | Location label |
latitude | Number | Latitude |
longitude | Number | Longitude |
rating | Number | Average rating from 0 to 5 |
review_count | Number | Review total |
is_pro_verified | Boolean | Verified profile flag |
is_pro_verification_enabled | Boolean | Verification feature flag |
has_verified_license | Boolean | Verified license flag |
has_verified_kyc | Boolean | Verified identity flag |
is_video_consultation_enabled | Boolean | Video consultation flag |
is_sponsored_result | Boolean | Sponsored placement flag |
is_inactive_pro | Boolean | Inactive profile flag |
offers_figure_financing | Boolean | Financing flag |
offers_greensky_financing | Boolean | Financing flag |
show_highlight_video | Boolean | Highlight video flag |
budget_levels | Array | Reported budget ranges |
badge_option_ids | Array | Badge identifiers |
highlight_badge_ids | Array | Highlighted badge identifiers |
social_links | Array | Social and website links |
about_me | String | Profile introduction |
ai_description | String | Additional profile description |
most_recent_review_text | String | Latest review body |
most_recent_reviewer | String | Latest reviewer name |
featured_review_text | String | Featured review body |
search_keyword | String | Search keyword reported by Houzz |
primary_topic_id | Number | Category identifier for the search |
sort_value | Number | Sort mode used by Houzz |
total_results | Number | Total listings for the search |
has_more_results | Boolean | Whether another page exists |
scraped_at | String | ISO timestamp for the record |
Usage Examples
Search by profession and location
Collect carpenters in Boston. The Actor resolves the city before reading the first page.
{"profession": "carpenter","location": "Boston","results_wanted": 20,"max_pages": 3}
Search a whole country
Leave location empty to read the national directory for a trade.
{"profession": "architect","results_wanted": 60,"max_pages": 5}
Start from directory URLs
Use one or more Houzz directory URLs. The profession and location fields are ignored in this mode.
{"startUrls": [{"url": "https://www.houzz.com/professionals/interior-designer/probr0-bo~t_11785"},{"url": "https://www.houzz.com/professionals/general-contractor/probr0-bo~t_11786"}],"results_wanted": 100,"max_pages": 4}
Larger run with a proxy
Residential proxies reduce the chance of rate limiting on long runs.
{"profession": "interior designers","location": "Austin, TX","results_wanted": 200,"max_pages": 15,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Sample Output
{"search_url": "https://www.houzz.com/professionals/carpenter/boston-ma-us-probr0-bo~t_11831~r_4930956","page_url": "https://www.houzz.com/professionals/carpenter/boston-ma-us-probr0-bo~t_11831~r_4930956","page_number": 1,"page_offset": 0,"professional_id": 99444,"user_id": 2651177,"pro_id": 99444,"user_name": "mantel123","name": "Broughton Woodworks","professional_type": "Woodworkers & Carpenters","pro_type_id": 52,"pro_sku_id": 1,"profile_url": "https://www.houzz.com/professionals/woodworkers-and-carpenters/broughton-woodworks-pfvwus-pf~1828976381","image_url": "https://st.hzcdn.com/simgs/bc43578803f6653a_0-2801/_.jpg","phone": "(978) 273-8020","address": "28 Townsend Road","formatted_address": "28 Townsend Road, Groton, MA 01450","city": "Groton","state": "MA","zip": "01450","country": "US","location": "Groton, MA","latitude": 42.6124,"longitude": -71.5584,"rating": 5,"review_count": 33,"is_pro_verified": false,"has_verified_license": false,"is_video_consultation_enabled": false,"is_sponsored_result": false,"offers_figure_financing": false,"offers_greensky_financing": false,"budget_levels": ["1v3", "1v4"],"badge_option_ids": [4000, 4001],"social_links": ["https://www.facebook.com/profile.php?id=100069135374998"],"primary_topic_id": 11831,"sort_value": 4,"total_results": 828,"has_more_results": true,"scraped_at": "2026-10-31T10:52:26.623Z"}
Tips for Best Results
- Start with
results_wantedat 20 to check the dataset before a long run. - Use a city and state when the city name is common, such as
Portland, OR. - Leave
locationempty when you want national coverage for a trade. - Set
max_pagesclose to the pages you need. Each page holds up to 15 listings. - Use
startUrlswhen you already know the exact directory page you want. - Turn on residential proxies for runs above a few hundred records.
- Records can be shorter than the table because Houzz does not publish every field for every profile.
Integrations
- Google Sheets - Send dataset rows to a spreadsheet for review.
- Webhooks - Send each finished run to your own endpoint.
- Make or Zapier - Add the dataset to a no-code workflow.
- API - Read datasets from your own systems with the Apify API.
- CRM import - Map
name,phone,city, andprofile_urlto your contact records.
Export Formats
- JSON - API and developer workflows.
- CSV - Spreadsheet and analytics work.
- Excel - Reporting and sharing.
- XML - Legacy systems.
Frequently Asked Questions
Does the Actor return email addresses?
Only when an email appears in the profile text the Actor reads. Houzz does not publish a dedicated email field on directory listings, so most records have no email value.
Why do some records have fewer fields?
Houzz leaves fields empty for many profiles. The Actor drops empty values, so a sparse profile produces a shorter record instead of a record full of nulls.
Why did the run stop before reaching results_wanted?
Three causes are common. The directory ran out of pages, max_pages was reached, or Houzz returned the same listings again. The run log records the stop reason.
Can I use a Houzz URL instead of the profession fields?
Yes. Put the directory URL in startUrls. The Actor uses the URL you provide and ignores profession and location.
Does the Actor follow pagination?
Yes. It reads the next page offset that Houzz reports and continues until your result or page limit is reached.
Can I run this Actor on a schedule?
Yes. Create a schedule in Apify Console and choose how often the run should repeat. The same input is reused for each run.
What happens if Houzz throttles a request?
The Actor waits, retries with a backoff, and switches its request profile. If throttling continues, that search stops and the log records the failure. The run fails when every search fails.
How current is the data?
Every record is collected during the run. scraped_at stores the collection time for that record.
Support
Report issues or request a field through the Issues tab on the Actor page. Include the input you used and the stop reason from the run log so the problem can be reproduced.
Legal Notice
This Actor collects publicly available professional directory data from Houzz. You are responsible for how you use the data and for complying with applicable laws, Houzz terms of service, and privacy rules in your jurisdiction.