Zillow API

Zillow API for homes for sale

Pass a US place such as Chicago, IL, or a zillow.com search URL with your filters, and get one search page of homes for sale as JSON: price, address, beds, baths, square feet, year built, status, coordinates, photo and link.

  • Data from Zillow

7,500 credits, one-time. No subscription. Failed calls are free. The free trial covers the travel endpoints.

Endpoints and prices checked against the API on .

More real estate data

Investors, agents and proptech teams watch Zillow to see what is for sale, at what price, and how stock moves from week to week. Zillow does not offer an open API for reading its listings; its data access is for approved partners. This API reads Zillow’s public search page and returns its listings with the numbers already parsed, so a price is a number you can sort on, not a string.

A place name is turned into Zillow’s own search for that place. For anything more specific (a price band, a home type, a map area or a sort order) set the filters on zillow.com and pass the resulting search URL: you get the same listings Zillow shows for it. Each listing keeps Zillow’s property id, so you can follow the same home from day to day. Redfin, with up to 350 homes in one call and the MLS number, is on the same key.

What you get

id, url
Zillow’s property id (zpid) and the listing’s zillow.com link
price, price_text, currency
the asking price as a number, as Zillow displays it, and USD
address, city, state, postal_code
the full address and its parts
beds, baths, sqft
bedrooms, bathrooms and living area in square feet
year_built, property_type
year built where Zillow shows it, and the home type (single family, condo, townhouse…)
status
the listing status as Zillow labels it, e.g. For Sale by Agent
latitude, longitude, photo
coordinates for mapping and the main photo

One call, structured JSON

POST /v1/zillow/search, 2 credits per successful call.

curl -X POST "https://api.scrapercompany.com/v1/zillow/search" \
  -H "x-api-key: $SCRAPERCOMPANY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Response (trimmed)
{
  "search_parameters": {
    "engine": "zillow_search",
    "location": "Chicago, IL",
    "limit": 40
  },
  "url": "https://www.zillow.com/homes/Chicago-IL_rb/",
  "total": 1,
  "listings": [
    {
      "id": "3667694",
      "url": "https://www.zillow.com/homedetails/3923-N-Mozart-St-Chicago-IL-60618/3667694_zpid/",
      "price": 625000,
      "price_text": "$625,000",
      "currency": "USD",
      "address": "3923 N Mozart St, Chicago, IL 60618",
      "city": "Chicago",
      "state": "IL",
      "postal_code": "60618",
      "beds": 3,
      "baths": 2,
      "sqft": 2200,
      "year_built": 1995,
      "property_type": "SINGLE_FAMILY",
      "status": "For Sale by Agent",
      "latitude": 41.952847,
      "longitude": -87.69912,
      "days_on_market": -1,
      "photo": "https://photos.zillowstatic.com/fp/example.jpg"
    }
  ]
}

Endpoints and price per call

Credits per successful call, and what one call costs on the Starter, Growth, Scale, Business plans. Failed requests cost nothing.

EndpointWhat it returnsCreditsStarter / Growth / Scale / Business
Homes for sale
POST /v1/zillow/search
One Zillow search page (about 40 homes) for a place name or a search URL2 credits$0.0024 · $0.0020 · $0.0016 · $0.0013

See all plans

Does Zillow have a public API?

Not for reading listings at large: Zillow’s data access is for approved partners. ScraperCompany is independent of Zillow. This API reads Zillow’s public search page and needs no Zillow account.

How do I search with filters?

Set the filters on zillow.com (price, beds, home type, a drawn map area, sort order) and pass the page’s URL as url. Only zillow.com search URLs are accepted. Without a URL, location takes a place name such as Austin, TX.

How many homes does one call return?

One Zillow search page, about 40 homes. Redfin returns up to 350 homes for a city, ZIP or neighborhood in one call, on the same key and at the same price.

Are rentals or sold homes included?

The endpoint returns what the search URL shows; the default place search is homes for sale. Single-listing detail (price history, tax records) is not offered yet.

Do failed requests cost credits?

No. A failed or blocked call (any 4xx or 5xx response) costs 0 credits, and so does a search page that comes back empty. You pay only for successful results.

How do I get an API key?

Create an account on the sign-up page and verify your email. You get a free trial of 50 calls or 14 days, whichever ends first, no card needed on the travel endpoints (hotels, rentals, flights, reviews); for everything else, and after the trial, buy a credit pack (from $15) or pick a plan. You create and rotate keys yourself in the dashboard.

More APIs on the same key

All APIs
Web scraping API

Send a URL, get the page back as HTML, markdown or text. When a site answers with a block, a rate limit or a bot check, the request is retried automatically, and you pay only for a page that comes back with content.

Booking.com API

Look a hotel up by name, then read what Booking.com shows a guest: a nightly price calendar, each room type with its rate plans, and the reviews with the property’s replies. Structured JSON, priced per call.

Expedia API

Look a hotel up by name, then read what Expedia shows a guest for one stay: every room type and rate plan with its total, nightly price and cancellation terms, and the guest reviews with the property’s replies.

Hotels.com API

Find a hotel’s Hotels.com id by name, then read what a guest on the Hotels.com site for their country sees: the headline price for a stay, every room type and rate plan, and the guest reviews.

Start with 50 free calls

Create an account and verify your email: your own API keys and a free trial of 50 calls or 14 days, whichever ends first, no card needed. Then buy a credit pack from $15 or pick a plan from $49 a month.