{
  "openapi": "3.0.1",
  "info": {
    "title": "Houzz Contractor Scraper - GCs, Remodelers, Designers",
    "description": "Bulk Houzz professional leads: general contractors, remodelers, designers, architects. Filter by specialty, location, recommendations, review average, Best of Houzz awards. Returns profile, reviews, portfolio metrics. For remodeling SaaS, supply distributors, residential PE rollup teams.",
    "version": "0.1",
    "x-build-id": "3jqHDMKRJXUbJNch3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/seibs.co~houzz-contractor-leads/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-seibs.co-houzz-contractor-leads",
        "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/seibs.co~houzz-contractor-leads/runs": {
      "post": {
        "operationId": "runs-sync-seibs.co-houzz-contractor-leads",
        "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/seibs.co~houzz-contractor-leads/run-sync": {
      "post": {
        "operationId": "run-sync-seibs.co-houzz-contractor-leads",
        "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",
        "required": [
          "specialties",
          "locations"
        ],
        "properties": {
          "specialties": {
            "title": "Specialty slugs",
            "type": "array",
            "description": "Houzz specialty slugs (URL segment after /professionals/). Common: general-contractors, remodelers, kitchen-and-bathroom-remodelers, interior-designers-and-decorators, architects, landscape-architects-and-designers, home-builders, design-build-firms, deck-and-patio-builders, roofing-and-gutters, painters, electricians.",
            "default": [
              "general-contractors"
            ],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations (City,ST)",
            "type": "array",
            "description": "List of US locations in 'City,ST' format (e.g. 'Austin,TX', 'Seattle,WA'). One search is run per (specialty x location) pair.",
            "default": [
              "Austin,TX"
            ],
            "items": {
              "type": "string"
            }
          },
          "min_recommendations": {
            "title": "Min recommendations",
            "minimum": 0,
            "type": "integer",
            "description": "Drop pros with fewer than N Houzz recommendations. 0 = no filter.",
            "default": 0
          },
          "min_project_count": {
            "title": "Min projects on Houzz",
            "minimum": 0,
            "type": "integer",
            "description": "Drop pros with fewer than N projects on their Houzz profile (project portfolio maturity signal). 0 = no filter.",
            "default": 0
          },
          "min_review_average": {
            "title": "Min review average (0-5)",
            "type": "string",
            "description": "Minimum review-average score, 0-5 (string so you can enter '4.5'). Leave empty to skip the filter.",
            "default": ""
          },
          "award_filter": {
            "title": "Best of Houzz winners only",
            "type": "boolean",
            "description": "Only emit pros with at least one 'Best of Houzz' award (any year since 2014).",
            "default": false
          },
          "include_recent_reviews": {
            "title": "Include recent reviews",
            "type": "boolean",
            "description": "Scrape recent review snippets (author, rating, date, text). Adds the review_enrichment PPE event when 3+ reviews are returned.",
            "default": true
          },
          "include_project_details": {
            "title": "Include project portfolio details",
            "type": "boolean",
            "description": "Scrape project portfolio details (title, size, type, photo count) - slow, charges the project_enrichment PPE event when 1+ projects are returned.",
            "default": false
          },
          "max_results_per_search": {
            "title": "Max results per search",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum unique pros to keep per (specialty x location) search before filtering.",
            "default": 100
          },
          "max_pages_per_search": {
            "title": "Max search-result pages",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Cap on Houzz search-result pages walked per (specialty x location).",
            "default": 5
          },
          "concurrency": {
            "title": "Concurrent profile fetches",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Parallel profile fetches. Houzz blocks aggressively - keep at 4 unless you have residential proxies and have validated higher rates.",
            "default": 4
          },
          "use_apify_proxy": {
            "title": "Use Apify Proxy",
            "type": "boolean",
            "description": "Route Houzz requests through Apify Proxy. Strongly recommended - Houzz is bot-protected.",
            "default": true
          },
          "apify_proxy_groups": {
            "title": "Proxy groups",
            "type": "array",
            "description": "Apify Proxy groups. RESIDENTIAL strongly recommended for Houzz - datacenter IPs are blocked quickly.",
            "default": [
              "RESIDENTIAL"
            ],
            "items": {
              "type": "string"
            }
          },
          "apify_proxy_country": {
            "title": "Proxy country",
            "type": "string",
            "description": "Two-letter country code (default 'US'). Match the country your locations are in - Houzz returns localized results.",
            "default": "US"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}