您本周需要在 Python 应用中获取新鲜的 Zillow 风格的房产数据:按城市搜索,在社区周围绘制多边形,或通过经纬度查询地图。在本指南结束时,您将能够从 Python 调用实时 Zillow 数据 API,分页浏览房源,并了解如何通过 Zyla 的 MCP 端点将相同的调用传递给 AI 代理。
您可以使用实时 Zillow 数据 API 构建的内容
Zyla API Hub 上的实时 Zillow 数据 API 提供您可以按以下条件过滤的房产搜索结果:
- 位置字符串(城市、县、社区或邮政编码)
- 坐标(纬度/经度 + 直径)
- 自定义多边形(与您的绘图工具相匹配的复杂边界)
每个响应都包含开发人员依赖的字段,以支持买家警报、库存仪表板和地理驱动的搜索用户界面:zpid、地址、坐标、价格、房屋类型、卧室、浴室、居住面积、估价、租金估价等。您可以通过 Zyla API Hub 上的简单授权头查询直接的 HTTPS 端点,并接收适合立即索引或显示的 JSON。
在 Zyla API Hub 上开始
打开实时 Zillow 数据 API 页面并开始试用以获取您的密钥:
- 访问市场列表: 开始 7 天试用实时 Zillow 数据 API
- 点击订阅或开始免费试用(如果可用)。
- 从 Zyla 仪表板获取您的 API 密钥。
身份验证很简单:在每个请求中传递 Authorization: Bearer YOUR_API_KEY。Zyla 使用订阅 + 配额模型(不是按调用付费)。您帐户中的第一个 API 通常提供 7 天试用或 50 次请求。没有免费计划;请查看 API 页面以获取当前访问选项和定价。
您将使用的端点
所有端点都是在 Zyla API Hub 域下的 GET 请求。仅使用下面显示的文档参数,并包含您的授权头。当特定路径支持时,通过 page 参数处理分页。
1) 按位置字符串搜索
- 方法:GET
- URL: https://zylalabs.com/api/7341/real-time-zillow-data-api/11667/search
- 描述:按位置(县、社区、城市或邮政编码)搜索房产。
- 所需查询参数:
- location(字符串):例如,洛杉矶,加州
- 可选查询参数:
- page(字符串):例如,2
- home_status(字符串):例如,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": "房屋待售",
"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…
大多数团队立即使用的关键字段:zpid(唯一房源 ID)、价格(美元)、卧室、浴室、居住面积(平方英尺)、纬度/经度(用于制图)、房屋类型、估价、租金估价、在 Zillow 上的天数和用于深度链接的 detailUrl。
2) 按坐标搜索
- 方法:GET
- URL: https://zylalabs.com/api/7341/real-time-zillow-data-api/11668/search-by-coordinates
- 描述:在坐标点周围搜索房产,可选地按直径范围。
- 所需查询参数:
- long(字符串):例如,-118.504744
- lat(字符串):例如,34.01822
- 可选查询参数:
- diameter(字符串):例如,2
cURL
响应形状包括一个参数块,回显您的查询(long、lat、diameter、page、home_status、sort、listing_type)和一个数据数组,其中包含围绕该坐标的房源。此路径非常适合“在我附近搜索”、地图标记查询或基于路由的潜在客户捕获。
3) 按多边形搜索
- 方法:GET
- URL: https://zylalabs.com/api/7341/real-time-zillow-data-api/11669/search-by-polygon
- 描述:在自定义多边形内搜索房产。此路径支持 Zillow.com 上可用的所有过滤器和选项,而您的请求由一串坐标对定义。
- 所需查询参数:
- polygon(字符串):用逗号分隔的坐标对(使用下面示例中的确切格式)。
cURL
当您的用户在地图上绘制边界时,或当您需要匹配学校区域或投资者定义的社区轮廓时使用此功能。响应包括您发送的参数以及包含在该多边形内的房产的数据数组。
Python 集成:端到端示例
以下是一个最小的、可复制粘贴的 Python 脚本,使用 requests 访问搜索端点。它从第一个结果中读取几个字段,并演示基本的分页。请保持您的授权头和 URL 参数与所示完全相同。
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():
# 所需参数:location。可选:page、home_status。
data = search_properties("Los Angeles, CA", page=2, home_status="FOR_SALE")
# 快速完整性检查
if data.get("status") != "OK":
print("非 OK 状态:", data)
sys.exit(1)
# 从第一个房源中读取常见字段(如果存在)
listings = data.get("data") or []
if not listings:
print("此页面未找到结果。")
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("第一个结果:")
print(" zpid:", zpid)
print(" price (USD):", price)
print(" beds/baths:", beds, "/", baths)
print(" coords:", lat, ", ", lng)
print(" details:", detail_url)
# 分页:仅在需要时请求下一页
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) # 在请求之间保持礼貌
more = search_properties("Los Angeles, CA", page=next_page, home_status="FOR_SALE")
print("下一页状态:", more.get("status"), "结果:", len(more.get("data") or []))
if __name__ == "__main__":
main()
节省时间的设计笔记
- 身份验证:始终发送 Authorization: Bearer YOUR_API_KEY。无需查询参数身份验证。
- 货币和单位:价格和估价以美元计。居住面积和面积以平方英尺计,lotAreaUnit 可能返回 sqft。
- 分页:在支持的地方,page 是字符串参数。从第 1 页(默认)开始,递增直到数据数组为空。除非您自己从逐页结果计算,否则不要假设 total_pages。
- 缓存:对于支持用户界面的列表结果,请考虑按查询字符串(例如,location + page + home_status)进行缓存,以缩短 TTL,减少相同的重复调用。
- 映射:在每个项目上使用纬度和经度;当存在时,latLong 包含与嵌套对象相同的数据。
- 过滤:对于按多边形搜索,房源说明支持 Zillow.com 上可用的所有过滤器和选项。仅发送房源明确记录的参数。当您需要更多过滤器时,请查看 API 页面以获取更新。
实际用例
- 买家警报:每晚轮询搜索或按坐标搜索“FOR_SALE”,并通知用户有关在您上次快照中未见的新 zpid 值。
- 地图搜索:使用按坐标搜索进行“在我附近”,使用按多边形搜索当用户在社区边界周围绘制自定义形状时。
- 投资者扫描:将多边形查询与常规分页结合,以导出价格、卧室、浴室、居住面积、估价和租金估价,以进行资本回报率建模。
- 潜在客户路由:读取城市、邮政编码和价格,将新房源分配给您 CRM 中的合适代理。
通过 AI 代理调用 API(MCP)
如果您使用以代码为中心的 AI IDE 或代理(Claude Code、Cursor、Windsurf 或任何兼容 MCP 的客户端),您可以通过 Zyla 的 MCP 端点将调用路由到此 API。使用 Zyla MCP 地址和您的密钥配置您的代理。然后,代理可以通过 MCP 层调用您上面看到的相同 HTTPS 路径。
- MCP 端点: MCP
- 在提示时向 MCP 客户端提供您的 Zyla API 密钥。
- 要求代理访问相关的实时 Zillow 数据 API 路径,指定您直接使用的相同查询字符串参数(例如,位置或多边形)。
这使您能够快速搭建集成、编写抓取程序或测试查询变体,而无需离开编辑器。
端点回顾与参数
- 搜索
- GET https://zylalabs.com/api/7341/real-time-zillow-data-api/11667/search
- 所需:位置
- 可选:页面、房屋状态
- 按坐标搜索
- GET https://zylalabs.com/api/7341/real-time-zillow-data-api/11668/search-by-coordinates
- 所需:经度、纬度
- 可选:直径
- 按多边形搜索
- GET https://zylalabs.com/api/7341/real-time-zillow-data-api/11669/search-by-polygon
- 所需:多边形
所有请求都需要带有您的 Zyla API 密钥的授权头。访问 Zyla API Hub 上的实时 Zillow 数据 API 页面以查看其他详细信息和更新。
快速整合所有内容
对于生产 MVP,请执行以下操作:
- 在 API 列表页面创建一个密钥,并将其存储为 ZYLA_API_KEY 在您的环境中。
- 将搜索路径连接到接受用户输入的位置和分页。将 zpid、价格、卧室、浴室、居住面积和 detailUrl 返回到您的前端。
- 在您的地图页面上,切换到按坐标搜索以支持基于标记的发现;在用户平移时防抖请求。
- 添加一个高级搜索模式,使用按多边形搜索让用户绘制自定义区域。
- 按 URL 和页面缓存以减少重复获取;定期刷新。
常见问题解答
实时 Zillow 数据 API 使用什么身份验证?
在每个请求中发送 Authorization: Bearer YOUR_API_KEY。不要将密钥放在查询字符串中。
我如何分页结果?
在支持的地方使用 page 查询参数(例如,搜索端点)。在结果继续返回数据项时递增页面。
我可以在绘制的形状内搜索吗?
可以。使用按多边形搜索路径,并将多边形查询参数作为坐标对的序列准确传递(格式如示例 cURL 中所示)。
使用什么单位和货币?
价格和估价以美元计。居住面积和面积以平方英尺计;lotAreaUnit 也可能返回 sqft。
是否有免费计划?
没有免费计划。Zyla 使用订阅 + 配额。第一个 API 通常包括 7 天试用或 50 次请求。请查看 API 页面以获取当前访问选项和定价。
准备好发布了吗?开始您的试用,获取密钥,并对实时 Zillow 数据 API 运行上面的 cURL。您的下一步:打开市场项目并在此处订阅: 开始 7 天试用实时 Zillow 数据 API。