{
  "openapi": "3.0.1",
  "info": {
    "title": "Zillow ZIP Code Scraper",
    "description": "Scrape Zillow by ZIP code: for sale, rent, sold. 55 filters, map tiling, price history. $0.80/1K results — the lowest price on Apify, cheaper than any alternative.",
    "version": "0.0",
    "x-build-id": "jtqlgDG1JH3zlwIPp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/unfenced-group~zillow-zip-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-unfenced-group-zillow-zip-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/unfenced-group~zillow-zip-scraper/runs": {
      "post": {
        "operationId": "runs-sync-unfenced-group-zillow-zip-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/unfenced-group~zillow-zip-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-unfenced-group-zillow-zip-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": {
          "zipCodes": {
            "title": "ZIP Codes",
            "type": "array",
            "description": "US ZIP codes to scrape, e.g. [\"90210\", \"10001\"]. Leave empty if you are using Start URLs or ZPIDs instead.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "operationType": {
            "title": "Operation Type",
            "enum": [
              "sale",
              "rent",
              "sold"
            ],
            "type": "string",
            "description": "Which listings to return: homes for sale, for rent, or recently sold.",
            "default": "sale"
          },
          "startUrls": {
            "title": "Start URLs (property detail pages)",
            "type": "array",
            "description": "Zillow property detail URLs to scrape directly, e.g. https://www.zillow.com/homedetails/.../20523735_zpid/. Each URL returns one fully enriched property record. Use this instead of (or alongside) ZIP codes.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "zpids": {
            "title": "ZPIDs",
            "type": "array",
            "description": "Zillow property IDs to scrape directly, e.g. [\"20523735\"]. Equivalent to Start URLs but takes the bare ID.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "fetchDetails": {
            "title": "Fetch property detail pages",
            "type": "boolean",
            "description": "Visit each property's detail page to add description, photos, year built, MLS ID, parcel ID, HOA fee, tax rate, parking and bathroom breakdown. Costs one extra request per property, so runs take longer.",
            "default": false
          },
          "detailSource": {
            "title": "Detail data source",
            "enum": [
              "residential",
              "unlocker",
              "auto"
            ],
            "type": "string",
            "description": "Where detail data comes from when Fetch property detail pages is on. 'residential' returns description, photos, year built, MLS ID, HOA and tax rate. 'unlocker' additionally returns price history, tax history, schools and full property facts, and requires BrightData Web Unlocker credentials. 'auto' uses unlocker when credentials are configured.",
            "default": "residential"
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of listings to collect per run. Set to 0 for unlimited.",
            "default": 100
          },
          "priceMin": {
            "title": "Min Price ($)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum listing price in USD. 0 = no minimum.",
            "default": 0
          },
          "priceMax": {
            "title": "Max Price ($)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum listing price in USD. 0 = no maximum.",
            "default": 0
          },
          "bedsMin": {
            "title": "Min Bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of bedrooms. 0 = any.",
            "default": 0
          },
          "bedsMax": {
            "title": "Max Bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of bedrooms. 0 = any.",
            "default": 0
          },
          "bathsMin": {
            "title": "Min Bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of bathrooms. 0 = any.",
            "default": 0
          },
          "sqftMin": {
            "title": "Min Sq Ft",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum living area in square feet. 0 = any.",
            "default": 0
          },
          "sqftMax": {
            "title": "Max Sq Ft",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum living area in square feet. 0 = any.",
            "default": 0
          },
          "yearBuiltMin": {
            "title": "Min Year Built",
            "minimum": 0,
            "type": "integer",
            "description": "Earliest construction year, e.g. 2000. 0 = any.",
            "default": 0
          },
          "yearBuiltMax": {
            "title": "Max Year Built",
            "minimum": 0,
            "type": "integer",
            "description": "Latest construction year, e.g. 2020. 0 = any.",
            "default": 0
          },
          "maxHoa": {
            "title": "Max HOA ($/month)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum HOA fee in USD per month. 0 = any.",
            "default": 0
          },
          "sortBy": {
            "title": "Sort By",
            "enum": [
              "days",
              "featured",
              "pricelow",
              "pricehigh",
              "beds",
              "baths",
              "size",
              "zestimate",
              "lot"
            ],
            "type": "string",
            "description": "Sort order for the results.",
            "default": "days"
          },
          "daysOnZillow": {
            "title": "Listed Within (days)",
            "enum": [
              "1",
              "7",
              "14",
              "30",
              "90",
              "180",
              "365"
            ],
            "type": "string",
            "description": "Only return listings posted within this many days. Leave empty for any age."
          },
          "keywords": {
            "title": "Keywords",
            "type": "string",
            "description": "Free-text keyword to match in the listing, e.g. \"pool\" or \"mountain view\". Leave empty for all.",
            "default": ""
          },
          "mustHavePool": {
            "title": "Must Have Pool",
            "type": "boolean",
            "description": "Only return listings with a pool.",
            "default": false
          },
          "mustHaveGarage": {
            "title": "Must Have Garage",
            "type": "boolean",
            "description": "Only return listings with a garage.",
            "default": false
          },
          "mustHaveAC": {
            "title": "Must Have A/C",
            "type": "boolean",
            "description": "Only return listings with air conditioning.",
            "default": false
          },
          "has3DTour": {
            "title": "Has 3D Tour",
            "type": "boolean",
            "description": "Only return listings that offer a 3D virtual tour.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Proxy settings. Leave empty to use Apify Residential (US) proxy, which is required for Zillow.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}