How to Scrape Zillow Property Data at Scale
Zillow’s terms prohibit automated scraping. Learn the approved API and public-data routes, their limits, and how to choose a compliant workflow.
Direct answer: Zillow’s consumer Terms of Use prohibit automated queries, including scraping and crawler activity. Don’t build a scraper to collect Zillow listings at scale or work around CAPTCHAs, rate limits, or other access controls. For individual-property data, request approval for the relevant Zillow API and follow its specific terms. For market-level analysis, check Zillow’s downloadable aggregate metrics. Neither route automatically permits bulk extraction, long-term storage, redistribution, or use in a third-party service.
This guide describes Zillow’s published terms and product routes, not a legal determination about a particular use or jurisdiction. Confirm the current terms and your approval before implementation.
1. What Zillow’s terms say about scraping
Zillow’s Terms of Use, updated October 28, 2025, prohibit “conduct automated queries (including screen and database scraping, spiders, robots, crawlers, bypassing ‘captcha’ or similar precautions, or any other automated activity with the purpose of obtaining information from the Services) on the Services.” They also prohibit bypassing measures intended to prevent or restrict access.
The terms allow copying information without automated processes only as necessary for personal use or Pro Use. They separately address certain aggregate data from Zillow Local-Info pages for non-personal market analysis with attribution. That limited provision should not be treated as permission to collect individual listing records. Read Zillow’s Terms of Use.
This is a summary of Zillow’s published contract terms, not a conclusion about whether a contract applies or how a court would interpret it. For a specific project, get qualified legal advice where needed.
2. Choose a permitted data route
| Need | Route to investigate | Key constraints |
|---|---|---|
| Market trends across an area | Download Zillow’s public aggregate real-estate metrics | CSV downloads; public use requires clear attribution and remains subject to Zillow’s terms. This is aggregate data, not a bulk listing feed. |
| Current Zestimate information for properties | Request access to the Zestimate API | Access is approval-based. Use only approved components and comply with the applicable license. |
| Property details or public-record information | Request access to the relevant API, if available for the use case | Separate terms apply, including approval, display, volume, retention, and use restrictions. |
| Bulk storage, redistribution, or a service for other businesses | Obtain written authorization or find a separately licensed source whose rights expressly cover the workflow | Do not assume a Zillow API credential authorizes bulk access, retention, or redistribution. |
Public aggregate metrics
Zillow’s Real Estate Metrics developer page offers downloadable CSV data for public use by consumers, media, analysts, academics, and policymakers, consistent with its published terms. Clear attribution to Zillow is required. These downloads can suit area-level market analysis; they are not a source for bulk individual property listings. See Zillow’s real-estate metrics and data terms.
Approved Zillow API access
Zillow describes its API as a service for preapproved licensees. You may use only the components for which you have approval, under the applicable terms and branding or display rules. API credentials are issued by license and must remain confidential. The terms prohibit bulk access by end users and retention of Zillow Data under the described license.
The default limit in the API terms is 1,000 calls per day for the Home Valuations and Property Details APIs. Zillow may approve higher limits after compliance review and an audit; a higher quota is not automatic. Verify the current limit for your approved component and account before estimating throughput.
The Property Details API has additional constraints: it cannot be used to provide a service for other businesses; implementers must take commercially reasonable steps to prevent bulk downloading or scraping; and no more than 20 individual properties may be shown to one user at a time. These restrictions are specific to that API and should not be generalized to every Zillow component. Review Zillow’s API terms.
Zillow’s Zestimate API page describes an access-request process and current Property, Rental, and Foreclosure Zestimates. It states approximate coverage of 100 million U.S. properties; that is Zillow’s product description, not a completeness guarantee or a measure of accessible records. The page describes REST-style requests with URI query parameters and JSON responses. Check the Zestimate API access information.
3. Plan the compliant workflow before writing code
- Specify the question. List the fields, geography, refresh schedule, and acceptable level of detail. Decide whether aggregate trends are sufficient or you truly need individual-property data.
- Specify the use. Document whether the data is for internal research, a consumer-facing display, or a commercial service. Identify the end users and any downstream sharing.
- Set storage and volume requirements. Estimate request volume and define how long results need to be retained. Compare these needs with the particular API’s limits and retention terms.
- Check the public metrics first. If a downloadable aggregate CSV answers the question, use it with the required attribution and current terms.
- Request the right API component. Explain the use case to Zillow and ask for the component and access level needed. Do not design on the assumption that approval, a specific endpoint, or a larger quota will be granted.
- Review the approved terms before implementation. Reconcile display, volume, storage, and downstream use with the agreement for that component. Public Records Data has its own written-approval, no-bulk-access, no-retention, default 1,000-call-per-day, and scraper-tool restrictions.
- Stop if the workflow needs rights you do not have. Bulk storage, redistribution, third-party services, or scraping require written authorization or a different source licensed for those uses.
- Recheck documentation before launch. APIs, terms, limits, and datasets can change. Use the current pages and the terms attached to your approval.
4. What to expect from the API terms and limits
| Constraint | Published detail | Planning implication |
|---|---|---|
| Approval | API access is for preapproved licensees and approved components. | Build a request and approval step into the project timeline. |
| Default daily volume | 1,000 calls per day for Home Valuations and Property Details APIs; higher limits may require adherence review and audit. | Do not assume a larger quota. Confirm the limit on your account and component. |
| Bulk access and retention | The described API license prohibits bulk end-user access and retention of Zillow Data. | Design only around the storage and access expressly permitted by your agreement. |
| Per-user display | Property Details API limits display to 20 individual properties at one time. | Review the interface and pagination behavior against the specific component’s terms. |
| Third-party services | Property Details API may not be used to provide a service for other businesses. | Confirm your business model is eligible before building on that component. |
The Public Records Data terms are separately restrictive: written approval is required for each application, bulk access and retention are prohibited, and the default limit is 1,000 calls per day, with possible higher limits after review. Those terms expressly prohibit robots, spiders, scrapers, and similar gathering tools for covered data. Public-record status alone does not establish that all underlying data rights permit reuse.
5. Implementation patterns for an approved API
Use the endpoint, authentication method, parameters, response schema, and retention behavior specified in the documentation and license provided to your approved account. The examples below show only the generic request shape Zillow describes for its Zestimate API: a REST-style URI request and JSON response. They are not a working Zillow endpoint or credentials, and the placeholder must be replaced only with details supplied through approved access.
cURL
curl --fail-with-body --silent --show-error \
--get "$ZILLOW_APPROVED_ENDPOINT" \
--data-urlencode "YOUR_APPROVED_PARAMETER=YOUR_VALUE" \
--header "Authorization: Bearer $ZILLOW_APPROVED_TOKEN"
Set ZILLOW_APPROVED_ENDPOINT, the query parameter, and authentication header to the exact values documented for your approved component. Do not put a credential in source control or a public client.
Python
import os
import requests
endpoint = os.environ["ZILLOW_APPROVED_ENDPOINT"]
token = os.environ["ZILLOW_APPROVED_TOKEN"]
response = requests.get(
endpoint,
params={"YOUR_APPROVED_PARAMETER": "YOUR_VALUE"},
headers={"Authorization": f"Bearer {token}"},
timeout=(5, 30),
)
response.raise_for_status()
data = response.json()
print(data)
Node.js
const endpoint = process.env.ZILLOW_APPROVED_ENDPOINT;
const token = process.env.ZILLOW_APPROVED_TOKEN;
if (!endpoint || !token) {
throw new Error("Set the approved endpoint and token in the environment");
}
const url = new URL(endpoint);
url.searchParams.set("YOUR_APPROVED_PARAMETER", "YOUR_VALUE");
const response = await fetch(url, {
headers: { Authorization: `Bearer ${token}` },
signal: AbortSignal.timeout(30_000),
});
if (!response.ok) {
throw new Error(`Approved API returned HTTP ${response.status}`);
}
const data = await response.json();
console.log(data);
Authentication and parameter names above are placeholders, not a claim about Zillow’s credential format or a particular endpoint. Follow your approved API documentation exactly. The examples make one request; they do not implement bulk collection or imply permission to store results.
6. Reliability, performance, and cost planning
- Estimate calls from the approved use case. Count the calls your workflow needs and compare with the applicable daily limit. The published 1,000-call default applies to the Home Valuations and Property Details APIs; verify other components separately.
- Do not equate a higher quota with bulk rights. An approved higher call limit does not override restrictions on bulk access, display, retention, or downstream use.
- Handle transient failures conservatively. Use bounded timeouts and retry only transient errors when your documentation and terms permit it. Keep retries within the approved request limit; do not retry indefinitely.
- Protect credentials. Keep issued credentials server-side, restrict access, and rotate them according to your organization’s security practices and the agreement.
- Validate data for the permitted display. Check required fields and response errors before showing data. Do not quietly retain extra fields or build a separate dataset outside the approved use.
- Budget for approval and compliance work. The cited material does not specify API pricing. Confirm commercial terms with Zillow; do not infer a price from the existence of an API.
- Use aggregate downloads when they suffice. A CSV-based analysis can avoid unnecessary per-property requests, but still needs attribution and compliance with the current terms.
7. Troubleshooting
| Symptom | Likely cause | What to do |
|---|---|---|
| Access denied or credential rejected | No approval for that component, an invalid credential, or use of the wrong authentication details. | Check the approval, credential handling, and component documentation with Zillow. Do not probe private endpoints. |
| Daily quota reached | Your approved call allowance has been exhausted. | Stop requests until permitted, reduce legitimate request frequency, or ask Zillow whether a higher limit is available after review. |
| Need to retain responses for later analysis | The applicable license may prohibit retaining Zillow Data. | Check the exact written terms. If the retention you need is not allowed, request written authorization or use a source licensed for it. |
| Product requires more than 20 properties on one screen | The Property Details API has a 20-property per-user display limit. | Redesign only if the resulting display complies with the applicable agreement; otherwise seek written guidance or another licensed source. |
| Want to offer results to business customers | The Property Details API terms prohibit using that data to provide a service for other businesses. | Do not launch on that basis. Confirm an eligible use and written rights first. |
| Public Records Data application is not approved | Each application needs written approval under its terms. | Wait for approval and use only the approved application. Do not use scraper tools as a substitute. |
| Aggregate CSV does not contain listing-level records | The public metrics are aggregate market data, not an individual-property feed. | Use the aggregate metrics only if they answer the question; otherwise request approved access or find a separately licensed source. |
8. Common questions
Does Zillow have an API for property data?
Zillow describes API products including Home Valuations, Property Details, Public Records Data, and Zestimate-related access. Access is approval-based and component-specific, with different terms and limits. An API’s existence does not grant general bulk access.
Can I scrape Zillow if the data is publicly visible?
Zillow’s consumer terms expressly prohibit automated queries to obtain information from its services, including scraping and crawler activity. Public visibility does not itself establish permission for automated collection or reuse.
Can I use Zillow’s public data for market research?
Zillow publishes aggregate real-estate metrics for public use with clear attribution, subject to its terms. That route is for aggregate data and should not be treated as permission to gather individual listings.
Is the 1,000-call limit a universal Zillow API quota?
No. The cited default applies to Home Valuations and Property Details APIs. Confirm the quota for the approved component and account in the current terms.
Does an approved API let me redistribute the data?
Not by default. The described API terms constrain use, bulk access, and retention, and specific components add display or business-use limits. Check the agreement and obtain written rights for any downstream use.
Or skip the browser setup
If your task is to capture a webpage for documentation or visual review, ScreenshotNeo can return a screenshot with one GET request. It does not provide Zillow property data or authorize scraping Zillow; use it for pages you are permitted to capture.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation. ScreenshotNeo accepts cookie or consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits cost nothing, and response headers report the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000.
Sign up for 1,000 free screenshots a month, with no card required.
Sources
- Zillow Terms of Use — consumer website restrictions and terms update date.
- Zillow API terms and overview — approval, component access, quotas, and API use constraints.
- Zillow Real Estate Metrics — public aggregate data and attribution guidance.
- Zestimate API access information — access request and product description.


