Zillow Listing Details

live$0.006/homeSignal Detection

Last updated November 8, 2026

Zillow home details by URL, ZPID, or street address: price, Zestimate, facts, description, and the listing agent shown on MLS listings. ZIP code search returns one row per home. One flat row per home, Clay ready. No login, no key. Blocked homes are free.

Features

  • One flat row per home, with price, Zestimate, facts, and status.
  • Read a home page for the description and the listing agent on MLS listings.
  • Search a ZIP code for sale, for rent, or recently sold.
  • Blocked and missing homes are free rows.
  • Pay per event: Listing row at $0.006.

Input

listingsarrayoptional

Zillow home URLs, ZPIDs, or street addresses, up to 1,000 per run. An address must include a street number and a city or ZIP code, and it must match the home Zillow returns, or you get a free row.

zip_codesarrayoptional

5 digit US ZIP codes. Each returns the homes on Zillow's search pages for that ZIP code, up to Maximum listings.

listing_statusstringoptional

for_sale (default), for_rent, or recently_sold. Used only with ZIP codes.

read_detailsstringoptional

false (default) or true. With false, a ZIP code returns one search row per home at the search row price. With true, the actor reads each home's page at the listing row price, which adds the description and the listing agent.

max_listingsstringoptional

The most homes to return in this run, across every input in order, from 1 to 1,000. Default 100. Text or a number.

max_charge_usdstringoptional

Optional. The run stops before a charge that would pass this amount. Summary rows are always returned.

Output schema

json
{
  "row_type": "string",
  "input": "string",
  "zpid": "string",
  "listing_url": "string",
  "street_address": "string",
  "city": "string",
  "state": "string",
  "zip_code": "string",
  "latitude": "number",
  "longitude": "number",
  "home_status": "string",
  "home_type": "string",
  "price": "number",
  "currency": "string",
  "zestimate": "number",
  "rent_zestimate": "number",
  "bedrooms": "number",
  "bathrooms": "number",
  "living_area_sqft": "number",
  "price_per_sqft": "number",
  "lot_area": "number",
  "lot_area_unit": "string",
  "year_built": "integer",
  "monthly_hoa_fee": "number",
  "days_on_zillow": "integer",
  "date_sold": "string",
  "last_sold_price": "number",
  "description": "string",
  "photo_count": "integer",
  "photo_url": "string",
  "price_history_json": "string",
  "mls_id": "string",
  "mls_name": "string",
  "broker_name": "string",
  "broker_phone": "string",
  "agent_name": "string",
  "agent_phone": "string",
  "agent_email": "string",
  "attempts": "integer",
  "row_status": "string",
  "error_reason": "string",
  "billable_events_json": "string",
  "scraped_at": "string"
}

Pricing

$0.006per home
EventFree plan price
Listing row$0.006
Search row$0.002
Actor Start$0.007

Pay per event on the Apify platform. Paid Apify plans pay less per event. No subscription, no seat license.

On the Apify free plan the actor stops at $1.50 of charges a month, about 250 homes. Any paid Apify plan removes the cap.

Limits

  • US homes on zillow.com only.
  • Tax history and schools are not returned, because the home page does not carry them without a further call to Zillow's internal API. Price history is returned only when the page carries it, on some listings, usually as date and price.
  • A ZIP code returns only homes in that ZIP code, so Zillow's nearby homes are left out.
  • Search rows carry no description, no agent, and no price history. Use read_details for the description and the agent.
  • Apartment building results in a ZIP code search have no ZPID and are not read. Rental search returns homes and individual units only, so it can return far fewer rows than the Zillow page count.
  • An address must match one home. If Zillow shows a search result instead, you get a free no_results row.
  • Agent, broker, and MLS fields are filled only on MLS sourced listings, and only with what the page shows. For sale by owner listings and listings with no MLS source return no contact fields, and home owner contact data is never returned.
  • Buyer agent compensation is not returned.
  • Zillow's Terms of Use restrict automated queries and republishing listing data. Read them and decide how you use this data.
  • About 1 home page read in 11 hit a challenge page in testing (3 of 33). Those are free blocked rows and the actor does not retry them in the same run, so run them again later. Search reads hit fewer, 1 in the 10 tested.
  • Fields are filled only when the page carries them. Zestimate was empty on 21 of 25 for sale homes tested, because the page itself had none.
  • Zillow can change its pages or refuse more requests at any time. Blocked reads are free, so a bad day costs the run start.

Available on