{
  "openapi": "3.0.1",
  "info": {
    "title": "Zillow Sold Comps Scraper: Comparable Sales & ARV",
    "description": "Get sold comps from Zillow for any US address: the most similar recent sales nearby with sale price, $/sqft, days on market and a similarity score, plus a comp-based value estimate. ARV for flips, list prices in non-disclosure states.",
    "version": "0.0",
    "x-build-id": "tc1FMKHvCnW2mbxwn"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/epicscrapers~zillow-sold-comps-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-epicscrapers-zillow-sold-comps-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/epicscrapers~zillow-sold-comps-scraper/runs": {
      "post": {
        "operationId": "runs-sync-epicscrapers-zillow-sold-comps-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/epicscrapers~zillow-sold-comps-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-epicscrapers-zillow-sold-comps-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": {
          "subjects": {
            "title": "Properties to comp",
            "type": "array",
            "description": "The homes you want comps for, one per line: a US street address (1916 N 46th St, Seattle, WA 98103), a Zillow property URL or a zpid. Works for homes on or off the market; add hundreds at once.\n\nAfter-repair value (ARV): add a | and the home's facts after the work, e.g. \"1916 N 46th St, Seattle, WA 98103 | 3 bd, 2 ba, 1700 sqft\". Use + or - for changes: \"| +1 bd, +400 sqft\". You can also set \"built 2026\" or a home type (house, townhome, condo, multi-family). Add the same home with and without | to compare as-is and after-repair values.",
            "items": {
              "type": "string"
            }
          },
          "maxComps": {
            "title": "Comps per property",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many comparable sales to return for each property, best matches first. 5–10 is typical for an appraisal or CMA; use more for market research.",
            "default": 10
          },
          "includeDetails": {
            "title": "Include full property details of each comp",
            "type": "boolean",
            "description": "Adds the full property page to every comp: description, all photos, listing agent and broker contacts, full price and tax history, schools, HOA fee, walk score, climate risk and 150+ facts (condition, heating, parking, renovations…). Useful to judge comp quality. Charged as an extra event per comp.",
            "default": false
          },
          "soldWithinDays": {
            "title": "Sold within (days)",
            "minimum": 1,
            "maximum": 1095,
            "type": "integer",
            "description": "Only sales from the last N days. 90 or 180 for current value; 365 in slow or rural markets. Maximum 1,095 (3 years).",
            "default": 180
          },
          "radiusMiles": {
            "title": "Search radius (miles)",
            "minimum": 0.05,
            "maximum": 25,
            "type": "number",
            "description": "Distance from the property to look for comps. 0.5 in dense cities, 1 in suburbs, 3–5 in rural areas. Decimals allowed (0.25).",
            "default": 1
          },
          "expandRadius": {
            "title": "Widen the radius when there are too few comps",
            "type": "boolean",
            "description": "When fewer sales than requested match inside the radius, search again at double the radius, up to the maximum below. Closer comps still rank higher.",
            "default": true
          },
          "maxRadiusMiles": {
            "title": "Maximum radius (miles)",
            "minimum": 0.05,
            "maximum": 25,
            "type": "number",
            "description": "The widest the search may go when widening is on.",
            "default": 3
          },
          "sameHomeType": {
            "title": "Same home type only",
            "type": "boolean",
            "description": "Compare houses with houses, condos with condos, townhomes with townhomes. Turn off for mixed or unusual properties.",
            "default": true
          },
          "bedroomsMatch": {
            "title": "Bedrooms",
            "enum": [
              "exact",
              "1",
              "2",
              "any"
            ],
            "type": "string",
            "description": "How far a comp's bedroom count may be from the property's.",
            "default": "1"
          },
          "bathroomsMatch": {
            "title": "Bathrooms",
            "enum": [
              "exact",
              "0.5",
              "1",
              "2",
              "any"
            ],
            "type": "string",
            "description": "How far a comp's bathroom count may be from the property's (half baths count as 0.5).",
            "default": "1"
          },
          "livingAreaMatch": {
            "title": "Living area (sqft)",
            "enum": [
              "10",
              "15",
              "20",
              "25",
              "30",
              "40",
              "50",
              "any"
            ],
            "type": "string",
            "description": "How far a comp's living area may be from the property's, in percent. Appraisers usually stay within ±20–25%.",
            "default": "25"
          },
          "yearBuiltMatch": {
            "title": "Year built",
            "enum": [
              "5",
              "10",
              "20",
              "30",
              "any"
            ],
            "type": "string",
            "description": "How far a comp's year built may be from the property's. Useful to keep new construction apart from older homes.",
            "default": "any"
          },
          "rankBy": {
            "title": "Pick comps by",
            "enum": [
              "similarity",
              "recent",
              "closest"
            ],
            "type": "string",
            "description": "Which matching sales come first. Best match uses a similarity score (0–100) from distance, size, sale date, bedrooms, bathrooms, age and lot size.",
            "default": "similarity"
          },
          "onlyPricedComps": {
            "title": "Only comps with a price",
            "type": "boolean",
            "description": "Skip sales without any price, so every comp you pay for can be used to value the property. Unpriced sales are not charged.",
            "default": true
          },
          "useListPriceWhenUndisclosed": {
            "title": "Use the last list price where sale prices are private",
            "type": "boolean",
            "description": "Texas, Utah and other non-disclosure states hide sale prices. With this on, comps there use the last asking price before the sale (from the price history) for $/sqft and the value estimate, marked valuationBasis: lastListPrice. The sale price itself is never invented.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}