~ / endpoints / Rental Data API

Zillow Rental Data Scraper API

Our Zillow rental data API takes a location and a for_rent filter and returns every rental listing with its rent price, beds, baths, and square footage as structured JSON, so you can collect rent prices and rental listings for any city or ZIP in one call.

Get a free API keyAll data types
1,000
free requests
2.6s
median response
JSON
structured output
1
call per location
the bottleneck

Why Zillow Rental data is tough at scale

Zillow's own rental data ships only as bulk research files like the Zillow Observed Rent Index, with no per-listing API, so current asking rents for a ZIP are not available as clean data. The rentals page holds them, but it sits behind PerimeterX and buries each listing in a hydration blob you have to parse out of an HTML comment.

setup

Run the Zillow Rental Data Scraper API in one call

cURL
curl "https://api.zillowscraperapi.com/api/v1/zillow/search?location=Seattle,%20WA&status=for_rent&page=1&api_key=$API_KEY"
Python
import requests

BASE = "https://api.zillowscraperapi.com"
API_KEY = "YOUR_API_KEY"

# for_rent returns rental listings; price holds the monthly asking rent.
data = requests.get(
    f"{BASE}/api/v1/zillow/search",
    params={
        "location": "Seattle, WA",
        "status": "for_rent",
        "page": 1,
        "api_key": API_KEY,
    },
    timeout=30,
).json()

print(data["total_results"], "rentals in", data["location"])
for unit in data["results"]:
    print(unit["address_zip"], f"${unit['price']:,}/mo", unit["beds"], "bd", unit["baths"], "ba", unit["sqft"], "sqft")
query options

Parameters

ParameterRequiredDefaultNotes
locationrequired-The place to pull rentals for: a city and state (Seattle, WA), a ZIP code, or a neighborhood. This is the primary parameter.
statusoptionalfor_saleSet to for_rent to return rental listings (rent under the price field). Also accepts for_sale and sold.
urloptional-A Zillow rentals results URL to scrape directly, as an alternative to passing a location.
pageoptional11-based results page. Zillow paginates the rental list; page holds about 40 units. Range 1 to 20.
limitoptional100Maximum rows to return, from 1 to 500.
api_keyrequired-Your API key, passed as a query parameter. Get one free at signup.
json out

The Zillow Rental Data Scraper API JSON response

200 OK
{
  "query": "Seattle, WA",
  "location": "Seattle, WA",
  "page": 1,
  "total_results": 10,
  "results_count": 10,
  "results": [
    {
      "position": 1,
      "id": "463504654",
      "title": "6505 44th Avenue NE, Seattle, WA 98115",
      "url": "https://www.zillow.com/homedetails/6505-44th-Ave-NE-Seattle-WA-98115/463504654_zpid/",
      "price": 899900,
      "currency": "USD",
      "beds": 3,
      "baths": 3,
      "sqft": 1422,
      "zpid": "463504654",
      "address_street": "6505 44th Avenue NE",
      "address_city": "Seattle",
      "address_state": "WA",
      "address_zip": "98115",
      "zestimate": null,
      "status": "FOR_SALE",
      "status_text": "Active",
      "home_type": "SINGLE_FAMILY",
      "latitude": 47.675953,
      "longitude": -122.281136,
      "has_image": true,
      "builder_name": "Enduring Estates LLC"
    }
  ]
}
FieldTypeDescription
querystringThe location you searched, echoed back.
locationstringThe resolved location string for the results.
pageintegerThe results page returned, starting at 1.
total_resultsintegerNumber of listings in the results array for this page.
resultsarrayThe rental listings for this location, each with the fields below.
results[].priceintegerThe monthly asking rent in whole dollars for a for_rent listing.
results[].bedsintegerBedroom count for the unit.
results[].bathsintegerBathroom count for the unit.
results[].sqftintegerLiving area in square feet, used for rent-per-square-foot math.
results[].address_streetstringStreet address of the rental.
results[].address_citystringCity of the rental.
results[].address_statestringTwo-letter state of the rental.
results[].address_zipstringZIP code of the rental, for grouping rent data by ZIP.
results[].home_typestringUnit type, e.g. SINGLE_FAMILY, CONDO, APARTMENT.
results[].statusstringRaw listing status, e.g. FOR_RENT.
results[].zpidstringThe stable Zillow id, ready to pass to the property endpoint for full detail.
results[].latitudenumberRental latitude for mapping and geographic joins.
results[].longitudenumberRental longitude for mapping and geographic joins.
what it powers

Ways teams use this data

>

Rent price data by ZIP

Search a ZIP or city with for_rent to pull the asking rent, beds, baths, and size of every rental on the page and build a current rent table for that market.
>

Rental market tracking

Poll the same locations on a schedule and store rent and inventory counts to chart how asking rents and unit supply move over time in a neighborhood.
>

Rent-per-square-foot analysis

Divide each unit's rent by its sqft to compare rent efficiency across ZIPs and property types, straight from the parsed fields.
>

Investor and landlord comps

Assemble comparable rentals for a subject property by location, bed count, and size to price a unit against the live market.
>

Relocation and search tools

Power a rental-search feature in your own product from the parsed listings, filtered by rent band, beds, and home_type, without maintaining a Zillow parser.
>

PropTech and CRM enrichment

Feed geolocated rental listings into a dashboard or CRM so teams see live asking rents next to each market or lead.
why choose us

Where our Zillow Rental Data Scraper API stands out

Give us a location with a for_rent filter and we run the proxied fetch, PerimeterX handling, and parsing, then return every rental's rent, size, and address as a ranked JSON array. One request covers a whole page of a rental market in about 2.6 seconds, with a stable schema, no rent-index CSV to reshape, and a 1,000-request free tier.

*

for_rent filter

Set status to for_rent and the endpoint returns rental listings for the location, with the monthly asking rent under the price field.
*

Location or URL input

Pass a city, ZIP, or neighborhood and we build Zillow's rentals slug, or hand us a rentals URL directly. Either way the parsed list comes back.
*

PerimeterX handling built in

Proxies and anti-bot handling clear Zillow's challenge, so the rentals page returns listings instead of a captcha wall.
*

Rent, size, and geo per unit

Each result carries rent, beds, baths, sqft, ZIP, and latitude and longitude, so rent-per-square-foot and mapping are one field away.
*

Chains into the property endpoint

Every result includes a zpid you can pass straight to zillow/property for the full record, including the photo gallery and description.
*

Pay for success

Failed fetches retry through residential proxy tiers and are not billed, so the cost tracks the rental data that actually comes back.
versus

Zillow Rental Data Scraper API vs DIY and the Zillow API

Our APIZillow rent index (ZORI)DIY (requests / headless)
Per-listing asking rentLive JSON per locationAggregate index onlyManual fetch and parse
FreshnessCurrent page at request timeMonthly file refreshCurrent, if unblocked
Beds, baths, sizeIncluded per rentalNot in the index filesYou parse it yourself
SetupAPI key onlyDownload and reshape CSVResidential proxies and parsers
Anti-bot (PerimeterX)Handled for youNot applicableYou solve the challenge
Output shapeStable flat JSONCSV you reshapeWhatever you parse
cost to run

Free to test, cheap to scale

PlanPriceBest for
Free1,000 requestsTesting and small jobs
Pro$0.60 / 1kProduction workloads
Pay-as-you-go$0.90 / 1kSpiky or one-off volume

Median response 2.6s. You only pay for successful requests.

FAQ

How do I get Zillow rental data?

Send one GET request to our zillow/search endpoint with a location and status set to for_rent, plus your api_key. The response is a results array where each rental carries its monthly asking rent under the price field, along with beds, baths, square footage, address, ZIP, and coordinates. We handle the proxies, Zillow's PerimeterX challenge, and parsing, so you collect rent prices for a ZIP or city without running a scraper yourself.

Does Zillow have a rental data API?

Zillow publishes rental market data as bulk research files, most notably the Zillow Observed Rent Index, but it does not offer a public API that returns per-listing asking rents for a given ZIP. Our Zillow rental data API reads the public rentals pages and returns each listing's rent and details as structured JSON, filling the listing-level gap the research downloads leave.

Where is the rent price in the response?

For a for_rent search, the monthly asking rent comes back in the price field of each result, in whole dollars. The example response on this page shows the shared search schema (a for-sale example, where price is the list price); when you pass status=for_rent, the same fields describe rentals and price holds the rent. We never relabel or invent fields, so the shape stays identical across statuses.

Can I pull historical or monthly rent data?

The endpoint returns the live rental listings on Zillow at request time, so it captures current asking rents. To build a monthly history, run the same location on a schedule and store the results, which gives you a time series of asking rents you control. For market-level historical rent, Zillow's Observed Rent Index research files remain the source, and this API complements them with current per-listing data.

How many rentals come back per request?

One request returns a single results page, which holds roughly 40 units, and you can raise the limit parameter up to 500 or page deeper with the page parameter (1 to 20). Zillow caps a given search around a few hundred results, so covering a large metro means splitting it into tighter locations or ZIP codes and paging through each.

How fast is it and how is it billed?

Median end-to-end response is about 2.6 seconds per page, including proxy routing, PerimeterX handling, retries, and parsing. You are billed only for successful requests, so blocked fetches we retry behind the scenes do not land on your bill. The free tier includes 1,000 requests to test against real locations first.

Start with the Zillow Rental Data Scraper API
1,000 requests free. No card, no commitment.
Get a free API key All data types