{
  "openapi": "3.0.1",
  "info": {
    "title": "Zillow Search Scraper - Listings by City or ZIP",
    "description": "Scrape Zillow listings by city, ZIP code, county, or neighborhood, or paste a Zillow search URL. Get price, Zestimate, rent estimate, beds, baths, size, lot, address, coordinates, and broker across for-sale, for-rent, and sold homes. Breaks Zillow's 820-result cap. Export to JSON, CSV, or Excel.",
    "version": "0.1",
    "x-build-id": "SnUz0TgNIh9F8wpqm"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/studioxl~zillow-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-studioxl-zillow-search-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/studioxl~zillow-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-studioxl-zillow-search-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/studioxl~zillow-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-studioxl-zillow-search-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": {
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Cities, ZIP codes, counties, or neighborhoods. For example \"Austin, TX\", \"78731\" or \"Brooklyn, NY\". Anything that cannot be matched is reported in the log and skipped rather than failing the run.",
            "items": {
              "type": "string"
            }
          },
          "searchUrls": {
            "title": "…or Zillow search URLs",
            "type": "array",
            "description": "Paste the address bar from a Zillow search you have already set up, filters and all. Use this when you want a filter this Actor does not expose. Pasted URLs are used exactly as given, so the large-area splitting below cannot apply to them.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "listingType": {
            "title": "What to look for",
            "enum": [
              "forSale",
              "forRent",
              "sold"
            ],
            "type": "string",
            "description": "For sale, for rent, or recently sold.",
            "default": "forSale"
          },
          "maxItems": {
            "title": "Maximum results",
            "minimum": 0,
            "type": "integer",
            "description": "Your spend limit for the whole run. The search stops as soon as this many results have been delivered. Set 0 for no limit.",
            "default": 100
          },
          "maxItemsPerLocation": {
            "title": "Maximum per location",
            "minimum": 0,
            "type": "integer",
            "description": "Cap results from each location separately, so one big city cannot use up the whole run. Set 0 for no per-location cap.",
            "default": 0
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Total price for sales and sold listings; monthly rent for rentals."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Total price for sales and sold listings; monthly rent for rentals."
          },
          "minBedrooms": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Fewest bedrooms a listing may have."
          },
          "maxBedrooms": {
            "title": "Maximum bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Most bedrooms a listing may have."
          },
          "minBathrooms": {
            "title": "Minimum bathrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Fewest bathrooms a listing may have."
          },
          "minLivingArea": {
            "title": "Minimum living area",
            "minimum": 0,
            "type": "integer",
            "description": "Smallest interior area, in square feet."
          },
          "maxLivingArea": {
            "title": "Maximum living area",
            "minimum": 0,
            "type": "integer",
            "description": "Largest interior area, in square feet."
          },
          "minLotSize": {
            "title": "Minimum lot size",
            "minimum": 0,
            "type": "integer",
            "description": "Smallest lot, in square feet."
          },
          "maxLotSize": {
            "title": "Maximum lot size",
            "minimum": 0,
            "type": "integer",
            "description": "Largest lot, in square feet."
          },
          "minYearBuilt": {
            "title": "Built after",
            "minimum": 1800,
            "maximum": 2100,
            "type": "integer",
            "description": "Earliest year of construction."
          },
          "maxYearBuilt": {
            "title": "Built before",
            "minimum": 1800,
            "maximum": 2100,
            "type": "integer",
            "description": "Latest year of construction."
          },
          "daysOnZillow": {
            "title": "Listed within",
            "enum": [
              "",
              "1",
              "7",
              "14",
              "30",
              "90"
            ],
            "type": "string",
            "description": "Only listings posted within this window. Useful on a schedule to catch new listings.",
            "default": ""
          },
          "hasPool": {
            "title": "Has a pool",
            "type": "boolean",
            "description": "Only listings with a pool.",
            "default": false
          },
          "isWaterfront": {
            "title": "Waterfront",
            "type": "boolean",
            "description": "Only listings on the water.",
            "default": false
          },
          "singleStoryOnly": {
            "title": "Single story only",
            "type": "boolean",
            "description": "Only single-story homes.",
            "default": false
          },
          "hasGarage": {
            "title": "Has a garage",
            "type": "boolean",
            "description": "Only listings with a garage.",
            "default": false
          },
          "hasAirConditioning": {
            "title": "Has air conditioning",
            "type": "boolean",
            "description": "Only listings with air conditioning.",
            "default": false
          },
          "hasBasement": {
            "title": "Has a basement",
            "type": "boolean",
            "description": "Only listings with a basement.",
            "default": false
          },
          "mustHaveOpenHouse": {
            "title": "Has an open house",
            "type": "boolean",
            "description": "Only listings with an open house scheduled.",
            "default": false
          },
          "mustHave3dTour": {
            "title": "Has a 3D tour",
            "type": "boolean",
            "description": "Only listings with a 3D tour.",
            "default": false
          },
          "sortBy": {
            "title": "Sort results by",
            "enum": [
              "",
              "days",
              "priced",
              "pricea",
              "lot",
              "size",
              "beds"
            ],
            "type": "string",
            "description": "Which listings come back first. Only matters when Maximum results is lower than the number of matches.",
            "default": ""
          },
          "splitLargeAreas": {
            "title": "Cover areas larger than one search can return",
            "type": "boolean",
            "description": "Zillow never returns more than 820 results for a single search, however many matches it reports. Austin reports 5,717 and hands back 820. With this on, an area holding more than that is split into smaller areas and each is searched separately, so you get the whole set. Turn it off to stop at 820 per location and spend less.",
            "default": true
          },
          "respectRobotsTxt": {
            "title": "Respect robots.txt",
            "type": "boolean",
            "description": "Zillow's robots.txt disallows the filtered-search route this Actor depends on, so switching this on stops the Actor working. It will say so plainly rather than return an empty result set. It is here so the choice is yours and is not hidden.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Maximum parallel requests",
            "minimum": 1,
            "maximum": 15,
            "type": "integer",
            "description": "Measured on the detail Actor: 10 parallel is clean, 15 doubles the block rate for no gain.",
            "default": 10
          },
          "maxRequestsPerMinute": {
            "title": "Request rate limit",
            "minimum": 10,
            "maximum": 600,
            "type": "integer",
            "description": "Usually the setting that decides how long a run takes. 300 measured as the sweet spot.",
            "default": 300
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Zillow rejects datacenter IPs on search and listing pages. A measured A/B returned 60 of 60 properties on residential and nothing at all on datacenter. Residential US is the default and is what this Actor is priced around.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}