You need fresh Zillow-style property data in your Python app this week: search by city, draw a polygon around a neighborhood, or query by lat/long for a map. By the end of this guide, you’ll call the Real-Time Zillow Data API from Python, paginate through listings, and know how to pipe the same calls through an AI agent using Zyla’s MCP endpoint.
What you can build with the Real-Time Zillow Data API
The Real-Time Zillow Data API on Zyla API Hub provides property search results you can filter by:
- Location strings (city, county, neighborhood, or zip code)
- Coordinates (lat/long + a diameter)
- Custom polygons (complex boundaries that mirror your drawing tools)
Each response includes fields developers rely on to power buyer alerts, inventory dashboards, and geo-driven search UIs: zpid, address, coordinates, price, homeType, bedrooms, bathrooms, livingArea, zestimate, rentZestimate, and more. You query straightforward HTTPS endpoints on Zyla API Hub with a single Authorization header and receive JSON suitable for immediate indexing or display.
Getting started on Zyla API Hub
Open the Real-Time Zillow Data API page and start a trial to obtain your key:
- Go to the marketplace listing: Start 7-day trial on Real-Time Zillow Data API
- Click Subscribe or Start Free Trial (when available).
- Grab your API key from the Zyla dashboard.
Authentication is simple: pass Authorization: Bearer YOUR_API_KEY on every request. Zyla uses a subscription + quota model (not pay-per-call). The first API in your account typically offers a 7-day trial or 50 requests. There is no Free Plan; check the API page for current access options and pricing.
Endpoints you’ll use
All endpoints are GET requests under the Zyla API Hub domain. Use only the documented parameters shown below, and include your Authorization header. Pagination is handled via the page parameter when supported by the specific path.
1) Search (by location string)
- Method: GET
- URL: https://zylalabs.com/api/7341/real-time-zillow-data-api/11667/search
- Description: Search for properties by location (county, neighborhood, city, or zip code).
- Required query params:
- location (string): e.g., Los Angeles, CA
- Optional query params:
- page (string): e.g., 2
- home_status (string): e.g., FOR_SALE
cURL
curl -s -X GET "https://zylalabs.com/api/7341/real-time-zillow-data-api/11667/search?location=Los+Angeles%2C+CA&page=2&home_status=FOR_SALE" \
-H "Authorization: Bearer YOUR_API_KEY"
JSON
{
"status": "OK",
"request_id": "81fc95df-86f3-44b7-a3dc-1d81abcd7a97",
"parameters": {
"page": 2,
"home_status": "FOR_SALE",
"sort": "DEFAULT",
"listing_type": "BY_AGENT",
"location": "Los Angeles, CA"
},
"data": [
{
"zpid": "136702358",
"homeStatus": "FOR_SALE",
"detailUrl": "https://www.zillow.com/homedetails/24425-Woolsey-Canyon-Rd-SPC-39-Canoga-Park-CA-91304/136702358_zpid/",
"address": "24425 Woolsey Canyon Rd Spc 39, Canoga Park, CA 91304",
"streetAddress": "24425 Woolsey Canyon Rd Spc 39",
"city": "Canoga Park",
"state": "CA",
"country": "USA",
"zipcode": "91304",
"latitude": 34.235462,
"longitude": -118.661224,
"homeType": "MANUFACTURED",
"price": 99500,
"currency": "USD",
"zestimate": 178100,
"rentZestimate": 3439,
"taxAssessedValue": 21901,
"bathrooms": 2,
"bedrooms": 4,
"livingArea": 1818,
"daysOnZillow": 5,
"isFeatured": false,
"isPreforeclosureAuction": false,
"timeOnZillow": 498172000,
"isNonOwnerOccupied": true,
"isPremierBuilder": false,
"isZillowOwned": false,
"unit": "Spc 39",
"isShowcaseListing": false,
"listingSubType": {
"is_FSBA": true
},
"palsId": "3007_SR26162189",
"id": "136702358",
"rawHomeStatusCd": "ForSale",
"marketingStatusSimplifiedCd": "For Sale by Agent",
"imgSrc": "https://photos.zillowstatic.com/fp/1d8602169bd359c27caa6d6e25cdf662-p_e.jpg",
"hasImage": true,
"statusType": "FOR_SALE",
"statusText": "Home for sale",
"countryCurrency": "$",
"unformattedPrice": 99500,
"addressStreet": "24425 Woolsey Canyon Rd Spc 39",
"addressCity": "Canoga Park",
"addressState": "CA",
"addressZipcode": "91304",
"isUndisclosedAddress": false,
"shouldShowRequestOnPrice": false,
"beds": 4,
"baths": 2,
"area": 1818,
"latLong": {
"latitude": 34.235462,
"longitude": -118.661224
},
"flexFieldText": "5 days on…
Key fields most teams use immediately: zpid (unique listing id), price (USD), bedrooms, bathrooms, livingArea (square feet), latitude/longitude (for mapping), homeType, zestimate, rentZestimate, daysOnZillow, and detailUrl for deep-linking.
2) Search by Coordinates
- Method: GET
- URL: https://zylalabs.com/api/7341/real-time-zillow-data-api/11668/search-by-coordinates
- Description: Search for properties around a coordinate point, optionally scoped by a diameter.
- Required query params:
- long (string): e.g., -118.504744
- lat (string): e.g., 34.01822
- Optional query params:
- diameter (string): e.g., 2
cURL
Response shape includes a parameters block echoing your query (long, lat, diameter, page, home_status, sort, listing_type) and a data array with listings around the coordinate. This path is ideal for “search near me,” map pin queries, or routing-based lead capture.
3) Search by Polygon
- Method: GET
- URL: https://zylalabs.com/api/7341/real-time-zillow-data-api/11669/search-by-polygon
- Description: Search for properties within a custom polygon. This path supports all filters and options available on Zillow.com, while your requests are defined by a polygon string of coordinate pairs.
- Required query params:
- polygon (string): coordinate pairs separated by commas (use the exact formatting from the sample below).
cURL
Use this when your users draw a boundary on a map or when you need to match school zones or investor-defined neighborhood outlines. The response includes the parameters you sent plus a data array of properties contained within that polygon.
Python integration: end-to-end example
Below is a minimal, copy-pasteable Python script using requests to hit the Search endpoint. It reads a few fields from the first result and demonstrates basic pagination. Keep your Authorization header and URL parameters exactly as shown.
Python
import os
import sys
import time
import requests
API_KEY = os.getenv("ZYLA_API_KEY", "YOUR_API_KEY")
BASE_URL = "https://zylalabs.com/api/7341/real-time-zillow-data-api/11667/search"
def search_properties(location, page=None, home_status=None):
params = {"location": location}
if page is not None:
params["page"] = str(page)
if home_status is not None:
params["home_status"] = home_status
resp = requests.get(
BASE_URL,
headers={"Authorization": f"Bearer {API_KEY}"},
params=params,
timeout=30,
)
resp.raise_for_status()
return resp.json()
def main():
# Required param: location. Optional: page, home_status.
data = search_properties("Los Angeles, CA", page=2, home_status="FOR_SALE")
# Quick sanity check
if data.get("status") != "OK":
print("Non-OK status:", data)
sys.exit(1)
# Read common fields from the first listing (if present)
listings = data.get("data") or []
if not listings:
print("No results found on this page.")
sys.exit(0)
first = listings[0]
zpid = first.get("zpid")
price = first.get("price")
beds = first.get("bedrooms") or first.get("beds")
baths = first.get("bathrooms") or first.get("baths")
lat = first.get("latitude") or (first.get("latLong") or {}).get("latitude")
lng = first.get("longitude") or (first.get("latLong") or {}).get("longitude")
detail_url = first.get("detailUrl")
print("First result:")
print(" zpid:", zpid)
print(" price (USD):", price)
print(" beds/baths:", beds, "/", baths)
print(" coords:", lat, ",", lng)
print(" details:", detail_url)
# Pagination: request the next page only if you need it
next_page = (data.get("parameters") or {}).get("page", 1)
try:
next_page = int(next_page) + 1
except Exception:
next_page = None
if next_page:
time.sleep(0.5) # be polite between requests
more = search_properties("Los Angeles, CA", page=next_page, home_status="FOR_SALE")
print("Next page status:", more.get("status"), "results:", len(more.get("data") or []))
if __name__ == "__main__":
main()
Design notes that save time
- Authentication: Always send Authorization: Bearer YOUR_API_KEY. No query param auth is required.
- Currency and units: Price and zestimate are in USD. livingArea and area are in square feet, and lotAreaUnit may return sqft.
- Pagination: Where page is supported, it is a string parameter. Start from page 1 (default) and increment until the data array is empty. Do not assume total_pages unless you compute it yourself from page-by-page results.
- Caching: For list results that back a UI, consider caching by your query string (e.g., location + page + home_status) for a short TTL to reduce identical repeat calls.
- Mapping: Use latitude and longitude on each item; when present, latLong contains the same data as a nested object.
- Filtering: For Search by Polygon, the listing notes support for all filters and options available on Zillow.com. Only send parameters explicitly documented by the listing. When you need more filters, check the API page for updates.
Practical use cases
- Buyer alerts: Poll Search or Search by Coordinates nightly for “FOR_SALE” and notify users about new zpid values not seen in your last snapshot.
- Map search: Use Search by Coordinates for “near me” and Search by Polygon when users draw custom shapes around a neighborhood boundary.
- Investor scans: Combine polygon queries with regular pagination to export price, bedrooms, bathrooms, livingArea, zestimate, and rentZestimate for cap-rate modeling.
- Lead routing: Read city, zipcode, and price to assign new listings to the right agents in your CRM.
Calling the API through an AI agent (MCP)
If you use a code-centric AI IDE or agent (Claude Code, Cursor, Windsurf, or any MCP-compatible client), you can route calls to this API through Zyla’s MCP endpoint. Configure your agent with the Zyla MCP address and your key. The agent can then invoke the same HTTPS paths you saw above via the MCP layer.
- MCP endpoint: MCP
- Provide your Zyla API key to the MCP client when prompted.
- Ask the agent to hit the relevant Real-Time Zillow Data API path, specifying the same query string parameters (e.g., location or polygon) you’d use directly.
This lets you scaffold integrations, write scrapers, or test query variations conversationally without leaving your editor.
Endpoint recap with parameters
- Search
- GET https://zylalabs.com/api/7341/real-time-zillow-data-api/11667/search
- Required: location
- Optional: page, home_status
- Search by Coordinates
- GET https://zylalabs.com/api/7341/real-time-zillow-data-api/11668/search-by-coordinates
- Required: long, lat
- Optional: diameter
- Search by Polygon
- GET https://zylalabs.com/api/7341/real-time-zillow-data-api/11669/search-by-polygon
- Required: polygon
All requests require the Authorization header with your Zyla API key. Visit the Real-Time Zillow Data API page on Zyla API Hub to review additional details and updates.
Putting it all together quickly
For a production MVP, do the following:
- Create a key on the API listing page and store it as ZYLA_API_KEY in your env.
- Wire up the Search path to accept user input for location and pagination. Return zpid, price, bedrooms, bathrooms, livingArea, and detailUrl to your frontend.
- On your map page, switch to Search by Coordinates to support pin-based discovery; debounce requests as the user pans.
- Add an advanced search mode with Search by Polygon to let users draw custom areas.
- Cache by URL and page to reduce duplicate fetches; refresh periodically.
FAQ
What authentication does the Real-Time Zillow Data API use?
Send Authorization: Bearer YOUR_API_KEY on every request. Do not put the key in the query string.
How do I paginate results?
Use the page query parameter where supported (e.g., the Search endpoint). Increment page while results keep returning data items.
Can I search within a drawn shape?
Yes. Use the Search by Polygon path and pass the polygon query parameter exactly as a sequence of coordinate pairs (format shown in the sample cURL).
What units and currency are used?
Prices and zestimate are in USD. livingArea and area are in square feet; lotAreaUnit may also return sqft.
Is there a free plan?
No Free Plan. Zyla uses subscription + quota. The first API typically includes a 7-day trial or 50 requests. Check the API page for current access options and pricing.
Ready to ship? Start your trial, get a key, and run the cURL above against the Real-Time Zillow Data API. Your next step: open the marketplace item and subscribe here: Start 7-day trial on Real-Time Zillow Data API.