{
  "openapi": "3.0.1",
  "info": {
    "title": "Zillow Scraper — Homes for Sale, Rent, Sold & Zestimates",
    "description": "Scrape Zillow homes for sale, for rent and recently sold from search URLs or any US city, ZIP or neighborhood: price, Zestimate, beds, baths, sqft, photos, agent, open houses, price cuts.",
    "version": "0.1",
    "x-build-id": "dwGQJhB5cZ1MtaDOn"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tortuga~zillow-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tortuga-zillow-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/tortuga~zillow-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tortuga-zillow-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/tortuga~zillow-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tortuga-zillow-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": "Start URLs",
            "type": "array",
            "description": "Zillow search URLs copied from the browser (any filters, sort, drawn or zoomed map area: the URL's searchQueryState is used as is), e.g. https://www.zillow.com/austin-tx/, .../austin-tx/rentals/, .../austin-tx/sold/ or .../homes/for_sale/?searchQueryState=..., or property URLs (.../homedetails/..._zpid/), which return that home with its details. Leave empty if you use Locations below.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "US cities, ZIP codes, neighborhoods, counties or states, one per line, e.g. 'Austin, TX', '78704', 'Williamsburg, Brooklyn, NY', 'Travis County, TX', 'TX'. Each is searched separately (Zillow's own place lookup picks the region).",
            "items": {
              "type": "string"
            }
          },
          "listingType": {
            "title": "For sale, for rent or sold",
            "enum": [
              "for_sale",
              "for_rent",
              "sold"
            ],
            "type": "string",
            "description": "Which listings the Locations searches return (start URLs keep their own: /rentals/ = for rent, /sold/ = recently sold).",
            "default": "for_sale"
          },
          "homeTypes": {
            "title": "Home types",
            "type": "array",
            "description": "Only these home types. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "houses",
                "townhomes",
                "condos",
                "apartments",
                "multi_family",
                "manufactured",
                "land"
              ],
              "enumTitles": [
                "Houses",
                "Townhomes",
                "Condos / co-ops",
                "Apartments (rentals)",
                "Multi-family",
                "Manufactured",
                "Lots / land"
              ]
            }
          },
          "minPrice": {
            "title": "Min price ($)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum list price, or minimum monthly rent for rentals, in US dollars."
          },
          "maxPrice": {
            "title": "Max price ($)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum list price, or maximum monthly rent for rentals, in US dollars."
          },
          "minBeds": {
            "title": "Min bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of bedrooms (0 = studio)."
          },
          "maxBeds": {
            "title": "Max bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of bedrooms."
          },
          "minBaths": {
            "title": "Min bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of bathrooms."
          },
          "minSqft": {
            "title": "Min living area (sq ft)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum interior living area in square feet."
          },
          "maxSqft": {
            "title": "Max living area (sq ft)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum interior living area in square feet."
          },
          "minLotSqft": {
            "title": "Min lot size (sq ft)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum lot size in square feet (1 acre = 43,560 sq ft)."
          },
          "maxLotSqft": {
            "title": "Max lot size (sq ft)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum lot size in square feet (1 acre = 43,560 sq ft)."
          },
          "minYearBuilt": {
            "title": "Built in or after (year)",
            "minimum": 1700,
            "type": "integer",
            "description": "Only homes built in or after this year."
          },
          "maxYearBuilt": {
            "title": "Built in or before (year)",
            "minimum": 1700,
            "type": "integer",
            "description": "Only homes built in or before this year."
          },
          "maxHoaFee": {
            "title": "Max HOA fee ($/month)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum monthly HOA fee (0 = no HOA fee)."
          },
          "daysOnZillow": {
            "title": "Days on Zillow",
            "enum": [
              "1",
              "7",
              "14",
              "30",
              "90",
              "6m",
              "12m",
              "24m",
              "36m"
            ],
            "type": "string",
            "description": "Only listings that came on Zillow within this period. For recently sold searches: sold within this period."
          },
          "keywords": {
            "title": "Keywords",
            "type": "string",
            "description": "Words the listing must mention, as in Zillow's keyword filter, e.g. 'pool', 'waterfront', 'ADU'."
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "newest",
              "relevance",
              "price_low",
              "price_high",
              "sqft",
              "lot_size",
              "beds",
              "baths",
              "zestimate_high",
              "zestimate_low"
            ],
            "type": "string",
            "description": "Order of the results (what you get first when Max items is lower than the number of listings). 'Newest' = newest listings first; for sold searches, most recently sold first. A start URL with its own searchQueryState keeps the sort chosen on the site.",
            "default": "newest"
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many listings in total (all searches together). Each listing is one charged result. Zillow shows at most 820 listings per search; larger searches are split automatically (see below).",
            "default": 100
          },
          "includeDetails": {
            "title": "Include property details",
            "type": "boolean",
            "description": "Also open each home's Zillow page: full description, year built, HOA fee, listing agent and brokerage, MLS id, all photos, facts and features, page views and saves, and, where Zillow shows them on the page, price history, tax history and nearby schools (rentals; price history also on Showcase listings). Charged as an extra 'detail' event per listing.",
            "default": false
          },
          "splitLargeSearches": {
            "title": "Split searches over 820 listings",
            "type": "boolean",
            "description": "Zillow serves at most 820 listings per search (20 pages). When a search has more and Max items asks for more, the map area is cut into smaller tiles so every listing is reachable (tiny count requests; results then come tile by tile).",
            "default": true
          },
          "onlyNewOrChanged": {
            "title": "Only new or changed items",
            "type": "boolean",
            "description": "Remember what earlier runs of this search returned and output only new items or items whose price/status changed. Use with a Schedule; unchanged items are not charged. With this on, Max items is the number of listings checked per run (e.g. the newest 200).",
            "default": false
          },
          "monitoringKey": {
            "title": "Monitoring key",
            "type": "string",
            "description": "Name for this watch, so several schedules on the same search stay separate; defaults to a key derived from the search input"
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Zillow blocks datacenter IPs (PerimeterX), so the default is Apify RESIDENTIAL proxy in the US, billed per GB to your account: about $0.01 per 1,000 listings from searches and about $0.8-1.5 per 1,000 property pages (Include property details). Blocked answers are retried on a new IP. Unblocker is not needed.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}