Zillow API

Zillow Search API

Search Zillow for-sale, rental, or sold listings by region-level location (city, ZIP, county, or neighborhood) with optional price, bedroom, living-area, home-type, recency, and sort filters and get matching properties (price, address, beds, baths, living area, status, Zestimate) as normalized JSON.

$0.80/1k req, pay per request, no subscription.

What the API returneditems[0]
{
"url": "https://www.zillow.com/homedetails/4510-Secure-Ln-Austin-TX-78725/83126034_zpid/",
"zpid": "83126034",
"streetAddress": "4510 Secure Ln",
"city": "Austin",
"state": "TX",
"zipcode": "78725",
"price": 424900,
"currency": "USD",
... 18 more fields
}
Uptime
100.00%
30d · 3,690 calls
Requests
3,926
30d · weekly, last 12 wks
Response
3.0s
median · 30d

Try it

Get Zillow search in one request

homeTypesarray
Filter by property type; omit for any. Rentals support only singleFamily, multiFamily, townhome, and condo (e.g. ["singleFamily", "condo"]).
listingTypesarray
Listing types to include for buy searches; omit for all standard types. fsba = agent listed, fsbo = for sale by owner. Ignored for rent and sold (e.g. ["newConstruction"]).
requireFieldsarray
Optional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `yearBuilt`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on a listing that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge.
Open in
Get a free key
Sample response
Free runs return only the first 3 results. Fund a key to get the full response.

This sample shows 28 of 30 fields. See every field

{
  "found": true,
  "data": {
    "items": [
      {
        "url": "https://www.zillow.com/homedetails/4510-Secure-Ln-Austin-TX-78725/83126034_zpid/",
        "zpid": "83126034",
        "streetAddress": "4510 Secure Ln",
        "city": "Austin",
        "state": "TX",
        "zipcode": "78725",
        "price": 424900,
        "currency": "USD",
        "beds": 4,
        "baths": 2.5,
        "livingArea": 2180,
        "lotSize": 6969,
        "yearBuilt": 2016,
        "propertyType": "SINGLE_FAMILY",
        "status": "FOR_SALE",
        "zestimate": 431200,
        "rentZestimate": 2450,
        "latitude": 30.2419,
        "longitude": -97.6132,
        "image": "https://photos.zillowstatic.com/fp/2a4b6c8d0e1f3a5b7c9d0e1f2a3b4c5d-p_e.jpg",
        "daysOnZillow": 12,
        "taxAssessedValue": 398000,
        "isZillowOwned": false,
        "brokerName": "Lakeline Realty Group",
        "images": [
          "https://photos.zillowstatic.com/fp/2a4b6c8d0e1f3a5b7c9d0e1f2a3b4c5d-p_e.jpg",
          "https://photos.zillowstatic.com/fp/7b1c3d5e7f9a1b3c5d7e9f1a3b5c7d9e-p_e.jpg"
        ]
      },
      {
        "url": "https://www.zillow.com/homedetails/2211-Rosewood-Ave-Austin-TX-78702/29481502_zpid/",
        "zpid": "29481502",
        "streetAddress": "2211 Rosewood Ave",
        "city": "Austin",
        "state": "TX",
        "zipcode": "78702",
        "price": 689000,
        "currency": "USD",
        "beds": 3,
        "baths": 2,
        "livingArea": 1640,
        "lotSize": 5227,
        "yearBuilt": 1948,
        "propertyType": "SINGLE_FAMILY",
        "status": "FOR_SALE",
        "zestimate": 702500,
        "rentZestimate": 3100,
        "latitude": 30.2717,
        "longitude": -97.7168,
        "image": "https://photos.zillowstatic.com/fp/9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c-p_e.jpg",
        "daysOnZillow": 4,
        "taxAssessedValue": 611000,
        "isZillowOwned": false,
        "brokerName": "East Side Realty Partners",
        "images": [
          "https://photos.zillowstatic.com/fp/9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c-p_e.jpg"
        ]
      },
      {
        "url": "https://www.zillow.com/homedetails/8807-Anderson-Mill-Rd-Austin-TX-78729/45102938_zpid/",
        "zpid": "45102938",
        "streetAddress": "8807 Anderson Mill Rd",
        "city": "Austin",
        "state": "TX",
        "zipcode": "78729",
        "price": 549000,
        "currency": "USD",
        "beds": 4,
        "baths": 3,
        "livingArea": 2410,
        "lotSize": 7841,
        "yearBuilt": 2001,
        "propertyType": "SINGLE_FAMILY",
        "status": "FOR_SALE",
        "zestimate": 555000,
        "rentZestimate": 2900,
        "latitude": 30.4488,
        "longitude": -97.7789,
        "image": "https://photos.zillowstatic.com/fp/1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a-p_e.jpg",
        "daysOnZillow": 27,
        "taxAssessedValue": 521000,
        "isZillowOwned": false,
        "brokerName": "Hill Country Brokers",
        "images": [
          "https://photos.zillowstatic.com/fp/1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a-p_e.jpg"
        ]
      }
    ]
  }
}

Full parameter and response reference - every field, type, and example for this endpoint.

Reference

One request, one response shape.

Every field you send and every field you get back, each with a real example.

Last verified 2026-10-31 · uptime and latency measured over 30d

Request body

JSON, posted to this endpoint.

  • locationstring

    Austin, TX

    Region-level location to search: ZIP code, city and state, county, or neighborhood (e.g. 'Austin, TX' or '78701'). Street addresses are not supported; use the property's ZIP code instead.

  • daysOnZillowenum

    Only include listings on Zillow at most this long (e.g. 1_week).

  • homeTypesarray

    Filter by property type; omit for any. Rentals support only singleFamily, multiFamily, townhome, and condo (e.g. ["singleFamily", "condo"]).

  • includeAcceptingBackupOffersboolean

    Include listings accepting backup offers, which Zillow excludes by default (e.g. true).

  • includePendingAndUnderContractboolean

    Include pending and under-contract listings, which Zillow excludes by default (e.g. true).

  • includeRoomForRentboolean

    Include room-for-rent listings in rent searches; when omitted or false only entire places are returned (e.g. true).

  • limitinteger

    3

    Maximum number of results to return (1-25, default 25).

  • listingTypesarray

    Listing types to include for buy searches; omit for all standard types. fsba = agent listed, fsbo = for sale by owner. Ignored for rent and sold (e.g. ["newConstruction"]).

  • maxBedroomsinteger

    Maximum number of bedrooms (e.g. 5).

  • maxLivingAreaSqftinteger

    Maximum living area in square feet (e.g. 3000).

  • maxPriceinteger

    900000

    Maximum price in USD: monthly rent for rentals, total price for buy/sold (e.g. 750000).

  • minBedroomsinteger

    3

    Minimum number of bedrooms (e.g. 3).

  • minLivingAreaSqftinteger

    Minimum living area in square feet (e.g. 1500).

  • minPriceinteger

    Minimum price in USD: monthly rent for rentals, total price for buy/sold (e.g. 250000).

  • operationenum

    buy

    Listing type: buy (for sale), rent, or sold.

  • requireFieldsarray

    Optional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `yearBuilt`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on a listing that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge.

  • showOnlyPriceReductionsboolean

    Only show listings with a price reduction. Buy searches only; ignored for rentals (e.g. true).

  • sortByenum

    Sort order for results; omit for Zillow's default relevance. rentalPriorityScore applies to rent searches only (e.g. newest).

You send. A small JSON body. The values shown are examples to replace with your own.

Response

JSON, one example value per field.

each itemdata.items[]

Property listing records matching the search: address, price, beds, baths, living area, property type, status, Zestimate, and coordinates. Populated whenever the provider has data for the entity.

  • bathsnumber

    2.5

    Number of bathrooms.

  • bedsnumber

    4

    Number of bedrooms.

  • brokerNamestringcan require

    Lakeline Realty Group

    Listing brokerage name.

  • citystring

    Austin

  • currencystring

    USD

    ISO currency code of the price (e.g. USD).

  • daysOnZillowintegercan require

    12

    Days the listing has been on Zillow.

  • imagestring

    https://photos.zillowstatic.com/fp/2a4b6c8d0e1f3a5b7c9d0e1f2a3b4c5d-p_e.jpg

    URL of the primary listing photo. Populated whenever the provider has data for the entity.

  • imagesstring[]can require

    Listing photo URLs.

  • isZillowOwnedbooleancan require

    false

    True when Zillow itself owns the property.

  • latitudenumber

    30.2419

  • livingAreanumber

    2180

    Interior living area in square feet.

  • longitudenumber

    -97.6132

  • lotSizenumber

    6969

    Lot size as Zillow states it, in the unit named by lotSizeUnit (square feet or acres), or null when the listing has no lot size.

  • lotSizeUnitstring

    Unit of lotSize: sqft or acres. Null when the listing has no lot size or the serving source does not name the unit.

  • pricenumber

    424900

    List price in the listing currency.

  • propertyTypestring

    SINGLE_FAMILY

    Property type (e.g. SINGLE_FAMILY, CONDO, TOWNHOUSE).

  • rentZestimatenumber

    2450

    Zillow estimated monthly rent, or null when Zillow shows no rent Zestimate for the listing.

  • statestring

    TX

    Two-letter state code.

  • statusstring

    FOR_SALE

    Listing status (e.g. FOR_SALE, FOR_RENT, RECENTLY_SOLD).

  • streetAddressstring

    4510 Secure Ln

    Street address of the property. Populated whenever the provider has data for the entity.

  • taxAssessedValuenumbercan require

    398000

    Assessed value the county tax authority carries for the property, or null when none is published.

  • urlstring

    https://www.zillow.com/homedetails/4510-Secure-Ln-Austin-TX-78725/83126034_zpid/

    Absolute Zillow listing URL. Populated whenever the provider has data for the entity.

  • yearBuiltintegercan require

    2016

    Year the home was built, or null when the serving source does not publish it.

  • zestimatenumber

    431200

    Zillow estimated market value, or null when Zillow shows no Zestimate for the listing.

  • zipcodestring

    78725

  • zpidstring

    83126034

    Zillow property id (zpid). Populated whenever the provider has data for the entity.

top level
  • foundboolean

    true

  • reason"not_found"

    Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost.

You get back. Named, typed fields in the same shape whichever source answers.

FAQ

About the Zillow Search API

The AnyAPI Zillow Search API returns Zillow search data as normalized JSON from one POST call to /v1/run/zillow.search. Search Zillow for-sale, rental, or sold listings by region-level location (city, ZIP, county, or neighborhood) with optional price, bedroom, living-area, home-type, recency, and sort filters and get matching properties (price, address, beds, baths, living area, status, Zestimate) as normalized JSON. AnyAPI routes each request across 4 sources and falls back automatically when one fails. It costs from $0.80 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 100.0% of Zillow search calls through AnyAPI succeeded, with a median response time of 3.0 seconds across 3,690 measured calls.

It costs from $0.80 per 1,000 requests, in US dollars with no subscription and no monthly minimum. You fund one USD wallet and each call draws it down. Some failed wallet-funded requests incur processing charges that we pass through at cost, with no markup; the error response shows the amount charged.

Search Zillow for-sale, rental, or sold listings by region-level location (city, ZIP, county, or neighborhood) with optional price, bedroom, living-area, home-type, recency, and sort filters and get matching properties (price, address, beds, baths, living area, status, Zestimate) as normalized JSON. The response is normalized JSON with the same envelope every AnyAPI endpoint returns, so parsing a second endpoint is a change of URL and nothing else.

Over the last 30 days, 100.0% of Zillow search calls through AnyAPI succeeded, with a median response time of 3.0 seconds across 3,690 measured calls. These are AnyAPI's own measurements of traffic through the gateway, recomputed continuously, not a published service-level target.

Yes. A new AnyAPI account starts with $0.10 of free balance and no card required, which covers 125 Zillow Search calls at $0.0008 each.

AnyAPI asks the next of its 4 sources in the same request, cheapest first, so one source going down does not fail your call.

Send a POST request to https://api.getanyapi.com/v1/run/zillow.search with your AnyAPI key in an "Authorization: Bearer" header and the input as a JSON body. The same key and the same wallet work on every AnyAPI endpoint.

No. You add US dollars to one prepaid AnyAPI balance and each request draws it down. There is no monthly plan and no minimum, and the same balance pays for every AnyAPI endpoint.

Yes. Install @getanyapi/sdk from npm for TypeScript or getanyapi from pip for Python. Both call every AnyAPI endpoint with the same key, and any HTTP client works too.

Yes. An agent can connect to the AnyAPI MCP server at https://api.getanyapi.com/mcp, or create its own free-trial key with one unauthenticated POST to https://api.getanyapi.com/agent/signup and call this endpoint over HTTP.