Zillow API + Market KPIs (Bridge Interactive Alternative)
Pricing
Pay per event
Zillow API + Market KPIs (Bridge Interactive Alternative)
๐ก The Zillow API replacement โ no key, no rate limits, no spreadsheet math. Paste any Zillow URL โ listings + Zestimate + total inventory + investor KPIs (gross yield, cap rate, cash flow, price/Zestimate, days-on-market). Bridge Interactive alternative. Bulk URL & CSV input. $0.003/property.
Pricing
Pay per event
Rating
5.0
(1)
Developer
SIรN Oร
Actor stats
2
Bookmarked
3
Total users
2
Monthly active users
a day ago
Last modified
Categories
Share
Zillow Scraper API + Market KPIs โ The Zillow API Replacement ๐ก
๐ The Zillow API replacement โ no key, no rate limits, no spreadsheet math. 7 search modes (URL ยท address ยท MLS ยท polygon ยท coordinates ยท map bounds ยท off-market) โ listings + Zestimate + total inventory + investor KPIs in seconds.
A drop-in Bridge Interactive Zillow API alternative for real estate investors, agents, market researchers, and proptech teams who need reliable US property data and the market context to act on it.
๐ Overview
Don't just scrape Zillow โ diagnose the market. Zillow's official API is gated, restricted, and expensive. Paste a Zillow search URL into this scraper โ any city, state, ZIP, or filtered search page โ and get back clean structured JSON, automatic pagination across all pages, and a market-KPI dashboard built from the data you just pulled. No headless browsers, no broken selectors, no API keys, no maintenance.
Perfect for real estate professionals, investors, lead generation teams, and CRE researchers who need consistent Zillow data at scale.
Why thousands of professionals choose us:
- ๐งญ 7 search modes: URL, address, MLS ID, polygon (map-drawn), coordinates+radius, map bounds, off-market โ pick how you want to search
- ๐ Total inventory count: We expose
total_resultsโ see how many listings exist for your search before you even scroll - ๐ Auto-pagination: One URL โ we paginate
/2_p/,/3_p/, ... up to your cap. No manual loops - ๐ Investor KPIs out of the box: Median gross rental yield, price-to-Zestimate, price-to-tax-assessed, days-on-market, and stale-listing share โ computed automatically per run
- ๐ Inventory breakdown: Counts by home type (SFH/condo/townhouse), status, and price/sqft distribution โ built in
- โ URL-driven: Paste any Zillow search URL โ pagination, filters, map bounds all preserved
- โก Fast & reliable: API-powered extraction, never breaks on Zillow layout changes
- ๐ฏ 30+ fields per property: Address, price, Zestimate, beds, baths, sqft, photos, GPS, tax data
- ๐ฐ Best price: $0.003 per property โ pay only for what you extract
- ๐ Bulk + CSV input: Process unlimited search URLs in one run (PAID tier)
- ๐ Auto deduplication: Same ZPID across pages? We remove duplicates automatically
- ๐ Free tier: 25 properties per run, no credit card required
๐งญ 7 Search Modes โ pick how you want to query Zillow
Set searchMode to one of the values below. Each mode reads its own input fields; everything downstream (auto-pagination, KPI computation, HTML report, dedup) is identical.
| Mode | Input fields | Tier | When to use |
|---|---|---|---|
url (default) | searchUrl ยท searchUrls ยท urlsCsv | FREE+PAID | You have a Zillow URL with all filters baked in |
address | addressQuery ยท addressQueries (PAID) | FREE+PAID | Free-text city/neighborhood/address lookup |
mls | mlsId ยท mlsIds (PAID) | FREE+PAID | You know the MLS listing ID |
polygon | polygonCoords (array of โฅ3 [lng, lat] pairs) | PAID | Map-drawn polygon search |
coordinates | centerLat ยท centerLng ยท radiusMiles (max 50) | FREE+PAID | Center point + radius |
mapbounds | north ยท south ยท east ยท west | PAID | Bounding-box search |
offmarket | offmarketZip (ZIP only โ upstream rejects address) | PAID | Off-market property sourcing |
Shared inputs (apply across all modes):
listingStatusโFor_Sale(default) ยทFor_RentยทSold. Required by every mode excepturl(the URL itself encodes status) andoffmarket.maxResultsPerQueryโ default 40, chosen so a default click-Run finishes in exactly one upstream API request across every mode. Increase to scrape more pages. FREE tier is always capped at 25.startPageโ default 1. URL mode also honors/N_p/suffix on the URL itself.
โ๏ธ Defaults are 100% backward-compatible. If you don't set
searchMode, the actor runs inurlmode exactly like v1.0.
๐ Market Intelligence (the unfair advantage)
After every run, alongside your dataset you get a market-kpis.json record and an HTML report with these signals โ nothing else on the Apify Store returns this:
| Signal | What it tells you |
|---|---|
| Gross rental yield (median) | (rentZestimate ร 12) / price โ buy-to-rent investability at a glance |
| Cap rate (median) | NOI / price using a 40% operating expense ratio โ true return after operating costs |
| Estimated monthly cash flow (median) | Net cash flow at 20% down ยท 7% mortgage ยท 30-yr amortization โ industry-standard investor underwriting |
| Price / Zestimate (median) | <1 means listings are below Zillow's estimate, >1 means above |
| Price / Tax Assessed (median) | Sanity check vs municipal valuation โ spots overpriced markets |
| Coverage ratio | How much of total_results your run actually pulled |
| Stale share | % of listings on Zillow more than 60 days โ hot-vs-cold market read |
| Days on Zillow | Min ยท median ยท avg ยท p90 ยท max โ full distribution |
| Price / area / $-per-sqft / beds / baths | Min ยท median ยท avg ยท p90 ยท max for each |
| Inventory breakdown | Counts by home type, home status, status type |
๐ก Underwriting assumptions are echoed in every report so you always see what defaults drove a given number โ 20% down ยท 7% mortgage ยท 40% operating expense ratio ยท 30-year amortization. These match standard investor norms.
โจ Features
- ๐ Direct URL Input: Paste any zillow.com search page โ for-sale, for-rent, sold, map searches
- ๐ Bulk Mode: Process multiple Zillow URLs in one run (PAID)
- ๐ CSV Upload: Drop a CSV of search URLs โ Excel/Google Sheets friendly (PAID)
- ๐ท๏ธ Zestimate Included: Get Zillow's Zestimate and Rent Zestimate values directly
- ๐ธ All Photos: Full image array per listing, not just the thumbnail
- ๐บ๏ธ GPS Coordinates: Latitude and longitude for every property
- ๐ Home Type Detection: Single family, condo, townhouse, multi-family, land, manufactured
- ๐ Days on Zillow: Time-on-market data for hot-list filtering
- ๐ต Tax Assessed Value: Public assessment data per property
- ๐ฌ Media Flags: 3D model and video tour availability per listing
๐ฌ Quick Start
Paste a Zillow URL โ click Run โ download structured JSON. That's it.
curl -X POST https://api.apify.com/v2/acts/sian.agency~zillow-property-scraper/runs?token=YOUR_TOKEN \-H 'Content-Type: application/json' \-d '{"searchUrl": "https://www.zillow.com/austin-tx/"}'
๐ Getting Started (3 Simple Steps)
Step 1: Copy a Zillow Search URL
Go to zillow.com, search for a city or apply filters, and copy the URL from your browser. Examples:
https://www.zillow.com/austin-tx/https://www.zillow.com/los-angeles-ca/houses/https://www.zillow.com/homes/for_sale/Austin,-TX_rb/
Step 2: Paste & Configure
Paste the URL into searchUrl. Set maxResultsPerUrl if you want to cap results (FREE tier is always capped at 25).
Step 3: Run & Download
Click Run. Download as JSON or CSV when finished.
That's it! In under a minute, you'll have:
- Full property records (price, beds, baths, sqft)
- Zestimate and Rent Zestimate per property
- Geographic coordinates for mapping
- All photo URLs and media flags
- Direct Zillow listing URLs for verification
๐ฅ Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
searchUrl | string | Yes (single mode) | Zillow search URL to scrape |
searchUrls | array | No | Bulk array of Zillow URLs (PAID only) |
urlsCsv | array | No | CSV file upload with one URL per line (PAID only) |
maxResultsPerUrl | integer | No | Cap properties returned per URL (default 100, FREE tier capped at 25) |
Pagination: Pagination is automatic โ the scraper fetches as many pages as needed to satisfy maxResultsPerUrl. Each search returns ~42 results per page; total available results are reported in the HTML summary and in search-totals.json (key-value store). Optionally append /N_p/ to start from a specific page (e.g. https://www.zillow.com/austin-tx/3_p/).
Single URL example:
{"searchUrl": "https://www.zillow.com/austin-tx/","maxResultsPerUrl": 100}
Bulk URLs example (PAID):
{"searchUrls": ["https://www.zillow.com/austin-tx/","https://www.zillow.com/miami-fl/","https://www.zillow.com/seattle-wa/"]}
๐ค Output
Each property is saved to the Apify dataset with 30+ fields including:
| Field | Type | Description |
|---|---|---|
zpid | string | Zillow property ID (unique) |
detailUrl | string | Direct Zillow listing URL |
address | string | Full street address |
addressCity | string | City |
addressState | string | State (US 2-letter) |
addressZipcode | string | ZIP code |
unformattedPrice | number | Price (raw number) |
price | string | Price (formatted, e.g. "$425,000") |
beds | number | Bedrooms |
baths | number | Bathrooms |
area | number | Living area in square feet |
homeType | string | SINGLE_FAMILY, CONDO, TOWNHOUSE, etc. |
homeStatus | string | FOR_SALE, FOR_RENT, SOLD, etc. |
daysOnZillow | number | Days listed |
zestimate | number | Zillow's value estimate |
rentZestimate | number | Estimated monthly rent |
taxAssessedValue | number | Public tax assessment |
latitude | number | GPS latitude |
longitude | number | GPS longitude |
imgSrc | string | Main photo URL |
allImages | array | All photo URLs |
has3DModel | boolean | 3D virtual tour available |
hasVideo | boolean | Video tour available |
Example:
{"zpid": "44359547","detailUrl": "https://www.zillow.com/homedetails/...","address": "1234 Riverside Ave, Jacksonville, FL 32204","addressCity": "Jacksonville","addressState": "FL","addressZipcode": "32204","unformattedPrice": 425000,"price": "$425,000","beds": 3,"baths": 2,"area": 1850,"homeType": "SINGLE_FAMILY","homeStatus": "FOR_SALE","daysOnZillow": 12,"zestimate": 432100,"rentZestimate": 2400,"taxAssessedValue": 318500,"latitude": 30.3322,"longitude": -81.6557,"imgSrc": "https://photos.zillowstatic.com/...","allImages": ["https://...", "https://..."],"has3DModel": false,"hasVideo": true}
๐ผ Use Cases & Examples
1. Real Estate Investor Lead Generation
Investors finding undervalued properties across multiple metros
Input: Bulk Zillow search URLs filtered by max price + min beds Output: All matching listings with Zestimate vs price gap Use: Identify properties priced below Zestimate for off-market outreach
2. Comparable Sales (Comps) Analysis
Agents and appraisers building CMA reports
Input: Zillow URL filtered by neighborhood + sold-in-last-12-months Output: Recently sold comparables with price, sqft, beds, days on market Use: Generate accurate comparative market analyses in minutes
3. Multi-City Market Research
Proptech teams tracking pricing trends across markets
Input: CSV with 50+ city search URLs Output: Consolidated dataset with median prices, days on market by city Use: Build market dashboards, quarterly reports, investor decks
4. Rental Yield Calculation
Buy-to-rent investors analyzing cash flow potential
Input: Zillow for-sale URL + filter for single-family homes
Output: Properties with both unformattedPrice and rentZestimate
Use: Calculate gross rental yield = (rentZestimate ร 12) / price
5. Real Estate CRM Enrichment
Agencies enriching lead lists with property data
Input: ZIP-code-specific Zillow URLs matching client portfolios Output: Property records with photos, GPS, Zestimate Use: Auto-populate CRM listings, send branded property alerts
6. Property Tax Arbitrage Research
Investors comparing taxAssessedValue vs market price
Input: Zillow URL filtered by county + property type
Output: Properties with both taxAssessedValue and unformattedPrice
Use: Identify over-assessed properties for tax appeal opportunities
7. Real Estate Aggregator / Directory Sites
Builders of property directory sites needing seed data
Input: State or city-level Zillow URLs (paginated) Output: Full property catalog with photos, descriptions, geo Use: Bootstrap a property listings directory with structured data
๐ Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/zillow-property-scraper').call({searchUrl: 'https://www.zillow.com/austin-tx/',maxResultsPerUrl: 100});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Found ${items.length} properties`);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/zillow-property-scraper').call(run_input={'searchUrl': 'https://www.zillow.com/austin-tx/','maxResultsPerUrl': 100})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item['address'], item['unformattedPrice'])
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~zillow-property-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"searchUrl": "https://www.zillow.com/los-angeles-ca/"}'
Automation Workflows (n8n / Zapier / Make)
- Trigger: Schedule (daily/weekly) or new-lead webhook
- HTTP Request: Call this actor with target Zillow URL
- Process: Filter properties by price/beds/Zestimate gap
- Action: Save to Airtable/Google Sheets, send Slack alert, push to CRM
๐ Performance & Pricing
FREE Tier (Try It Now)
- 25 properties per run โ full feature access, all fields included
- 1 search URL per run
- No credit card required
- Perfect for testing, single-city research, small projects
PAID Tier (Production Ready)
- Unlimited properties per run
- Unlimited search URLs (bulk + CSV upload)
- Pay-per-result pricing โ only charged for properties extracted
- Ideal for investor pipelines, market research, lead gen at scale
Pricing Model
- Start fee: $0.005 per run
- Per property: $0.003
Cost Examples
- 25 properties (FREE tier max): $0.005 + $0.075 = $0.08
- 100 properties: $0.005 + $0.30 = $0.305
- 1,000 properties: $0.005 + $3.00 = $3.005
๐ฐ Best price on the market โ flat $0.003 per property, no hidden fees.
๐ View current pricing
โ Frequently Asked Questions
Q: Does Zillow have an API? A: Zillow no longer offers a public API for property listings. The legacy Zillow Web Services API (GetSearchResults, GetZestimate, etc.) was retired, and the Bridge Interactive API is restricted to Zillow Premier Agents and approved MLS partners. This actor is the practical replacement โ paste any Zillow search URL and get the same data the official API used to return, plus market KPIs the official API never offered.
Q: Looking for a Bridge Interactive Zillow API alternative? A: You're in the right place. Zillow's Bridge Interactive API requires partner approval, MLS membership, and has strict access criteria. This Zillow Scraper API works on any zillow.com search URL with no key, no MLS affiliation, and no approval process. You get the same property records (address, beds, baths, price, Zestimate, rent Zestimate, GPS, photos, tax data) at $0.003 per property.
Q: How much does Zillow API access cost? A: The official Zillow Bridge API has variable pricing and is gated to approved partners. This Zillow Scraper API is flat-rate $0.003 per property (plus $0.005 per run start) โ no monthly minimums, no contracts. The FREE tier gives you 25 properties per run, no credit card required.
Q: How does this Zillow Scraper compare to the official Zillow API?
A: This actor returns the same core data the official API exposed (listing info, Zestimate, photos, tax history) plus three things the official API does not offer: (1) total_results for the full search inventory, (2) auto-pagination to your cap, and (3) computed investor KPIs (gross yield, cap rate, monthly cash flow, price-to-Zestimate, days-on-market, stale-listing share).
Q: Can I use this Zillow scraper from Python? A: Yes โ call it via the Apify Python SDK or any HTTP client. See the Python integration example above. The actor returns clean JSON ready for pandas/polars dataframes.
Q: Do I need a Zillow API key? A: No. There's no Zillow API key, no Bridge Interactive partner approval, no MLS membership. Just an Apify account.
Q: Which Zillow URLs work?
A: Any zillow.com search URL โ city pages, state pages, filtered searches, map searches, for-sale, for-rent, and sold pages. Single property detail URLs (/homedetails/...) are not supported โ use a search URL.
Q: How do I get more than 25 results?
A: FREE tier caps at 25 per run. Upgrade to PAID for unlimited results. Pagination is automatic โ set maxResultsPerUrl to your target and we'll fetch as many pages as needed.
Q: Are Zestimate and Rent Zestimate always available? A: Almost always for residential listings. Some new construction, land, and commercial listings may not have a Zestimate.
Q: Does pagination work?
A: Yes โ and it's automatic. We paginate /2_p/, /3_p/, ... until your maxResultsPerUrl cap is reached or the search is fully drained. You can still append /N_p/ manually to start at a specific page.
Q: Can I filter by price, beds, or property type? A: Use Zillow's own filters in your browser, then copy the resulting URL. Filters are preserved in the URL.
Q: What output formats are available? A: JSON, CSV, Excel, HTML โ export directly from the Apify dataset.
Q: Is this legal? A: Yes โ only publicly available Zillow listings are extracted. See the legal section below.
Q: How fast is it? A: Roughly 1-3 seconds per Zillow search URL fetched, plus per-property processing. A 100-property run typically completes in under 30 seconds.
๐ Troubleshooting
No results returned
- Verify the URL works in a browser
- Check the URL is a Zillow search page, not a single property detail page
- Try removing aggressive filters (very narrow price ranges return 0 results)
Truncated to 25 results on FREE tier
- This is the FREE tier cap. Upgrade to PAID for unlimited results
- Or paginate with
/2_p/,/3_p/URLs across multiple runs
Bulk mode rejected on FREE
searchUrlsandurlsCsvare PAID-only. FREE users: usesearchUrl(single)
Some properties missing Zestimate
- Zestimate isn't available for every listing (new construction, land, etc.). The field will be
nullwhen unavailable.
โ๏ธ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what users have chosen to share publicly on Zillow. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
๐ค Support
Join our active support community
- For issues or questions, open an issue in the actor's repository
- Check SIรN Agency Store for more automation tools
- ๐ง hello@sian-agency.online
Built by SIรN Agency | More Tools
๐ฏ Not sure which tier you need? Start with FREE โ no credit card required. Upgrade when you're ready to scale.