{
  "openapi": "3.0.1",
  "info": {
    "title": "Houzz Scraper",
    "description": "[💰 $3.00 / 1K] Extract Houzz photos, professionals (designers, contractors, architects), magazine stories, and Q&A discussions. Search by keyword, filter by style/budget/size/color, scope by city, or paste Houzz URLs directly.",
    "version": "1.0",
    "x-build-id": "CC5IRRTr983Kqo6h6"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~houzz-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-houzz-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/solidcode~houzz-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-houzz-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/solidcode~houzz-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-houzz-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "startUrls": {
            "title": "Houzz URLs",
            "type": "array",
            "description": "Paste one or more Houzz URLs. Accepts photo, professional, story, and discussion pages, plus search and category listings (e.g. https://www.houzz.com/photos/modern-kitchen, https://www.houzz.com/professionals/interior-designers/c/Austin--TX). When provided, these override the keyword/filter fields below.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search Keywords",
            "type": "array",
            "description": "One keyword per line (e.g. 'modern kitchen', 'landscape architect', 'craftsman bathroom'). Each line runs as its own search and produces its own results. Photo and discussion searches accept keywords in any language, including Japanese, Chinese and Korean. For 'Professionals' the keyword narrows the chosen category and location by relevance — that directory is Latin-alphabet only, and the run says so by name if a keyword can't be applied — and a professional matched by more than one keyword is returned (and charged) only once. Ignored when Houzz URLs are provided above.",
            "items": {
              "type": "string"
            }
          },
          "queryType": {
            "title": "Search Section",
            "enum": [
              "photos",
              "professionals",
              "stories",
              "discussions"
            ],
            "type": "string",
            "description": "Which Houzz section to search. 'Photos' searches the inspiration gallery, 'Professionals' searches the designer/contractor directory, 'Stories' searches Houzz Magazine articles, and 'Discussions' searches the Q&A forum.",
            "default": "photos"
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, region, or 'City, State' to scope a professional search (e.g. 'Austin, TX', 'Brooklyn, NY'). Houzz scopes a city to its surrounding metro area — about 50 miles — so results can include nearby towns and cross state lines. Only used when Search Section is 'Professionals'."
          },
          "professionalCategory": {
            "title": "Professional Category",
            "enum": [
              "",
              "interior-designers",
              "architects-and-building-designers",
              "design-build-firms",
              "general-contractors",
              "kitchen-and-bath-designers",
              "kitchen-remodelers",
              "kitchen-and-bath-remodelers",
              "landscape-architects-and-designers",
              "landscape-contractors",
              "home-builders",
              "adu-contractors",
              "home-remodeling",
              "home-additions-and-extensions"
            ],
            "type": "string",
            "description": "Restrict a professional search to a specific category. Leave blank to use the default category (Interior Designers) — Houzz does not support browsing every category at once.",
            "default": ""
          },
          "styles": {
            "title": "Photo Style",
            "uniqueItems": true,
            "type": "array",
            "description": "Filter photos by design style. Picking two widens the search to photos matching either of them. Houzz applies at most two photo filters at once on a room search, and up to four on a descriptive-phrase search — anything beyond that is skipped, and the run says so. Only applied when Search Section is 'Photos'.",
            "items": {
              "type": "string",
              "enum": [
                "contemporary",
                "modern",
                "traditional",
                "transitional",
                "farmhouse",
                "industrial",
                "mediterranean",
                "scandinavian",
                "rustic",
                "craftsman",
                "midcentury",
                "coastal",
                "tropical",
                "asian",
                "eclectic",
                "shabby-chic",
                "victorian",
                "southwestern",
                "french-country"
              ],
              "enumTitles": [
                "Contemporary",
                "Modern",
                "Traditional",
                "Transitional",
                "Farmhouse",
                "Industrial",
                "Mediterranean",
                "Scandinavian",
                "Rustic",
                "Craftsman",
                "Midcentury",
                "Coastal",
                "Tropical",
                "Asian",
                "Eclectic",
                "Shabby Chic",
                "Victorian",
                "Southwestern",
                "French Country"
              ]
            },
            "default": []
          },
          "budgets": {
            "title": "Budget",
            "uniqueItems": true,
            "type": "array",
            "description": "Filter photos by project budget tier as Houzz classifies them. Picking two widens the search to photos in either tier. Houzz applies at most two photo filters at once on a room search, and up to four on a descriptive-phrase search — anything beyond that is skipped, and the run says so.",
            "items": {
              "type": "string",
              "enum": [
                "budget",
                "midrange",
                "highend",
                "luxury"
              ],
              "enumTitles": [
                "Budget ($)",
                "Mid-range ($$)",
                "High-end ($$$)",
                "Luxury ($$$$)"
              ]
            },
            "default": []
          },
          "sizes": {
            "title": "Room Size",
            "uniqueItems": true,
            "type": "array",
            "description": "Filter photos by room size. Picking two widens the search to photos of either size. Houzz applies at most two photo filters at once on a room search, and up to four on a descriptive-phrase search — anything beyond that is skipped, and the run says so.",
            "items": {
              "type": "string",
              "enum": [
                "compact",
                "medium",
                "large",
                "expansive"
              ],
              "enumTitles": [
                "Compact",
                "Medium",
                "Large",
                "Expansive"
              ]
            },
            "default": []
          },
          "colors": {
            "title": "Color Palette",
            "uniqueItems": true,
            "type": "array",
            "description": "Filter photos by dominant color. Picking two widens the search to photos featuring either color. Houzz applies at most two photo filters at once on a room search, and up to four on a descriptive-phrase search — anything beyond that is skipped, and the run says so.",
            "items": {
              "type": "string",
              "enum": [
                "red",
                "orange",
                "yellow",
                "green",
                "blue",
                "purple",
                "turquoise",
                "pink",
                "brown",
                "woodtones",
                "beige",
                "gray",
                "white",
                "black"
              ],
              "enumTitles": [
                "Red",
                "Orange",
                "Yellow",
                "Green",
                "Blue",
                "Purple",
                "Turquoise",
                "Pink",
                "Brown",
                "Wood tones",
                "Beige",
                "Gray",
                "White",
                "Black"
              ]
            },
            "default": []
          },
          "includeContacts": {
            "title": "Include Contact Details",
            "type": "boolean",
            "description": "Houzz directory listings carry a professional's name, address, phone, rating and review count — but NOT their website, social links, badges, project count, photo count, follower count or license verification. Turn this on to fetch each professional's own profile page and fill all of them in, plus the most recent published review (rating, body, project date, reviewer name). Leave it off and those columns come back empty. Adds two extra requests per professional (slower, slightly more expensive). Only applied when Search Section is 'Professionals' or you paste a professional URL.",
            "default": false
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of results to collect per URL or keyword. Set to 0 to collect everything Houzz will serve. Each section has its own real ceiling, and for photos it depends on the word you type: a room word such as \"kitchen\" browses that whole room and goes 50,000 deep, while any other keyword or phrase such as \"kitchen backsplash\" is a search and stops at about 4,800 no matter how many photos match (the run says so in the log before it starts). Houzz itself stops at about 1,200 distinct professionals per category-and-city (100 directory pages of 15, re-ranked between them), 4,980 discussions per search, and one magazine topic's full article list. Asking for more than a section can give is harmless — the run ends cleanly at the ceiling. The actor stops requesting new pages once this number is reached but keeps the full final page even if it slightly overshoots.",
            "default": 100
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}