Houzz Design Photo Gallery Scraper
Pricing
Pay per event
Houzz Design Photo Gallery Scraper
🖼️ Export public Houzz design photos with project context, professionals, styles, locations, material attributes, canonical links, and full-size image metadata.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract public Houzz inspiration photos into a clean dataset for design research, trend tracking, product marketing, and visual portfolio analysis.
The Actor accepts Houzz gallery URLs, filtered category URLs, individual photo URLs, or plain-language photo searches. It returns stable photo IDs, project titles, professionals, descriptions, design context, canonical URLs, full-size image URLs, and gallery provenance.
No Houzz login is required.
What does Houzz Design Photo Gallery Scraper do?
Houzz contains millions of useful interior and exterior design photos, but its infinite galleries are hard to monitor or compare in bulk.
This Actor automates that work:
- 🖼️ collects one dataset row per public Houzz photo;
- 🏠 preserves room, style, location, and project context;
- 👷 identifies the professional attached to each photo;
- 📝 extracts descriptions and normalized design attributes;
- 🔗 returns canonical Houzz and direct CDN image URLs;
- 📊 records gallery title and total result count;
- 🔍 supports URL-based and keyword-based discovery;
- ♻️ deduplicates overlapping galleries by stable photo ID.
Use the dataset in CSV, Excel, JSON, XML, Google Sheets, databases, dashboards, or AI workflows.
Who is it for?
Interior-design trend analysts
Track rooms, materials, layouts, colors, and styles across recurring searches.
Building-product marketers
Discover how cabinets, countertops, backsplashes, fixtures, flooring, and appliances appear in real projects.
Architects and design studios
Build reference sets and monitor public portfolios without manually paging through galleries.
Competitive-intelligence teams
Compare public project themes, locations, and visual positioning across professionals.
Data and AI teams
Create source-attributed image metadata for classification, search, or retrieval workflows. Users remain responsible for image rights and permitted downstream use.
Why use this Houzz photo scraper?
Manual research is slow and difficult to reproduce. The Actor provides:
- repeatable inputs for recurring monitoring;
- bounded pagination and predictable result limits;
- stable identifiers for change detection;
- source URLs for verification and attribution;
- optional detail-page enrichment;
- typed fields instead of copied page text;
- configurable proxies for protected public pages;
- Apify scheduling, webhooks, integrations, and API access.
Unlike broad all-in-one Houzz scrapers, this Actor keeps the output focused: every row is a design photo.
What Houzz data can you extract?
| Field | Description |
|---|---|
photoId | Stable Houzz photo identifier |
photoUrl | Canonical public photo page |
title | Photo or project title |
description | Public caption and design description |
professionalName | Professional or studio credited on the photo |
professionalUrl | Public Houzz professional profile |
galleryTitle | Gallery/category heading used for discovery |
galleryUrl | Original URL seed |
galleryTotal | Total photos reported by the gallery |
query | Keyword seed, when used |
style | Detected style context |
roomType | Kitchen, bathroom, living room, exterior, and more |
location | Public project location context |
attributes | Normalized descriptive material/layout fragments |
imageUrl | Direct image URL, full-size when detail enrichment is on |
imageSrcSet | Available gallery image variants |
imageAlt | Public image alt text |
imageWidth, imageHeight | Gallery image dimensions |
keywords | Structured photo keywords from the detail page |
scrapedAt | ISO 8601 capture timestamp |
Optional values are omitted when Houzz does not expose them. The Actor does not invent counts or classifications.
How to scrape Houzz design photos
- Open the Actor input form.
- Paste one or more Houzz gallery/photo URLs, add search queries, or use the prefilled example.
- Set Maximum photos to the number of unique records required.
- Keep Open photo detail pages enabled for full image URLs and richer metadata.
- Click Start.
- Preview the dataset and export it in your preferred format.
For a cheap first run, use one gallery, 5–10 photos, one page, and gallery-only mode.
Input
{"startUrls": [{"url": "https://www.houzz.com/photos/contemporary-kitchen-ideas-phbr1-bp~t_709~s_2103"}],"searchQueries": [],"maxItems": 10,"includeDetails": true,"maxPagesPerSeed": 2}
Input fields
startUrls— publichouzz.comgallery, filtered category, search, or photo URLs.searchQueries— phrases such asmodern kitchenorterrazzo bathroom.maxItems— global cap across all seeds, from 1 to 1,000.includeDetails— open each photo to enrich structured metadata.maxPagesPerSeed— pagination safety limit from 1 to 50.proxyConfiguration— Apify Proxy or custom proxy settings.
URL and query seeds can be combined. URLs outside houzz.com fail validation instead of being fetched.
Output example
{"photoId": "140538492","photoUrl": "https://www.houzz.com/photos/chicago-lux-kitchen-contemporary-kitchen-chicago-phvw-vp~140538492","title": "Chicago Lux Kitchen","description": "Contemporary Kitchen photo - Chicago Lux, Art Deco, White Kitchen...","professionalName": "BK Interior Design","professionalUrl": "https://www.houzz.com/professionals/interior-designers-and-decorators/bk-interior-design-pfvwus-pf~1862825172","galleryTitle": "Contemporary Kitchen Ideas","galleryTotal": 742798,"style": "Contemporary","roomType": "Kitchen","location": "Chicago","imageUrl": "https://st.hzcdn.com/simgs/333145760c9ea182_9-2070/home-design.jpg","keywords": ["Kitchen photo", "Contemporary photo", "Kitchen design ideas"],"scrapedAt": "2026-07-23T00:00:00.000Z"}
Exact source values change as Houzz updates its public pages.
Gallery mode versus detail enrichment
With includeDetails: false, the Actor reads gallery cards only. This is faster and works well for frequent monitoring.
With includeDetails: true, the Actor also opens each photo page and extracts public JSON-LD metadata. This typically improves:
- image resolution;
- structured keywords;
- full descriptions;
- style, room, and location context;
- author/professional attribution.
Detail mode makes one additional page request per saved photo, so it takes longer.
Pagination and deduplication
Houzz galleries normally expose 20 records at a time. The Actor advances through offsets until it reaches:
maxItems;maxPagesPerSeed;- an empty or short page;
- a page containing no new photo IDs.
If the same photo appears in several queries or galleries, it is saved once per run.
Search and filter tips
Use specific nouns and materials for higher-value result sets:
walnut kitchen;terrazzo bathroom;coastal living room;black window exterior;brass fixture powder room.
For precise Houzz filters, configure them on Houzz and paste the resulting gallery URL. The Actor preserves that URL as provenance.
How much does it cost to scrape Houzz photos?
The Actor uses pay-per-event pricing:
- a small $0.001 start fee per run;
- a tiered fee per unique photo saved;
- the current BRONZE price is $0.003785 per photo.
Apify shows the exact price for your plan before each run. Detail enrichment affects compute and proxy use but does not create duplicate output charges.
For the lowest effective cost, combine related queries in one run and use gallery-only mode when full detail metadata is unnecessary.
Scheduling a Houzz trend monitor
Use Apify Schedules to repeat a saved task daily, weekly, or monthly.
A typical workflow is:
- save stable keyword or gallery inputs;
- schedule the task;
- identify photos by
photoId; - compare the latest dataset with the prior export;
- notify analysts when new projects or styles appear.
Stable IDs make append-only storage and deduplication straightforward.
Integrations
Google Sheets
Send each completed dataset to a sheet for research, tagging, and review.
Webhooks and Slack
Trigger an automation when a monitoring run finishes, then post new-photo counts or selected records.
Airtable and databases
Upsert on photoId and preserve scrapedAt for freshness tracking.
AI classification
Pass descriptions, attributes, keywords, and source URLs to a vision or text model. Review image licensing before downloading or reproducing assets.
Zapier and Make
Create no-code workflows that start the Actor, wait for completion, and route records downstream.
API usage with JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/houzz-design-photo-gallery-scraper').call({searchQueries: ['modern kitchen', 'terrazzo bathroom'],maxItems: 40,includeDetails: true,maxPagesPerSeed: 3,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API usage with Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/houzz-design-photo-gallery-scraper').call(run_input={'searchQueries': ['coastal living room'],'maxItems': 20,'includeDetails': True,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
API usage with cURL
curl -X POST \'https://api.apify.com/v2/acts/automation-lab~houzz-design-photo-gallery-scraper/runs?token=YOUR_APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"searchQueries": ["farmhouse bathroom"],"maxItems": 10,"includeDetails": true}'
Never commit an Apify API token to source control.
Use with Apify MCP and AI agents
Connect the Actor to Claude Code or another MCP client through:
https://mcp.apify.com?tools=automation-lab/houzz-design-photo-gallery-scraper
Example Claude Code command:
claude mcp add --transport http apify \'https://mcp.apify.com?tools=automation-lab/houzz-design-photo-gallery-scraper'
Claude Desktop, Cursor, and VS Code setup
Use the same mcpServers JSON block in Claude Desktop, Cursor, or VS Code. Add it to that client's MCP settings, then restart or reload the client.
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/houzz-design-photo-gallery-scraper"}}}
Example prompts:
- “Extract 20 modern kitchen photos from Houzz and group the design attributes.”
- “Monitor this Houzz gallery and summarize newly observed photo IDs.”
- “Build a table of professionals and locations from these design-photo URLs.”
Reliability and proxies
Houzz rate-limits ordinary datacenter traffic. The Actor therefore uses a proven Apify Proxy group by default and keeps browser concurrency conservative.
It also:
- reuses one browser session per run;
- blocks third-party analytics, fonts, and media downloads;
- retries transient navigation failures with backoff;
- fails the run if every route produces zero records;
- lets advanced users provide another proxy configuration.
If a custom datacenter proxy returns 429, switch to an Apify residential proxy with United States geography.
Performance guidance
Runtime depends mainly on detail enrichment.
- Gallery-only: one browser page can yield up to 20 records.
- Detail mode: one extra navigation is required per record.
- Multiple seeds run sequentially to reduce blocking.
Start small, inspect output quality, and then increase maxItems. For large historical collections, split runs by room, style, or material query.
Data quality and limitations
Public page content can vary by country, session, experiment, or source record.
Keep these limitations in mind:
- optional fields may be absent;
- gallery totals change over time;
- descriptions are publisher-provided and not standardized;
- inferred attributes are normalized text fragments, not guaranteed product taxonomy;
- some photo pages may no longer exist;
- the Actor does not extract private ideabooks or logged-in content;
- save/question counts are not emitted unless Houzz exposes a stable value;
- image availability and resolution remain controlled by Houzz.
Use source URLs to verify important decisions.
Is scraping Houzz legal?
This Actor accesses public, no-login pages. Scraping legality depends on jurisdiction, purpose, contractual obligations, and downstream use.
Users should:
- follow applicable law and Houzz terms;
- collect only data they have a lawful reason to process;
- avoid republishing copyrighted images without permission;
- respect privacy and intellectual-property rights;
- use conservative frequency and result limits;
- honor valid deletion or correction requirements.
The Actor is a technical tool, not legal advice.
Troubleshooting
The run returns HTTP 429 or a block page
Keep the default proxy configuration or select an Apify residential proxy in the input. Avoid high-frequency parallel runs against the same gallery.
The run succeeds but a field is missing
Many Houzz fields are optional. Enable Open photo detail pages for structured descriptions, keywords, and full-size image URLs.
My gallery URL is rejected
Only public houzz.com URLs are accepted. Remove tracking redirects and use the final Houzz gallery or photo URL.
I received fewer records than maxItems
The selected gallery may be finite, may contain duplicates across seeds, or may expose fewer new records within maxPagesPerSeed. Increase the page limit only when the source visibly contains more results.
A detail page disappeared
Houzz publishers can remove public photos. Re-run gallery-only mode or omit unavailable records from downstream processing.
Frequently asked questions
Does this Actor require a Houzz account?
No. Version 1 is strictly public and no-login.
Can I scrape one individual photo URL?
Yes. Paste a canonical URL containing -phvw-vp~<photoId> into startUrls.
Can I mix URLs and keyword searches?
Yes. The global maxItems cap applies across all seeds.
Does it download image files?
No. It returns direct public image URLs and metadata. Your workflow can decide whether downloading is lawful and necessary.
Can it extract professionals?
It returns the professional credited on each photo as context. It is not a professional lead-directory scraper.
Can I remove duplicate photos across scheduled runs?
Use photoId as the stable key in your database or automation.
Why is browser automation necessary?
Houzz currently rate-limits plain datacenter requests, while browser sessions through an appropriate proxy receive the useful public gallery content.
Related Automation Lab scrapers
Combine this Actor with other public-data workflows from Automation Lab:
- Google Maps Scraper for local business and place context.
- Pinterest Scraper for broader visual trend research.
- Instagram Scraper for public social portfolio monitoring.
Choose a lead-directory actor when your primary goal is business contact data rather than photo and design intelligence.
Support
For reproducible support, include:
- the run URL;
- a redacted copy of the input;
- the Houzz source URL;
- expected versus observed output;
- whether detail enrichment and a custom proxy were enabled.
Do not include passwords, private tokens, or personal information in an issue.