{
  "openapi": "3.0.1",
  "info": {
    "title": "Zillow Scraper | from $0.50/1K | Sale, Rent & Sold",
    "description": "Search Zillow homes for sale, rentals and sold listings by city, ZIP or URL. Export CSV/JSON. Paid plans: $0.50/1K basic or $0.80/1K detailed rows. Free: $1/$2 per 1K, limited to 100 basic or 25 detailed properties per collection.",
    "version": "0.5",
    "x-build-id": "JbxN74k691D1sBxVu"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/x_guru~zillow-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-x_guru-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/x_guru~zillow-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-x_guru-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/x_guru~zillow-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-x_guru-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": "Cities or ZIP codes",
            "maxItems": 100,
            "type": "array",
            "description": "Enter US locations, one per entry: Austin, TX or 90210. Leave empty if you only want to use Zillow URLs, property IDs or addresses. Locations without an explicit listing type search homes for sale.",
            "items": {
              "type": "string"
            }
          },
          "listingType": {
            "title": "Listing type",
            "enum": [
              "sale",
              "rent",
              "sold"
            ],
            "type": "string",
            "description": "Choose For sale, For rent or Sold for location searches. Leave unset when using a Zillow search URL to preserve its listing type. An explicit choice overrides the URL's listing-type filter."
          },
          "maxResults": {
            "title": "Maximum results per run",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum unique rows to save (1–100,000 on paid plans), subject to source availability, collection limits and budget. Free: up to 100 basic results or 25 properties when collecting details across one collection and its continuation chain. Entering a larger number does not raise the Free allowance. Use Max total charge in Apify run settings to cap spending.",
            "default": 100
          },
          "includeDetails": {
            "title": "Add full property details",
            "type": "boolean",
            "description": "Paid plans: $0.80/1,000 successful detailed rows; Free: $2.00/1,000. This replaces the basic charge ($0.50 paid / $1.00 Free). Photo URLs and available histories are included. Free detailed collections are capped at 25 properties across continuation batches. Failed enrichment may retain a basic row at the basic rate. Direct property inputs always fetch details.",
            "default": false
          },
          "startUrls": {
            "title": "Zillow search or property URLs",
            "maxItems": 100,
            "type": "array",
            "description": "Paste Zillow URLs, one per entry. Search URLs preserve their filters unless you explicitly change listing type or filters below. Property URLs must contain a ZPID and always fetch details.",
            "items": {
              "type": "object"
            }
          },
          "minPrice": {
            "title": "Minimum price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Set a minimum asking price. For rentals, use monthly rent in US dollars."
          },
          "maxPrice": {
            "title": "Maximum price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Set a maximum asking price or monthly rental price in US dollars."
          },
          "minBedrooms": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Enter the smallest number of bedrooms to include."
          },
          "maxBedrooms": {
            "title": "Maximum bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Enter the largest number of bedrooms to include."
          },
          "minBathrooms": {
            "title": "Minimum bathrooms",
            "minimum": 0,
            "type": "number",
            "description": "Enter the smallest number of bathrooms to include, for example 2 or 2.5."
          },
          "minSquareFeet": {
            "title": "Minimum living area (sq ft)",
            "minimum": 0,
            "type": "integer",
            "description": "Enter the minimum interior living area in square feet."
          },
          "maxSquareFeet": {
            "title": "Maximum living area (sq ft)",
            "minimum": 0,
            "type": "integer",
            "description": "Enter the maximum interior living area in square feet."
          },
          "zpids": {
            "title": "Property IDs (ZPIDs)",
            "maxItems": 100,
            "type": "array",
            "description": "Enter numeric Zillow property IDs, one per entry. Find the ID before _zpid in a property URL. Duplicates are removed across input methods.",
            "items": {
              "type": "string"
            }
          },
          "addresses": {
            "title": "Full US property addresses",
            "maxItems": 100,
            "type": "array",
            "description": "Include street number, unit if applicable, city, two-letter state and five-digit ZIP. Only an exact address and unit match is saved; ambiguous or unmatched inputs are reported separately.",
            "items": {
              "type": "string"
            }
          },
          "propertyDatasetId": {
            "title": "Property list from Apify Dataset",
            "type": "string",
            "description": "Optional: paste the 17-character Dataset ID from a previous Zillow search or your own import. The Actor reads up to 100,000 rows, freezes the property list, and collects details for each unique valid property. You must have read access. Invalid rows are reported separately."
          },
          "datasetField": {
            "title": "Property identifier column",
            "enum": [
              "zpid",
              "url"
            ],
            "type": "string",
            "description": "Choose the source Dataset column: zpid for numeric property IDs, or url for Zillow property URLs containing a ZPID.",
            "default": "zpid"
          },
          "resumeFromRunId": {
            "title": "Previous run ID",
            "type": "string",
            "description": "Paste the finished run ID from this same Actor and account. Prefer copying the full PAGINATION.nextInput from the previous run. Keep the query unchanged. This run saves and charges only new rows, plus the standard start fee. Maximum results per run and the Apify budget both apply to this new batch."
          },
          "advanced": {
            "title": "Collection limits",
            "type": "object",
            "description": "Leave these settings unchanged for your first run. Optional limits control how much work one batch can do. Free runs additionally cap requests at 40, time at 180 seconds and compressed downloads at 5 MB; higher input settings cannot raise those caps.",
            "properties": {
              "maxRequests": {
                "title": "Maximum requests",
                "type": "integer",
                "editor": "number",
                "description": "Stop after this many requests and save continuation input. Keep 80 for a first run; increasing it can increase blocking and cost.",
                "default": 80,
                "minimum": 1,
                "maximum": 10000
              },
              "maxRunSeconds": {
                "title": "Maximum collection time (seconds)",
                "type": "integer",
                "editor": "number",
                "description": "Stop collection after this time. Allow extra time in the Actor run timeout for saving results and the summary.",
                "default": 600,
                "minimum": 10,
                "maximum": 3600
              },
              "maxDownloadMegabytes": {
                "title": "Maximum downloaded data (MB)",
                "type": "number",
                "editor": "number",
                "description": "Limit compressed response traffic. This is a traffic limit, not a dollar budget.",
                "default": 100,
                "minimum": 1,
                "maximum": 1000
              },
              "requestDelaySeconds": {
                "title": "Delay between requests (seconds)",
                "type": "number",
                "editor": "number",
                "description": "Space requests out. A longer delay makes collection slower and does not guarantee access.",
                "default": 0.3,
                "minimum": 0,
                "maximum": 10
              },
              "requestTimeoutSeconds": {
                "title": "Request timeout (seconds)",
                "type": "integer",
                "editor": "number",
                "description": "Give each request this much time to finish.",
                "default": 25,
                "minimum": 5,
                "maximum": 60
              },
              "maxRetries": {
                "title": "Retries for temporary errors",
                "type": "integer",
                "editor": "number",
                "description": "Retry temporary connection, rate-limit and server errors. Recovery is automatic and bounded by the collection limits.",
                "default": 2,
                "minimum": 0,
                "maximum": 3
              },
              "maxSplitDepth": {
                "title": "Maximum map split depth",
                "type": "integer",
                "editor": "number",
                "description": "Split crowded map areas to reach more listings. More splitting adds requests; complete coverage is not guaranteed.",
                "default": 4,
                "minimum": 0,
                "maximum": 8
              }
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}