{
  "openapi": "3.0.1",
  "info": {
    "title": "Zillow Property Listings Scraper",
    "description": "For-sale, for-rent and recently-sold property listings from Zillow search. One flat row per property: address, price, beds, baths, living area, lot size, home type, days on Zillow, coordinates, broker and photo.",
    "version": "0.1",
    "x-build-id": "h6I7vrmOGOiEs0hlW"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/superslowsloth~zillow-listings/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-superslowsloth-zillow-listings",
        "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/superslowsloth~zillow-listings/runs": {
      "post": {
        "operationId": "runs-sync-superslowsloth-zillow-listings",
        "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/superslowsloth~zillow-listings/run-sync": {
      "post": {
        "operationId": "run-sync-superslowsloth-zillow-listings",
        "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 or Zillow search URL",
            "type": "string",
            "description": "Where to search. A city and state (\"Austin, TX\"), a ZIP code (\"90210\"), a county (\"Miami-Dade County, FL\") or a neighbourhood all work. You can also paste a Zillow search URL straight from your browser, in which case any filters already on that URL - waterfront, school rating, keywords - are kept and the fields below are applied on top of them."
          },
          "listingType": {
            "title": "Listing type",
            "enum": [
              "forSale",
              "forRent",
              "sold"
            ],
            "type": "string",
            "description": "Which Zillow tab to read. For rent returns individual homes and apartment buildings; a building has no single price, so its row carries the cheapest advertised unit and is flagged with is_building.",
            "default": "forSale"
          },
          "maxResults": {
            "title": "Maximum listings",
            "minimum": 1,
            "maximum": 820,
            "type": "integer",
            "description": "How many rows to return. Zillow serves 41 listings per page and stops paginating at 20 pages, so 820 is the ceiling for any one search however many listings match. Narrow the location or the price band to reach the rest.",
            "default": 100
          },
          "priceMin": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price to include. For sale and sold this is the asking or sale price; for rent it is the monthly rent, which Zillow filters on a different field - the actor picks the right one for the listing type."
          },
          "priceMax": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Highest price to include. Same field-per-listing-type rule as the minimum above. Leave both empty for no price filter."
          },
          "bedsMin": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Only listings with at least this many bedrooms. Apartment-building rows have no single bedroom count and are excluded by Zillow when this is set."
          },
          "bathsMin": {
            "title": "Minimum bathrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Only listings with at least this many bathrooms. Zillow counts a half bath as 0.5 in the data but accepts whole numbers here."
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "default",
              "newest",
              "priceLowToHigh",
              "priceHighToLow",
              "bedrooms",
              "squareFeet",
              "lotSize"
            ],
            "type": "string",
            "description": "How Zillow orders the result set, which decides which listings you get when maxResults is smaller than the number of matches. Leave on Zillow default to get the same order the website shows.",
            "default": "default"
          },
          "requestIntervalSecs": {
            "title": "Seconds between pages",
            "minimum": 0,
            "maximum": 60,
            "type": "integer",
            "description": "How long to wait between result pages. Zillow refuses bursts from one exit address, and the run answers a refusal by backing off onto a fresh address; raising this trades wall-clock time for fewer retries.",
            "default": 1
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Required in practice. Zillow refuses datacenter addresses outright and is uneven even on residential ones - the same page answers 200 from one address and 403 from another - so the run rotates to a fresh address and retries rather than failing. Turning this off will produce blocks rather than data.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}