{
  "openapi": "3.0.1",
  "info": {
    "title": "Zillow API — $1.30/1K homes, sale, rent & sold",
    "description": "[$1.30/1K homes] Zillow API alternative: one HTTP request returns Zillow homes for sale, for rent or recently sold as JSON — price, beds, baths, sqft, Zestimate, sold date, address, coordinates. Full details add agent contact, price history and photos. No fee per request.",
    "version": "0.1",
    "x-build-id": "ThF6TvYp2bG1e8eHH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lergassy~zillow-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lergassy-zillow-api",
        "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/lergassy~zillow-api/runs": {
      "post": {
        "operationId": "runs-sync-lergassy-zillow-api",
        "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/lergassy~zillow-api/run-sync": {
      "post": {
        "operationId": "run-sync-lergassy-zillow-api",
        "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": [
          "listingType"
        ],
        "properties": {
          "listingType": {
            "title": "🏠 Listing type",
            "enum": [
              "forSale",
              "forRent",
              "sold"
            ],
            "type": "string",
            "description": "What to search for: homes <b>for sale</b>, <b>for rent</b> (houses, condos and apartment buildings) or <b>recently sold</b> homes with their sold date and price.",
            "default": "forSale"
          },
          "locations": {
            "title": "📍 Locations",
            "type": "array",
            "description": "One location per line, the way you would type it into Zillow: a city (<code>Austin, TX</code>), a ZIP code (<code>78704</code>), a neighborhood (<code>Zilker, Austin, TX</code>), a county (<code>Travis County, TX</code>) or a whole state (<code>Nevada</code>). Each location is searched separately and the rows say which one they came from.",
            "items": {
              "type": "string"
            }
          },
          "searchUrls": {
            "title": "🔗 Zillow search URLs",
            "type": "array",
            "description": "Zillow search pages copied from the browser, filters included (for example <code>https://www.zillow.com/austin-tx/houses/?searchQueryState=…</code>). Use this when the Zillow website already shows exactly the homes you want. Filters set below are added on top of what the URL carries.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "propertyUrls": {
            "title": "🏡 Property URLs, ZPIDs or addresses",
            "type": "array",
            "description": "Homes you already know: a Zillow property URL (<code>https://www.zillow.com/homedetails/…_zpid/</code>), an apartment-building URL, a bare ZPID (<code>331627751</code>) or a street address (<code>15000 Upland Willow Rd, Austin, TX 78724</code>). Each one returns a full property row with description, price history, photos, facts and listing contact — no search needed.",
            "items": {
              "type": "string"
            }
          },
          "includeDetails": {
            "title": "📄 Add full details to every search result",
            "type": "boolean",
            "description": "Open every home found by the search and add its full page: description, price history, all photos, facts and features (parking, heating, HOA, lot), listing agent and broker contact, MLS number, Zillow's own highlight phrases. Costs one extra request and one <i>Property detail</i> event per home. Leave off for a fast, cheap list.",
            "default": false
          },
          "maxItems": {
            "title": "🔢 Maximum results",
            "minimum": 0,
            "type": "integer",
            "description": "Hard cap on rows for the whole run, across all locations and URLs. The run stops the moment it is reached, so this is also your cost cap: results × price per result. Set 0 for no limit.",
            "default": 50
          },
          "bypassResultCap": {
            "title": "🗺️ Bypass Zillow's 820-result cap",
            "type": "boolean",
            "description": "Zillow shows at most 20 pages × 41 homes for one search. When a location has more, the scraper splits the map into smaller areas and searches each of them, so a whole city comes back complete. Turn off to stop at Zillow's first 820.",
            "default": true
          },
          "sort": {
            "title": "↕️ Sort order",
            "enum": [
              "relevance",
              "newest",
              "priceLow",
              "priceHigh",
              "beds",
              "baths",
              "sqft",
              "lot",
              "yearBuilt",
              "priceCut",
              "daysOnZillow"
            ],
            "type": "string",
            "description": "Order of the results, same options as Zillow's sort menu. Matters when <b>Maximum results</b> is smaller than the number of matching homes.",
            "default": "relevance"
          },
          "priceMin": {
            "title": "💵 Price from",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price in US dollars. For rentals this is the monthly rent."
          },
          "priceMax": {
            "title": "💵 Price up to",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price in US dollars (monthly rent for rentals)."
          },
          "bedsMin": {
            "title": "🛏️ Bedrooms from",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Minimum number of bedrooms. <code>0</code> includes studios."
          },
          "bedsMax": {
            "title": "🛏️ Bedrooms up to",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum number of bedrooms."
          },
          "bathsMin": {
            "title": "🛁 Bathrooms from",
            "minimum": 0,
            "maximum": 20,
            "type": "number",
            "description": "Minimum number of bathrooms, halves allowed (<code>1.5</code>)."
          },
          "homeTypes": {
            "title": "🏘️ Home types",
            "type": "array",
            "description": "Which kinds of home to include. Empty means all types.",
            "items": {
              "type": "string",
              "enum": [
                "house",
                "condo",
                "townhouse",
                "multiFamily",
                "apartment",
                "lot",
                "manufactured"
              ],
              "enumTitles": [
                "Houses",
                "Condos",
                "Townhomes",
                "Multi-family",
                "Apartments",
                "Lots / land",
                "Manufactured"
              ]
            },
            "default": []
          },
          "sqftMin": {
            "title": "📐 Square feet from",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum living area in square feet."
          },
          "sqftMax": {
            "title": "📐 Square feet up to",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum living area in square feet."
          },
          "lotSizeMin": {
            "title": "🌳 Lot size from (sqft)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum lot size in square feet (an acre is 43,560)."
          },
          "lotSizeMax": {
            "title": "🌳 Lot size up to (sqft)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum lot size in square feet."
          },
          "yearBuiltMin": {
            "title": "🏗️ Year built from",
            "minimum": 1700,
            "maximum": 2100,
            "type": "integer",
            "description": "Earliest construction year to include."
          },
          "yearBuiltMax": {
            "title": "🏗️ Year built up to",
            "minimum": 1700,
            "maximum": 2100,
            "type": "integer",
            "description": "Latest construction year to include."
          },
          "daysOnZillow": {
            "title": "📅 Listed within",
            "enum": [
              "any",
              "1",
              "7",
              "14",
              "30",
              "90",
              "6m",
              "12m",
              "24m",
              "36m"
            ],
            "type": "string",
            "description": "Only homes listed (or, for the <b>sold</b> type, sold) within this period.",
            "default": "any"
          },
          "sellerTypes": {
            "title": "🏷️ Seller and listing types (for sale)",
            "type": "array",
            "description": "Narrow for-sale results to who is selling. Empty means all of them. <b>Owner posted</b> is the FSBO filter investors look for; <b>Foreclosures</b>, <b>Auctions</b> and <b>Pre-foreclosures</b> are the distressed-property filters.",
            "items": {
              "type": "string",
              "enum": [
                "agentListed",
                "ownerPosted",
                "newConstruction",
                "foreclosure",
                "auction",
                "preForeclosure",
                "foreclosed",
                "comingSoon"
              ],
              "enumTitles": [
                "Agent listed",
                "Owner posted (FSBO)",
                "New construction",
                "Foreclosures",
                "Auctions",
                "Pre-foreclosures",
                "Foreclosed (bank owned)",
                "Coming soon"
              ]
            },
            "default": []
          },
          "includePending": {
            "title": "⏳ Include pending and under-contract homes",
            "type": "boolean",
            "description": "For-sale searches: also return homes that are pending or under contract (accepting backup offers). Off returns active listings only.",
            "default": false
          },
          "keywords": {
            "title": "🔍 Keywords",
            "type": "string",
            "description": "Words that must appear in the listing text, for example <code>pool</code>, <code>ADU</code>, <code>fixer</code>, <code>mother-in-law</code>. Same as the keyword box on Zillow."
          },
          "features": {
            "title": "✨ Must-have features",
            "type": "array",
            "description": "Home features the listing must have.",
            "items": {
              "type": "string",
              "enum": [
                "pool",
                "airConditioning",
                "garage",
                "waterfront",
                "singleStory",
                "basement",
                "view",
                "3dTour",
                "openHouse",
                "priceCut",
                "petsAllowed",
                "furnished",
                "inUnitLaundry"
              ],
              "enumTitles": [
                "Pool",
                "Air conditioning",
                "Garage",
                "Waterfront",
                "Single story",
                "Basement",
                "View (city, mountain, park, water)",
                "3D tour",
                "Open house scheduled",
                "Price cut",
                "Pets allowed (rentals)",
                "Furnished (rentals)",
                "In-unit laundry (rentals)"
              ]
            },
            "default": []
          },
          "hoaMax": {
            "title": "🏢 HOA fee up to (monthly)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum monthly HOA fee in dollars. <code>0</code> means no HOA at all."
          },
          "parkingSpotsMin": {
            "title": "🚗 Parking spots from",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Minimum number of parking spots."
          },
          "oneRowPerUnit": {
            "title": "🏢 One row per rental unit",
            "type": "boolean",
            "description": "Rentals: apartment buildings list several units and floor plans. On, every unit becomes its own row (beds, baths, sqft, rent, availability). Off, a building is one row with its units nested in <code>units</code>.",
            "default": false
          },
          "monitoringStoreName": {
            "title": "🔔 Monitoring mode — store name",
            "type": "string",
            "description": "Give this run a name (letters, digits and dashes, e.g. <code>austin-fsbo-watch</code>) and every later run with the same name returns <b>only homes that are new or whose price or status changed</b> since the previous run. Schedule it daily to get a change feed instead of the whole list each time. Leave empty for a normal full run."
          },
          "includeRawData": {
            "title": "🧾 Include raw Zillow data",
            "type": "boolean",
            "description": "Add a <code>raw</code> field with everything Zillow returned for the home, untouched. Useful for developers; makes rows large.",
            "default": false
          },
          "maxConcurrency": {
            "title": "⚡ Parallel requests",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many Zillow pages are fetched at the same time. Higher is faster; lower is gentler if you see blocked rows.",
            "default": 5
          },
          "requestTimeoutSecs": {
            "title": "⏱️ Request timeout (seconds)",
            "minimum": 5,
            "maximum": 120,
            "type": "integer",
            "description": "How long to wait for one Zillow page.",
            "default": 30
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy",
            "type": "object",
            "description": "Leave off. Zillow shows its anti-bot page to some networks, and when that happens the Actor switches to an Apify US residential IP by itself, for the blocked requests only. Set your own proxy here only if you want to force a specific country or your own IPs.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}