{
  "openapi": "3.0.1",
  "info": {
    "title": "Zillow Detail Scraper",
    "description": "Checking Zillow homes one tab at a time slows every deal. Get full property details from links, addresses or zpids: price, Zestimate, rent estimate, price and tax history, schools, comps, agents, plus cap rate and cash-on-cash return. No login.",
    "version": "1.0",
    "x-build-id": "XahfoROyIQOFQsgCC"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawl_craft~zillow-detail-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawl_craft-zillow-detail-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/crawl_craft~zillow-detail-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawl_craft-zillow-detail-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/crawl_craft~zillow-detail-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawl_craft-zillow-detail-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",
        "required": [
          "urls"
        ],
        "properties": {
          "urls": {
            "title": "🔗 Zillow links, addresses or zpids (bulk)",
            "minItems": 1,
            "type": "array",
            "description": "One entry per line. Accepted: a home link (https://www.zillow.com/homedetails/Address/12345678_zpid/), a building or apartment link (/b/..., /apartments/..., /community/...), a plain address such as 18 Zelma Dr, Greenville, SC 29617, or a numeric zpid. Any mix works.",
            "items": {
              "type": "string"
            }
          },
          "addresses": {
            "title": "📮 Extra addresses",
            "type": "array",
            "description": "Optional addresses, one per line, in the form 123 Main St, City, State. Add the unit for apartments (for example 67 Morton St APT 6E, New York, NY). Each address is matched to one Zillow property.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "zpids": {
            "title": "🆔 Extra zpids",
            "type": "array",
            "description": "Optional Zillow property IDs, one per line (for example 11026031). The fastest way to look up a home when you already have its ID.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "minMatchConfidence": {
            "title": "🎯 Minimum address match",
            "minimum": 0,
            "maximum": 1,
            "type": "number",
            "description": "From 0 to 1. An address that matches a Zillow property with less confidence than this is not guessed: it is listed in the Failed inputs table with its best candidates instead.",
            "default": 0.75
          },
          "extractBuildingUnits": {
            "title": "🏢 Units from building pages",
            "enum": [
              "none",
              "all",
              "forRent",
              "forSale",
              "sold",
              "offMarket"
            ],
            "type": "string",
            "description": "For building links, also scrape each individual unit. Choose which units to open: none (building summary only), all, or only units for rent, for sale, sold or off market.",
            "default": "none"
          },
          "maxUnitsPerBuilding": {
            "title": "🔢 Max units per building",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Most units opened for each building page. 0 means every matching unit.",
            "default": 10
          },
          "includeHistory": {
            "title": "📜 Price and tax history",
            "type": "boolean",
            "description": "Add price history, tax history, assigned schools, nearby homes, agents and foreclosure details when the page does not already carry them.",
            "default": true
          },
          "includeComps": {
            "title": "🏬 Comparable homes and ARV",
            "type": "boolean",
            "description": "Add Zillow's comparable homes, their median price per square foot and an after-repair-value estimate.",
            "default": true
          },
          "includeZestimateHistory": {
            "title": "📈 Zestimate history",
            "type": "boolean",
            "description": "Add 10 years of monthly Zestimate values plus the 1, 5 and 10 year change.",
            "default": true
          },
          "includeMarketData": {
            "title": "🔥 Market temperature",
            "type": "boolean",
            "description": "Add the local market temperature and median days to pending, plus offer strength (offer as a percent of list price needed to win) for homes for sale.",
            "default": true
          },
          "includeWalkScore": {
            "title": "🚶 Walk, transit and bike scores",
            "type": "boolean",
            "description": "Add the walk, transit and bike scores of the address.",
            "default": true
          },
          "includeClimateRisk": {
            "title": "🌊 Climate risk",
            "type": "boolean",
            "description": "Add flood (including FEMA zone), fire, heat, wind and air risk.",
            "default": true
          },
          "photos": {
            "title": "📸 Photos",
            "enum": [
              "none",
              "urls",
              "allSizes"
            ],
            "type": "string",
            "description": "none skips photos, urls returns the largest picture and caption of each photo, allSizes returns every available size.",
            "default": "urls"
          },
          "maxPhotos": {
            "title": "🌄 Max photos per property",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Most photos returned per property. 0 means all of them.",
            "default": 0
          },
          "maxNearbyHomes": {
            "title": "🏠 Max nearby homes",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Most nearby homes returned per property. 0 means none.",
            "default": 10
          },
          "includeRawFacts": {
            "title": "🧾 Full MLS facts",
            "type": "boolean",
            "description": "Add every MLS fact Zillow shows to each property. Makes rows larger.",
            "default": false
          },
          "includeRaw": {
            "title": "📦 Everything Zillow returned",
            "type": "boolean",
            "description": "Add every raw field Zillow returned for the property. Makes rows much larger.",
            "default": false
          },
          "investorAnalysis": {
            "title": "💹 Rental investment model",
            "type": "boolean",
            "description": "For every property with a price (or Zestimate) and a rent estimate, add the rental investment figures.",
            "default": true
          },
          "investorAssumptions": {
            "title": "🧮 Investor assumptions",
            "type": "object",
            "description": "Your own assumptions for the rental investment figures. Leave a value empty to use its default.",
            "properties": {
              "downPaymentPct": {
                "title": "Down payment (%)",
                "type": "number",
                "description": "Down payment as a percent of the price (0 to 100).",
                "editor": "number",
                "minimum": 0,
                "maximum": 100
              },
              "interestRatePct": {
                "title": "Interest rate (%)",
                "type": "number",
                "description": "Yearly mortgage rate. Leave empty to use the default.",
                "editor": "number",
                "minimum": 0,
                "maximum": 30
              },
              "loanTermYears": {
                "title": "Loan term (years)",
                "type": "number",
                "description": "Length of the mortgage in years.",
                "editor": "number",
                "minimum": 1,
                "maximum": 50
              },
              "closingCostPct": {
                "title": "Closing costs (%)",
                "type": "number",
                "description": "Closing costs as a percent of the price.",
                "editor": "number",
                "minimum": 0,
                "maximum": 20
              },
              "rehabBudget": {
                "title": "Rehab budget ($)",
                "type": "number",
                "description": "Renovation money added to the cash invested.",
                "editor": "number",
                "minimum": 0
              },
              "vacancyPct": {
                "title": "Vacancy (%)",
                "type": "number",
                "description": "Vacancy allowance (%).",
                "editor": "number",
                "minimum": 0,
                "maximum": 100
              },
              "maintenancePct": {
                "title": "Maintenance (%)",
                "type": "number",
                "description": "Maintenance allowance (%).",
                "editor": "number",
                "minimum": 0,
                "maximum": 100
              },
              "managementPct": {
                "title": "Management (%)",
                "type": "number",
                "description": "Property management allowance (%).",
                "editor": "number",
                "minimum": 0,
                "maximum": 100
              },
              "capexPct": {
                "title": "Capex (%)",
                "type": "number",
                "description": "Capex allowance (%).",
                "editor": "number",
                "minimum": 0,
                "maximum": 100
              },
              "insuranceRatePct": {
                "title": "Insurance (% of price per year)",
                "type": "number",
                "description": "Insurance rate as a percent of the price per year.",
                "editor": "number",
                "minimum": 0,
                "maximum": 10
              },
              "rentOverride": {
                "title": "Rent override ($/month)",
                "type": "number",
                "description": "Fixed monthly rent. Leave empty to use the default.",
                "editor": "number",
                "minimum": 0
              }
            },
            "default": {
              "downPaymentPct": 20,
              "loanTermYears": 30,
              "closingCostPct": 3,
              "rehabBudget": 0,
              "vacancyPct": 5,
              "maintenancePct": 8,
              "managementPct": 8,
              "capexPct": 5,
              "insuranceRatePct": 0.5
            }
          },
          "monitor": {
            "title": "🔔 Compare with the previous run",
            "type": "boolean",
            "description": "Mark each property as new or changed since your last run and list events such as price cut, went pending, sold or back on market. Combine with a schedule to watch listings.",
            "default": false
          },
          "monitorOnlyChanges": {
            "title": "🆕 Only new or changed",
            "type": "boolean",
            "description": "With the monitor on, save only properties that are new or have an event. Unchanged properties are skipped and not billed.",
            "default": false
          },
          "maxItems": {
            "title": "📊 Max properties",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stop after this many properties are saved (buildings and unit pages count too). 0 means no cap. Free plan users get up to 10 properties per run; paid plans have no run limit.",
            "default": 10
          },
          "writeCsv": {
            "title": "📄 Also save a CSV file",
            "type": "boolean",
            "description": "Also store a flat CSV (one row per property) in the run's storage as properties.csv.",
            "default": false
          },
          "concurrency": {
            "title": "⚡ Properties in parallel",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many properties are processed at the same time. Lower it if many inputs fail.",
            "default": 4
          },
          "maxConcurrentRequests": {
            "title": "🚦 Parallel lookups",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Most lookups running at the same moment across the whole run. Lower it if many inputs fail.",
            "default": 3
          },
          "maxRetries": {
            "title": "🔁 Extra attempts",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Number of extra attempts for a lookup that failed. 0 means none.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy",
            "type": "object",
            "description": "Optional proxy settings for this run. Leave the default if you are unsure.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}