Houzz Professional Scraper
Pricing
Pay per usage
Houzz Professional Scraper
Extract comprehensive data on home improvement professionals from Houzz. Easily scrape profiles for architects, interior designers, and contractors to gather contact details, reviews, and project info. For optimal stability and to prevent blocking, the use of residential proxies is strongly advised.
Pricing
Pay per usage
Rating
5.0
(1)
Developer

Shahid Irfan
Actor stats
0
Bookmarked
5
Total users
3
Monthly active users
0.71 hours
Issues response
17 days ago
Last modified
Categories
Share
Extract Houzz professional listings at scale for research, lead discovery, and market analysis. Collect rich business data such as names, profile links, locations, ratings, review counts, contact details, and profile metadata. Ideal for teams that need structured professional directory data in one run.
Features
- Professional listing extraction — Collect business and profile data from Houzz professional pages.
- Flexible search input — Use profession and location filters or provide direct listing URLs.
- Automatic pagination — Continue through result pages until your target count is reached.
- Rich output fields — Capture identity, location, ratings, reviews, links, badges, and optional profile text.
- Clean datasets — Exclude null and empty values from output items.
- Export-ready data — Download in JSON, CSV, Excel, XML, and integrate with automations.
Use Cases
Lead Research
Build targeted prospect lists of contractors, designers, and service providers in specific regions. Use profile and contact data to prioritize outreach.
Local Market Analysis
Compare professional density, review activity, and category presence across cities and states. Identify underserved markets and competitive clusters.
Agency Prospecting
Create segmented lists for partnerships and service sales by category, location, and business type. Use profile URLs for quick manual qualification.
Directory Enrichment
Append structured Houzz data to CRM records, internal directories, or BI datasets. Improve record completeness for operations and analytics.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | Array | No | — | Direct Houzz professional listing URLs. If provided, these are used as entry points. |
profession | String | No | — | Professional category keyword such as carpenter, architect, or interior-designer. |
location | String | No | — | City/location filter such as Boston or other Houzz-compatible location text. |
results_wanted | Integer | No | 20 | Maximum number of professionals to collect. |
max_pages | Integer | No | 10 | Maximum result pages to visit for each search entry point. |
proxyConfiguration | Object | No | { "useApifyProxy": false } | Proxy settings for request routing and reliability. |
Output Data
Each dataset item may contain these fields when available:
| Field | Type | Description |
|---|---|---|
search_url | String | Base search URL used for the request flow. |
page_url | String | Specific page URL where the item was found. |
page_number | Number | Page index in the crawl sequence. |
page_offset | Number | Offset value for paginated listing pages. |
professional_id | Number | Houzz professional identifier. |
user_id | Number | Houzz user identifier tied to the profile. |
pro_id | Number | Houzz pro account ID when available. |
user_name | String | Username handle for the profile. |
name | String | Professional or business display name. |
professional_type | String | Category label (for example, designer or contractor). |
pro_type_id | Number | Numeric category identifier. |
pro_sku_id | Number | Profile SKU/plan metadata when available. |
profile_url | String | Canonical professional profile URL. |
image_url | String | Main profile image URL. |
phone | String | Display phone number if provided. |
emails | Array | Email addresses discovered in profile text/links when present. |
address | String | Street address text. |
formatted_address | String | Normalized full address string. |
city | String | City value. |
state | String | State/region value. |
zip | String | Postal code. |
country | String | Country code. |
location | String | Combined location string. |
latitude | Number | Latitude coordinate. |
longitude | Number | Longitude coordinate. |
rating | Number | Average rating value. |
review_count | Number | Total review count. |
is_pro_verified | Boolean | Whether profile is marked as verified. |
is_pro_verification_enabled | Boolean | Verification feature status for that profile. |
has_verified_license | Boolean | Verified license flag when available. |
has_verified_kyc | Boolean | Verified KYC flag when available. |
is_video_consultation_enabled | Boolean | Video consultation availability. |
is_sponsored_result | Boolean | Sponsored listing flag. |
is_inactive_pro | Boolean | Inactive profile status flag. |
offers_figure_financing | Boolean | Financing flag when present. |
offers_greensky_financing | Boolean | Financing flag when present. |
show_highlight_video | Boolean | Highlight video configuration flag. |
budget_levels | Array | Budget level metadata codes. |
badge_option_ids | Array | Badge option identifiers. |
highlight_badge_ids | Array | Highlight badge identifiers. |
social_links | Array | Social and website links listed on profile data. |
about_me | String | Profile about text when available. |
ai_description | String | Additional profile description field when available. |
most_recent_review_text | String | Most recent review text when available. |
most_recent_reviewer | String | Most recent reviewer name when available. |
featured_review_text | String | Featured review text when available. |
search_keyword | String | Query keyword reflected in response data. |
primary_topic_id | Number | Primary topic/category ID for the listing context. |
sort_value | Number | Sort mode value used by listing response. |
total_results | Number | Total result count reported by the listing context. |
has_more_results | Boolean | Whether additional pages are available. |
scraped_at | String | ISO timestamp for item extraction time. |
Usage Examples
Basic Search by Profession and Location
{"profession": "carpenter","location": "Boston","results_wanted": 20,"max_pages": 3}
Start from Direct Listing URLs
{"startUrls": [{ "url": "https://www.houzz.com/professionals/carpenter/probr0-bo~t_11831" },{ "url": "https://www.houzz.com/professionals/interior-designer/probr0-bo~t_11785" }],"results_wanted": 40,"max_pages": 4}
Run with Proxy Configuration
{"profession": "architect","location": "New York","results_wanted": 20,"max_pages": 2,"proxyConfiguration": {"useApifyProxy": true}}
Sample Output
{"search_url": "https://www.houzz.com/professionals","page_url": "https://www.houzz.com/professionals","page_number": 1,"page_offset": 0,"professional_id": 18124,"user_id": 111882,"pro_id": 18124,"user_name": "eugenesakai","name": "S-Squared // Architecture + Interiors + Landscape","professional_type": "Architects & Building Designers","profile_url": "https://www.houzz.com/professionals/architects-and-building-designers/s-squared-architecture-interiors-landscape-pfvwus-pf~721513198","phone": "(831) 292-3471","city": "San Jose","state": "CA","country": "US","rating": 5,"review_count": 113,"social_links": ["https://www.instagram.com/studiossquared/"],"has_more_results": true,"scraped_at": "2026-02-18T12:08:20.442Z"}
Tips for Best Results
Start with Small Test Runs
- Use
results_wanted: 20to validate your input quickly. - Increase volume after confirming output quality.
Use Specific Queries
- Narrow profession and location to improve relevance.
- Prefer direct
startUrlsfor precise list targeting.
Handle Sparse Profiles
- Some Houzz listings naturally contain fewer fields.
- This actor excludes empty values to keep output clean.
Tune Pagination Limits
- Keep
max_pagesaligned with your required volume. - Use lower limits for fast recurring jobs.
Integrations
Connect extracted data with:
- Google Sheets — Build live research sheets.
- Airtable — Create searchable lead tables.
- Make — Trigger multi-step automations.
- Zapier — Send results to CRM and messaging tools.
- Webhooks — Deliver data to your custom endpoints.
Export Formats
- JSON — API and developer workflows.
- CSV — Spreadsheet and analytics use.
- Excel — Business reporting and sharing.
- XML — Legacy system integrations.
Frequently Asked Questions
Why do some records have fewer fields?
Some profiles on Houzz provide limited public details. The actor also removes empty values, so sparse profiles contain fewer keys.
Does it always return phone numbers or emails?
Only when that information is present in available listing/profile content.
Can I use direct Houzz URLs instead of filters?
Yes. Add URLs in startUrls and the actor will use them as crawl entry points.
How many records can I collect?
Set results_wanted to your required limit. Actual returned count depends on available public listings.
Can I schedule this actor?
Yes. You can schedule recurring runs in Apify and route outputs to integrations.
Support
For issues or feature requests, use Apify Console support channels.
Resources
Legal Notice
This actor is intended for legitimate data collection and research workflows. You are responsible for complying with applicable laws, website terms, and privacy requirements in your jurisdiction.