{
  "openapi": "3.0.1",
  "info": {
    "title": "Zillow Group Scraper | Zillow Trulia HotPads API",
    "description": "Scrape US Zillow, Trulia, and HotPads listings plus New Homes, buildings, Zestimate, and mortgage rates. Extract prices, beds, baths, photos, zestimate & URLs — Zillow Group API alternative.",
    "version": "0.4",
    "x-build-id": "oyG42fDqL1FpdGfb1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lentic_clockss~zillow-group-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lentic_clockss-zillow-group-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/lentic_clockss~zillow-group-scraper/runs": {
      "post": {
        "operationId": "runs-sync-lentic_clockss-zillow-group-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/lentic_clockss~zillow-group-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-lentic_clockss-zillow-group-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",
        "required": [
          "location"
        ],
        "properties": {
          "location": {
            "title": "Location",
            "maxLength": 160,
            "type": "string",
            "description": "US city/state, ZIP, county, or neighborhood (e.g. 'Austin, TX', '78701', 'Travis County, TX').",
            "default": "Austin, TX"
          },
          "locations": {
            "title": "Extra locations",
            "type": "array",
            "description": "Optional additional US locations in the same run. maxResults applies separately to each location.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "brand": {
            "title": "Brand",
            "enum": [
              "zillow",
              "trulia",
              "hotpads",
              "all"
            ],
            "type": "string",
            "description": "Zillow Group brand for location search. 'all' fans out to supported brand×channel combos. Ignored when detailUrls is set — in detail mode each URL's brand is auto-detected from its domain (zillow.com / trulia.com / hotpads.com).",
            "default": "zillow"
          },
          "channel": {
            "title": "Channel",
            "enum": [
              "",
              "sale",
              "rent",
              "sold",
              "new_homes",
              "building",
              "zestimate",
              "mortgage"
            ],
            "type": "string",
            "description": "Explicit channel. When set, overrides listingType. HotPads supports rent only; new_homes/building/zestimate/mortgage are Zillow-primary.",
            "default": ""
          },
          "listingType": {
            "title": "Listing type (legacy)",
            "enum": [
              "sale",
              "rent",
              "sold",
              "both",
              "all",
              "new_homes",
              "building",
              "zestimate",
              "mortgage"
            ],
            "type": "string",
            "description": "Used when channel is empty. Supports sale/rent/sold/both/all plus specialty aliases.",
            "default": "sale"
          },
          "geoType": {
            "title": "Geo type hint",
            "enum": [
              "auto",
              "city",
              "zip",
              "county",
              "neighborhood",
              "state"
            ],
            "type": "string",
            "description": "Optional hint for location shape. auto is recommended.",
            "default": "auto"
          },
          "includeRaw": {
            "title": "Include raw payload",
            "type": "boolean",
            "description": "When true, each row includes a raw object with upstream list/detail payload.",
            "default": true
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Optional: house, condo, townhouse, apartment, land, multi_family, manufactured, coop.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "saleStatuses": {
            "title": "Sale statuses",
            "type": "array",
            "description": "Optional sale sub-status filters: coming_soon, new_construction, fsbo, foreclosure, auction.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "minBeds": {
            "title": "Min bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Minimum bedrooms filter. Leave empty for no minimum."
          },
          "maxBeds": {
            "title": "Max bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Maximum bedrooms filter. Leave empty for no maximum."
          },
          "minBaths": {
            "title": "Min bathrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "number",
            "description": "Minimum bathrooms filter. Leave empty for no minimum."
          },
          "maxBaths": {
            "title": "Max bathrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "number",
            "description": "Maximum bathrooms filter. Leave empty for no maximum."
          },
          "minPrice": {
            "title": "Min price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum list price in USD. Leave empty for no minimum."
          },
          "maxPrice": {
            "title": "Max price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum list price in USD. Leave empty for no maximum."
          },
          "minSqft": {
            "title": "Min sqft",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum living area in square feet."
          },
          "maxSqft": {
            "title": "Max sqft",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum living area in square feet."
          },
          "minLotSqft": {
            "title": "Min lot sqft",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum lot size in square feet."
          },
          "maxLotSqft": {
            "title": "Max lot sqft",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum lot size in square feet."
          },
          "minYearBuilt": {
            "title": "Min year built",
            "minimum": 1800,
            "maximum": 2100,
            "type": "integer",
            "description": "Minimum year built filter."
          },
          "maxYearBuilt": {
            "title": "Max year built",
            "minimum": 1800,
            "maximum": 2100,
            "type": "integer",
            "description": "Maximum year built filter."
          },
          "maxHoa": {
            "title": "Max HOA",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum monthly HOA fee in USD."
          },
          "maxDaysOnMarket": {
            "title": "Max days on market",
            "minimum": 0,
            "type": "integer",
            "description": "Only include listings on market for at most this many days."
          },
          "maxResults": {
            "title": "Max results per location or URL",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum rows for each location or detail URL. The default is 70; larger values are collected in parts of 70. All listing row types, brands, and channels for one input count together. The run stops at your maximum total charge. Free Apify plan users are limited to 200 rows per run and 10 total runs.",
            "default": 70
          },
          "maxPages": {
            "title": "Max pages",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Legacy page preference. Entity-row runs keep paging inside each control-plane unit until maxResults is filled or the source is exhausted.",
            "default": 1
          },
          "enrichDetails": {
            "title": "Enrich from detail pages",
            "type": "boolean",
            "description": "When true, fetch listing detail pages for richer fields (slower, more cost).",
            "default": true
          },
          "expandUnits": {
            "title": "Expand building units",
            "type": "boolean",
            "description": "Reserved for a future building-unit surface. The current worker emits Zillow Group listings and apartment buildings as listing rows.",
            "default": false
          },
          "loanAmount": {
            "title": "Loan amount (mortgage)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional loan amount for mortgage-channel rate lookups."
          },
          "creditBand": {
            "title": "Credit band (mortgage)",
            "type": "string",
            "description": "Optional credit score band for mortgage-channel lookups."
          },
          "ltv": {
            "title": "LTV % (mortgage)",
            "minimum": 0,
            "maximum": 100,
            "type": "number",
            "description": "Optional loan-to-value percent for mortgage-channel lookups."
          },
          "loanType": {
            "title": "Loan type (mortgage)",
            "type": "string",
            "description": "Optional loan type for mortgage-channel lookups (e.g. conventional, FHA)."
          },
          "detailUrls": {
            "title": "Detail URLs (optional)",
            "type": "array",
            "description": "zillow.com / trulia.com / hotpads.com URLs — mixed brands allowed in one run, and maxResults applies separately to each URL. When set, location search is skipped and the brand field above is ignored (brand auto-detected per URL).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "failover": {
            "title": "Provider failover",
            "type": "boolean",
            "description": "When true, try alternate unlock providers if the primary path fails.",
            "default": true
          },
          "workerBaseUrl": {
            "title": "Worker base URL (optional)",
            "type": "string",
            "description": "Optional allowlisted broker URL override. Defaults to WORKER_BASE_URL and must target this Actor's broker route.",
            "default": ""
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}