{"id":25236780,"url":"https://github.com/luminati-io/zillow-scraper","last_synced_at":"2026-06-23T03:31:15.660Z","repository":{"id":276967436,"uuid":"930879983","full_name":"luminati-io/zillow-scraper","owner":"luminati-io","description":"A Zillow scraper offering a free tool for small-scale data collection and an enterprise-grade API for large-scale, reliable property data extraction.","archived":false,"fork":false,"pushed_at":"2025-02-11T11:36:27.000Z","size":13390,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-10T21:52:52.060Z","etag":null,"topics":["free-scraper","no-code","python","scraper-api","web-scraping","zillow","zillow-scraper"],"latest_commit_sha":null,"homepage":"https://brightdata.com/products/web-scraper/zillow","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luminati-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-11T11:11:55.000Z","updated_at":"2025-05-04T07:58:51.000Z","dependencies_parsed_at":"2025-02-11T12:46:17.211Z","dependency_job_id":null,"html_url":"https://github.com/luminati-io/zillow-scraper","commit_stats":null,"previous_names":["luminati-io/zillow-scraper"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/luminati-io/zillow-scraper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminati-io%2Fzillow-scraper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminati-io%2Fzillow-scraper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminati-io%2Fzillow-scraper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminati-io%2Fzillow-scraper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luminati-io","download_url":"https://codeload.github.com/luminati-io/zillow-scraper/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminati-io%2Fzillow-scraper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34674702,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-23T02:00:07.161Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["free-scraper","no-code","python","scraper-api","web-scraping","zillow","zillow-scraper"],"created_at":"2025-02-11T15:31:50.465Z","updated_at":"2026-06-23T03:31:15.642Z","avatar_url":"https://github.com/luminati-io.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Zillow Scraper\n\n[![Promo](https://github.com/luminati-io/LinkedIn-Scraper/blob/main/Proxies%20and%20scrapers%20GitHub%20bonus%20banner.png)](https://brightdata.com/products/web-scraper/zillow) \n\nThis repository provides two distinct methods for scraping Zillow data:\n1. A free, small-scale scraper for basic data collection\n2. An enterprise-grade API solution for large-scale data extraction\n\n## Table of Contents\n- [Free Zillow Data Scraper](#free-zillow-data-scraper)\n- [Limitations of Free Scraper](#limitations-of-free-scraper)\n- [Zillow Scraper API](#zillow-scraper-api)\n  - [Key Features](#key-features)\n  - [Quick Start Guide](#quick-start-guide)\n  - [Zillow Property Details by URL](#1-zillow-property-details-by-url)\n  - [Zillow Properties Listing by Filters](#2-zillow-properties-listing-by-filters)\n  - [Zillow Properties Listing by URL](#3-zillow-properties-listing-by-url)\n  - [Zillow Price History](#4-zillow-price-history)\n- [No-Code Scraper Option](#no-code-scraper-option)\n- [Additional Options](#additional-options)\n- [Support \u0026 Resources](#support--resources)\n\n## Free Zillow Data Scraper\nThe free scraper allows you to collect property data from Zillow search pages on a small scale.\n\n### Input Requirements\n| Parameter | Required | Description |\n|-----------|----------|-------------|\n| coords    | Yes      | Boundary coordinates [west, east, south, north] |\n| pages     | Yes      | Number of pages to scrape |\n\n### Implementation\nTo use the scraper, modify the coordinates and page count in the following code according to your location and data requirements:\n```python\n# free_zillow_scraper/property_data.py\ndef get_search_params():\n    return (\n        -118.668176,  # West longitude\n        -118.155289,  # East longitude\n        33.703652,    # South latitude\n        34.337306,    # North latitude\n        5             # Number of pages to scrape\n    )\n```\n\n**Hint:** Geographical coordinates can be found in the `\u003cscript\u003e` tag of Zillow's search page for any location. Look for the following tag:\n```bash\n\u003cscript id=\"__NEXT_DATA__\" type=\"application/json\"\u003e\n```\n\n### Sample Output\n```json\n{\n    \"id\": \"20595672\",\n    \"price\": \"$1,599,900\",\n    \"zestimate\": 1605500,\n    \"location\": {\n        \"address\": \"2215 Wellington Rd, Los Angeles, CA 90016\",\n        \"city\": \"Los Angeles\",\n        \"state\": \"CA\",\n        \"zip\": \"90016\",\n        \"coordinates\": {\"lat\": 34.036064, \"lon\": -118.33622},\n    },\n    \"details\": {\n        \"beds\": 4,\n        \"baths\": 3.0,\n        \"area_sqft\": 1886,\n        \"lot_acres\": 8577.0,\n        \"property_type\": \"SINGLE_FAMILY\",\n    },\n    \"listing\": {\n        \"status\": \"House for sale\",\n        \"days_on_zillow\": 5,\n        \"broker\": \"ehomes\",\n        \"url\": \"https://www.zillow.com/homedetails/2215-Wellington-Rd-Los-Angeles-CA-90016/20595672_zpid/\",\n    },\n},\n```\n\n## Limitations of Free Scraper\nThe free Zillow scraper works well for small-scale data extraction but has the following limitations:\n\n- **Rate Limiting:** Zillow blocks requests after a few scrapes.\n- **IP Blocking:** Frequent scraping from the same IP can lead to bans.\n- **Limited Scalability:** Not suitable for high-volume data collection.\n- **Captcha:** Zillow may present CAPTCHAs to block automated requests.\n- **Honeypots:** Zillow uses honeypot traps to detect and block bots.\n\nFor large-scale scraping, consider using the **Zillow Scraper API** described below.\n\n##  Zillow Scraper API\nThe Bright Data [Zillow Scraper API](https://brightdata.com/products/web-scraper/zillow) provides a scalable, reliable, and hassle-free solution for extracting large-scale Zillow data without the need to build or maintain your own infrastructure.\n\n### Key Features\n- **Scalable \u0026 Reliable:** Optimized for high-volume and real-time data collection.\n- **Anti-Blocking:** Built-in proxy rotation and CAPTCHA solving.\n- **Legal Compliance:** Fully GDPR and CCPA compliant.\n- **Global Coverage:** Access data from any region or language.\n- **Real-Time Data:** Fresh data with minimal latency.\n- **Advanced Filtering:** Customize data extraction with precise filters.\n- **Pay-as-You-Go:** Only pay for successful responses.\n- **Free Trial:** Includes 20 free API calls to get started.\n- **Dedicated Support:** 24/7 technical assistance.\n- **No-Code Option:** Scrape Zillow data via API or no-code scrapers.\n\n### Quick Start Guide\n- **Sign Up:** Create a [Bright Data account](https://brightdata.com/).\n- **Get API Token:** Obtain your [API key](https://docs.brightdata.com/general/account/api-token) from the dashboard.\n- **Choose Endpoint:** Select from the available API endpoints below.\n\n## 1. Zillow Property Details by URL\nCollect property details by providing the property URL.\n\n\u003cimg width=\"700\" alt=\"zillow-properties-listing-information\" src=\"https://github.com/luminati-io/zillow-scraper/blob/main/zillow-images/zillow-properties-listing-information.png\" /\u003e\n\n### Input Parameters\n| Parameter | Required | Description            |\n|-----------|----------|------------------------|\n| `url`       | Yes      | Zillow property URL   |\n\n\n### Example Request\n#### Python Code:\n```python\nproperties = [\n    {\"url\": \"https://www.zillow.com/homedetails/73-Beverly-Park-Ln-Beverly-Hills-CA-90210/20533547_zpid/\"},\n    {\"url\": \"https://www.zillow.com/homedetails/1945-N-Edgemont-St-Los-Angeles-CA-90027/20809871_zpid/\"}\n]\n```\n\n👉 Complete Python script: [zillow_properties.py](https://github.com/luminati-io/Zillow-Scraper/blob/main/zillow_api_scraper/zillow_properties.py)\n\n#### cURL Command:\n```bash\ncurl -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '[\n           {\n             \"url\": \"https://www.zillow.com/homedetails/2506-Gordon-Cir-South-Bend-IN-46635/77050198_zpid/?t=for_sale\"\n           }\n         ]' \\\n     \"https://api.brightdata.com/datasets/v3/trigger?dataset_id=gd_lfqkr8wm13ixtbd8f5\u0026include_errors=true\"\n```\n\n### Response Schema\n```json\n{\n    \"property_overview\": {\n        \"address\": \"73 Beverly Park Ln, Beverly Hills, CA 90210\",\n        \"price\": \"$89,900,000\",\n        \"status\": \"FOR_SALE\",\n        \"living_area\": \"28,500 sq ft\",\n        \"lot_size\": \"2.68 acres\",\n        \"bedrooms\": 9,\n        \"bathrooms\": 22,\n    },\n    \"key_features\": {\n        \"highlights\": [\n            \"85-foot infinity lap pool\",\n            \"Two kitchens (including commercial-grade)\",\n            \"5,000 sq ft primary suite\",\n            \"Screening room\",\n            \"Gated community with guard\",\n        ],\n        \"views\": [\"City\", \"Ocean\", \"Mountain\", \"Canyon\"],\n    },\n    \"financial\": {\n        \"last_sold\": \"2021-04-08 for $28,500,000\",\n        \"property_tax_rate\": \"1.18%\",\n        \"monthly_hoa\": \"$6,216\",\n    },\n}\n```\n\n👉 This is a partial response. See the [full JSON response](https://github.com/luminati-io/Zillow-Scraper/blob/main/zillow_api_data/zillow_properties.json) for complete property details.\n\n## 2. Zillow Properties Listing by Filters\nSearch properties using location and other criteria.\n\n\u003cimg width=\"700\" alt=\"zillow-properties-listing-by-input\" src=\"https://github.com/luminati-io/zillow-scraper/blob/main/zillow-images/zillow-properties-listing-by-input.png\" /\u003e\n\n💡 **Note:** Some properties may have multiple units, which can result in several records. To limit results, use the [Limit per input](https://docs.brightdata.com/scraping-automation/web-scraper-api/overview#limit-records).\n\n### Input Parameters\n| Parameter       | Required | Description                                          |\n|---------------|----------|------------------------------------------------------|\n| `location`      | Yes      | Can be a zip code, city, or state.                   |\n| `listingCategory` | Yes    | Options: Sold, House for rent, House for sale.       |\n| `HomeType`      | Yes      | Home type from Zillow (e.g., Houses, Apartments, Townhomes). |\n\n\n### Example Request\n#### Python Code:\n```python\nfilters = [\n    {\"location\": \"92027\", \"listingCategory\": \"Sold\", \"HomeType\": \"Houses\"},\n    {\"location\": \"New York\", \"listingCategory\": \"House for rent\", \"HomeType\": \"Condos\"},\n    {\"location\": \"Colorado\", \"listingCategory\": \"\", \"HomeType\": \"\"},\n]\n```\n👉 Complete Python script: [zillow_discovered_properties.py](https://github.com/luminati-io/Zillow-Scraper/blob/main/zillow_api_scraper/zillow_discovered_properties.py)\n\n#### cURL Command:\n```bash\ncurl -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '[{\"location\": \"New York\", \"listingCategory\": \"House for rent\", \"HomeType\": \"Houses\"},\n          {\"location\": \"02118\", \"listingCategory\": \"House for sale\", \"HomeType\": \"Condos\"},\n          {\"location\": \"Colorado\", \"listingCategory\": \"\", \"HomeType\": \"\"}]' \\\n     \"https://api.brightdata.com/datasets/v3/trigger?dataset_id=gd_lfqkr8wm13ixtbd8f5\u0026include_errors=true\u0026type=discover_new\u0026discover_by=input_filters\"\n```\n\n### Response Schema\n```json\n{\n    \"address\": {\n        \"streetAddress\": \"569 Hayward Pl\",\n        \"city\": \"Escondido\",\n        \"state\": \"CA\",\n        \"zipcode\": \"92027\",\n    },\n    \"homeStatus\": \"SOLD\",\n    \"bedrooms\": 4,\n    \"bathrooms\": 2,\n    \"livingArea\": 1446,\n    \"livingAreaUnits\": \"Square Feet\",\n    \"lotSize\": 5933,\n    \"lotAreaUnits\": \"Square Feet\",\n    \"homeType\": \"SINGLE_FAMILY\",\n    \"yearBuilt\": 1987,\n    \"lastSoldPrice\": 689000,\n    \"dateSoldString\": \"2022-08-11\",\n    \"zestimate\": 818100,\n    \"rentZestimate\": 3752,\n    \"schools\": [\n        {\n            \"name\": \"Glen View Elementary School\",\n            \"distance\": 0.6,\n            \"rating\": 5,\n            \"grades\": \"K-5\",\n        },\n        {\n            \"name\": \"Hidden Valley Middle School\",\n            \"distance\": 1.2,\n            \"rating\": 5,\n            \"grades\": \"6-8\",\n        },\n        {\n            \"name\": \"Orange Glen High School\",\n            \"distance\": 1.4,\n            \"rating\": 5,\n            \"grades\": \"9-12\",\n        },\n    ],\n    \"url\": \"https://www.zillow.com/homedetails/569-Hayward-Pl-Escondido-CA-92027/16696746_zpid/\",\n}\n```\n\n👉 This is a partial response. See the [full JSON response](https://github.com/luminati-io/Zillow-Scraper/blob/main/zillow_api_data/zillow_discovered_properties.json) for complete property details.\n\n## 3. Zillow Properties Listing by URL\nSearch for properties directly using Zillow search page URLs.\n\n\u003cimg width=\"700\" alt=\"zillow-properties-listing-by-url\" src=\"https://github.com/luminati-io/zillow-scraper/blob/main/zillow-images/zillow-properties-listing-by-url.png\" /\u003e\n\n\n💡 **Note:** Some properties may have multiple units, which can result in several records. To limit results, use the [Limit per input](https://docs.brightdata.com/scraping-automation/web-scraper-api/overview#limit-records).\n\n\n### Input Parameters:\n| Parameter | Required | Description                          |\n|-----------|----------|--------------------------------------|\n| `url`       | Yes      | Direct Zillow search URL with complete search parameters |\n\n### Example Request\n#### Python Code:\n```python\nurls = [\n    {\"url\": \"https://www.zillow.com/south-bend-in/?searchQueryState=%7B%22pagination%22%3A...\"},\n    {\"url\": \"https://www.zillow.com/new-york-ny/rentals/?searchQueryState=%7B%22isMapVisible%22%3A...\"},\n    {\"url\": \"https://www.zillow.com/sands-point-ny/rentals/?searchQueryState=%7B%22isMapVisible%22%3A...\"},\n]\n```\n👉 Complete Python script: [zillow_discovered_properties_by_url.py](https://github.com/luminati-io/Zillow-Scraper/blob/main/zillow_api_scraper/zillow_discovered_properties_by_url.py)\n\n#### cURL Command:\n```bash\ncurl -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '[{\"url\": \"https://www.zillow.com/south-bend-in/?searchQueryState=%7B%22pagination%22%3A...\"}]' \\\n     \"https://api.brightdata.com/datasets/v3/trigger?dataset_id=gd_lfqkr8wm13ixtbd8f5\u0026include_errors=true\u0026type=discover_new\u0026discover_by=url\"\n```\n\n### Response Schema:\n```json\n{\n    \"zpid\": 77029580,\n    \"address\": {\n        \"streetAddress\": \"1937 Churchill Dr\",\n        \"city\": \"South Bend\",\n        \"state\": \"IN\",\n        \"zipcode\": \"46617\",\n    },\n    \"price\": 435000,\n    \"bedrooms\": 4,\n    \"bathrooms\": 4,\n    \"livingArea\": 3197,\n    \"lotAreaValue\": 0.46,\n    \"lotAreaUnits\": \"Acres\",\n    \"yearBuilt\": 1968,\n    \"homeStatus\": \"FOR_SALE\",\n    \"zestimate\": 420400,\n    \"lastSoldPrice\": 134000,\n    \"dateSold\": \"2013-05-20\",\n    \"schools\": [\n        {\"name\": \"McKinley Elementary School\", \"rating\": 4},\n        {\"name\": \"Edison Intermediate Center\", \"rating\": 2},\n        {\"name\": \"Rise Up Academy At Eggleston\", \"rating\": 1},\n    ],\n    \"mortgageRates\": {\"thirtyYearFixedRate\": 6.536},\n    \"listingProvidedBy\": {\"name\": \"Eric M Bomkamp\", \"phoneNumber\": \"574-360-2569\"},\n    \"url\": \"https://www.zillow.com/homedetails/1937-Churchill-Dr-South-Bend-IN-46617/77029580_zpid/\",\n}\n```\n👉 This is a partial response. See the [full JSON response](https://github.com/luminati-io/Zillow-Scraper/blob/main/zillow_api_data/zillow_discovered_properties_by_url.json) for complete property details.\n\n## 4. Zillow Price History\nCollect pricing history for a property.\n\n\u003cimg width=\"700\" alt=\"zillow-price-history\" src=\"https://github.com/luminati-io/zillow-scraper/blob/main/zillow-images/zillow-price-history.png\" /\u003e\n\n### Input Parameters\n\n| Parameter | Required | Description            |\n|-----------|----------|------------------------|\n| `url`       | Yes      | Zillow property URL.   |\n\n### Example Request\n#### Python Code:\n\n```python\nurls = [\n    {\"url\": \"https://www.zillow.com/homedetails/8305-Blue-Heron-Way-Raleigh-NC-27615/6468808_zpid/\"},\n    {\"url\": \"https://www.zillow.com/homedetails/930-3rd-St-SE-Hickory-NC-28602/71557289_zpid/\"},\n]\n```\n👉 Complete Python script: [zillow_price_history.py](https://github.com/luminati-io/Zillow-Scraper/blob/main/zillow_api_scraper/zillow_price_history.py)\n\n#### cURL Command:\n```bash\ncurl -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '[{\"url\": \"https://www.zillow.com/homedetails/8305-Blue-Heron-Way-Raleigh-NC-27615/6468808_zpid/\"},\n          {\"url\": \"https://www.zillow.com/homedetails/930-3rd-St-SE-Hickory-NC-28602/71557289_zpid/\"}]' \\\n     \"https://api.brightdata.com/datasets/v3/trigger?dataset_id=gd_lxu1cz9r88uiqsosl\u0026include_errors=true\"\n```\n\n### Response Schema:\n```json\n{\n    \"url\": \"https://www.zillow.com/homedetails/8305-Blue-Heron-Way-Raleigh-NC-27615/6468808_zpid/\",\n    \"zpid\": \"6468808\",\n    \"date\": \"2020-11-13T00:00:00.000Z\",\n    \"event\": \"Sold\",\n    \"price\": 440000,\n    \"price_per_squarefoot\": 127,\n    \"source\": \"Doorify MLS\",\n    \"timestamp\": \"2025-02-09T16:56:42.074Z\",\n}\n```\n👉 This is a partial response. See the [full JSON response](https://github.com/luminati-io/Zillow-Scraper/blob/main/zillow_api_data/zillow_price_history.json) for complete property details.\n\n## No-Code Scraper Option\nBright Data **No-Code Scraper** offers a user-friendly way to collect Zillow data without programming.\n- Configure scrapers in minutes.\n- Automate the entire data collection process.\n- Download results directly in multiple formats.\n\nFor detailed instructions, visit our [Getting Started guide](https://github.com/luminati-io/Zillow-Scraper/blob/main/no-code-scraper.md).\n\n## Additional Options\nFine-tune your data collection with these parameters:\n\n| **Parameter**       | **Type**   | **Description**                                            | **Example**                  |\n|---------------------|------------|------------------------------------------------------------|------------------------------|\n| `limit`             | `integer`  | Max results per input                                   | `limit=10`                   |\n| `include_errors`    | `boolean`  | Get error reports for troubleshooting                     | `include_errors=true`        |\n| `notify`            | `url`      | Webhook notification URL to be notified upon completion  | `notify=https://notify-me.com/` |\n| `format`            | `enum`     | Output format (e.g., JSON, NDJSON, JSONL, CSV)         | `format=json`                |\n\n💡 **Pro Tip:** You can deliver data to an [external storage](https://docs.brightdata.com/scraping-automation/web-data-apis/web-scraper-api/overview#via-deliver-to-external-storage) or a [webhook](https://docs.brightdata.com/scraping-automation/web-data-apis/web-scraper-api/overview#via-webhook).\n\n## Support \u0026 Resources\n- **API Documentation:** [Bright Data Docs](https://docs.brightdata.com/scraping-automation/web-scraper-api/trigger-a-collection)\n- **Scraping Best Practices:** [Avoid Getting Blocked](https://brightdata.com/blog/web-data/web-scraping-without-getting-blocked)\n- **Technical Support:** [Contact Us](mailto:support@brightdata.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluminati-io%2Fzillow-scraper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluminati-io%2Fzillow-scraper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluminati-io%2Fzillow-scraper/lists"}