ParseForge Scrapers

Zillow Rentals Scraper

parseforge/zillow-rentals-scraper-ppe

Real estateE-commerceLead generation

Scrapes Zillow rental search results from a URL you provide and returns each listing as a flat row with rent price, bedrooms, bathrooms, address, and listing URL.

Run this scraper See the API call
Total users
23
Monthly active
1
Total runs
312
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

Zillow Rentals Scraper

Scrape Zillow rental listings from any search URL, up to a million per run. Every property comes with its rent price, bedrooms, bathrooms, address, and listing URL. No login or API key. Export to CSV, JSON, Excel, or XML.

Zillow's official API is restricted to select partners and does not offer a public rental data feed. This reads the public rental search pages directly, collecting every listing that matches your filters. You get a clean dataset of available rentals without writing a single line of code.

Who uses it What they scrape Zillow for
Real estate investors Finding under-market rental properties in a target city.
Property managers Benchmarking their own portfolio rents against the open market.
Data analysts Building a time series of rental price changes by neighborhood.
Relocation services Compiling a list of available rentals for a client moving to a new area.

What it does

This Actor collects Zillow rental listings from a search URL you provide and returns each property as a flat row.

  • ๐Ÿ”— MCP push to your tools: pipe each rental directly into Notion, Airtable, Slack, Linear, Monday, or any MCP-compatible service as it is scraped.
  • ๐Ÿ“‹ Custom message templates: format the output with Markdown and placeholders like {{property.address}} and {{property.rentPrice}} for a perfect fit in your destination tool.
  • ๐ŸŽฏ Filtered search URLs: apply any Zillow filter on the site first, then paste the URL. The scraper respects your price range, bedroom count, home type, and more.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with Zillow data

๐Ÿ“Š Monitor rental market trends.

A data analyst runs the scraper weekly on the same Zillow search URL to track median rent changes in a metro area and updates a dashboard.

๐Ÿ  Build a rental lead list.

A real estate investor scrapes all rentals under $2,000 in a target zip code and pushes them to a Notion database for review.

๐Ÿ”” Get new listing alerts.

A property manager schedules daily runs and sends new rental listings to a Slack channel so the team can act on fresh inventory.

๐Ÿ“‹ Compare portfolio rents.

A landlord scrapes comparable rentals in their neighborhood to decide whether to raise or lower rent on a vacant unit.

Why choose this scraper

What you get
No Zillow API needed Scrapes the public rental search pages that anyone can view in a browser.
Respects your filters Set price, beds, baths, and home type on Zillow, then paste the resulting URL.
Push to your stack Built-in MCP connectors send each rental to Notion, Slack, Airtable, and more.
Scales to a million rows Collect up to 1,000,000 rental listings in a single run.

How it compares

This Actor focuses on Zillow rental search results, while the competitors below target property detail pages or agent profiles.

Feature ParseForge Zillow Detail Scraper Zillow Property Details Scraper V2 Zillow Agents Leads [Scrape All Agents] [PPE]
Scrapes rental search results Yes Not listed Not listed Not listed
Scrapes property detail pages Not listed Yes Yes Not listed
MCP push to Notion, Slack, Airtable Yes Not listed Not listed Not listed
Custom message templates Yes Not listed Not listed Not listed
Scrapes agent contact data Not listed Not listed Not listed Yes
Up to 1,000,000 results per run Yes Not listed Not listed Not listed

Configure the run

Drive the Actor from a single Zillow rental search URL. Apply your filters on Zillow.com first, copy the URL, and set a maximum number of listings to collect. The Input tab lists every parameter.

A first run with the defaults:

{
  "listingUrl": "https://www.zillow.com/los-angeles-ca/rentals/",
  "maxItems": 10
}

A larger pull:

{
  "listingUrl": "https://www.zillow.com/los-angeles-ca/rentals/",
  "maxItems": 200
}

Pricing

Pay-per-result: $0.022 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $2.20
1,000 results $22.00
10,000 results $220.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Zillow Rentals Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Zillow through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/zillow-rentals-scraper-ppe"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that your Zillow search URL returns listings when you open it in a private browser window. If Zillow shows a captcha or a 'no results' message, the scraper will also see nothing. Try broadening your filters.

The scraper stopped before reaching my maxItems.

Zillow pagination has a practical limit. If your search returns fewer total listings than your maxItems setting, the Actor will finish after collecting all available results.

My MCP push to Notion is not working.

Make sure you have connected the target Notion page to your Apify integration via Notion's Connections menu. Also verify the page URL is correct and that you have write permissions on that page.

I am getting a timeout or blocked error.

Zillow may rate-limit aggressive scraping. Try reducing your maxItems or increasing the run's timeout. Using Apify's residential proxies can also help avoid blocks.

The data fields look incomplete.

Zillow's search result cards show a summary. Some fields like full description or property history are only on the detail page. For those, use a Zillow detail scraper on the listing URLs this Actor collects.

FAQ

Question Answer
Do I need a Zillow account or API key? No. The scraper reads the public rental search pages. You do not need to log in or register an application.
What URL should I use as input? Go to zillow.com, search for rentals in your desired area, apply any filters you want, then copy the full URL from your browser's address bar.
How many rental listings can I scrape in one run? You can set the maximum up to 1,000,000 listings. The default is 100.
Can I send the data directly to my Notion database? Yes. Use the MCP Connector field to pick Notion, authorize it, and paste your target page URL. Each rental becomes a row in your database.
Does this scrape sold properties or for-sale listings? No. This Actor is built for Zillow rental search pages only. For-sale and sold listings are not collected.
Can I customize the data format sent to my tool? Yes. The Custom template field accepts Markdown with placeholders like {{property.address}} and {{property.rentPrice}} so you control exactly what gets sent.
What export formats are supported? You can export your dataset to CSV, JSON, Excel, XML, or RSS from the Apify platform.
Does it scrape individual property detail pages? It scrapes the rental search results. For full detail pages, pair it with a Zillow detail scraper.
Can I schedule this to run automatically? Yes. Apify supports scheduled runs. Set it to run daily or weekly to track new rental listings over time.
What if Zillow changes their website layout? The Actor is maintained to adapt to Zillow's public page structure. If a change breaks it, report the issue and it will be updated.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Zillow, Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
listingUrl required string A Zillow rental search URL. Go to zillow.com, search for rentals in your desired area, apply any filters you want, then copy the full URL from your browser. https://www.zillow.com/los-angeles-ca/re
maxItems integer How many rental listings to collect per run. 10
mcpConnector string Pick a connector (Notion, Linear, Airtable, Slack, Monday, GitHub, etc.) or click '+' to authorize a new one via OAuth. Each scraped rental will be pushed to the chosen service automatically. not set
mcpTarget string For services that need a destination: paste the URL or ID. Notion example: https://www.notion.so/Rentals-abc123. Slack/Discord don't need this. For Notion, also connect the target page to your Apify integration via Notion's Connections menu. not set
mcpMessage string Leave empty for a pre-formatted default. Or write your own Markdown using placeholders: {{property.address}}, {{property.rentPrice}}, {{property.bedrooms}}, {{property.bathrooms}}, {{property.url}}, {{property.imageUrl}}. not set
mcpTool string Override the auto-detected MCP tool. Leave empty for auto-detect. not set
mcpProxyUrlOverride string Diagnostic only. not set
mcpTokenOverride string Diagnostic only. not set

Pricing

from $20.00 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.02 to $0.022

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~zillow-rentals-scraper-ppe/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run Zillow Rentals Scraper on Apify All scrapers