您需要在本周发布一个列出住宅的房产搜索。通过本指南的结束,您将能够在地图边界内查询真实的房源,随着用户输入建议位置,并使用来自 Zyla API Hub 的单个 API 密钥获取完整的房产详细信息。
此 API 为您提供的功能
加拿大房地产 API 暴露了以下端点:
- 返回基于关键字的位置建议,以加快用户输入(自动完成)。
- 在地理边界框内列出待售或出租的住宅物业(列出住宅)。
- 获取特定物业的详细信息(物业详细信息)。
开发人员将其用于基于地图的搜索用户界面、潜在客户捕获表单、代理/经纪人门户以及需要最新住宅库存的内部工具。
如果您是市场新手,Zyla API Hub 集中管理超过 10,000 个公共 API,您只需一个帐户、一个 API 密钥和一个订阅 + 配额模型。您可以在 Zyla API Hub 浏览类别和文档,并根据需要订阅单个 API。
在 Zyla API Hub 上开始
打开加拿大房地产 API 页面,点击订阅或开始免费试用(如可用),并获取您的 API 密钥。您帐户上的第一个 API 通常提供 7 天试用或 50 次请求。有关当前访问选项和定价,请始终查看列表。
从这里开始: 在加拿大房地产 API 上开始 7 天试用
所有请求都使用头部 Authorization: Bearer YOUR_API_KEY 访问 Zyla 的 hub URL。计费为订阅 + 配额,而不是按调用计费。没有免费计划。
您将使用的端点
1) 自动完成
使用此功能在用户输入时建议位置。这可以提高转化率并减少空搜索结果。
- 方法:GET
- URL: https://zylalabs.com/api/5902/canada-real-estate-api/7768/auto-complete
- 描述:发送 GET 请求并附带搜索词以获取基于关键字的位置建议,优化房产搜索体验。
- 参数(如提供):
- 查询(字符串,必填):魁北克
- CultureId(字符串,可选):1
- IncludeLocations(字符串,可选):true
官方 curl:
curl -s -X GET "https://zylalabs.com/api/5902/canada-real-estate-api/7768/auto-complete?Query=Quebec&CultureId=1&IncludeLocations=true" \
-H "Authorization: Bearer YOUR_API_KEY"
官方 JSON 响应:
{"ErrorCode":{"Id":200,"Description":"Success - OK","ProductName":"Realtor API 7 | 20241202.1 | 1018e702fe06dda8279318e12b199910ca21c3ff | Monday, December 2, 2024 12:21:41 PM","Version":"1.0.9102.31292"},"Results":[{"Type":1,"ListingId":"27656697","ReferenceNumber":"X10440405","Address_EN":"191 QUEBEC STREET","Address_FR":"191 QUEBEC STREET","City":"Bracebridge (Macaulay)","PostalCode":"p1l1e3","Province":"ON","Details_Small_EN":null,"Details_Small_FR":null,"RelativeURLEn":"\/real-estate\/27656697\/191-quebec-street-bracebridge-macaulay-macaulay","RelativeURLFr":"\/immobilier\/27656697\/191-quebec-street-bracebridge-macaulay","isReferenceMatch":false,"isPostalCodeMatch":false},{"Type":1,"ListingId":"27661192","ReferenceNumber":"X10428998","Address_EN":"549 QUEBEC STREET","Address_FR":"549 QUEBEC STREET","City":"London","PostalCode":"n5w3y9","Province":"ON","Details_Small_EN":null,"Details_Small_FR":null,"RelativeURLEn":"\/real-estate\/27661192\/549-quebec-street-london-east-g","RelativeURLFr":"\/immobilier\/27661192\/549-quebec-street-london","isReferenceMatch":false,"isPostalCodeMatch":false},{"Type":1,"ListingId":"27720876","ReferenceNumber":"R2949266","Address_EN":"212 4928 QUEBEC STREET","Address_FR":"212 4928 QUEBEC STREET","City":"Vancouver","PostalCode":"v5w2n2","Province":"BC","Details_Small_EN":null,"Details_Small_FR":null,"RelativeURLEn":"\/real-estate\/27720876\/212-4928-quebec-street-vancouver","RelativeURLFr":"\/immobilier\/27720876\/212-4928-quebec-street-vancouver","isReferenceMatch":false,"isPostalCodeMatch":false},{"Type":1,"ListingId":"27741486","ReferenceNumber":"X11894528","Address_EN":"558 QUEBEC STREET","Address_FR":"558 QUEBEC STREET","City":"Hamilton (Parkview)","PostalCode":"l8h6v4","Province":"ON","Details_Small_EN":null,"Details_Small_FR":null,"RelativeURLEn":"\/real-estate\/27741486\/558-quebec-street-hamilton-parkview-parkview","RelativeURLFr":"\/immobilier\/27741486\/558-quebec-street-hamilton-parkview","isReferenceMatch":false,"isPostalCodeMatch":false},{"Type":1,"ListingId":"27754883","ReferenceNumber":"S11901084","Address_EN":"267 QUEBEC STREET","Address_FR":"267 QUEBEC STREET","City":"Clearview (Stayner)","PostalCode":"l0m1s0","Province":"ON","Details_Small_EN":null,"Details_Small_FR":null,"RelativeURLEn":"\/real-estate\/27754883\/267-quebec-street-clearview-stayner-stayner","RelativeURLFr":"\/immobilier\/27754883\/267-quebec-street-clearview-stayner","isReferenceMatch":false,"isPostalCodeMatch":false}],"ResultsMapBox":[{…
您将实际使用此有效负载中的内容:
- ErrorCode.Id 和 ErrorCode.Description 检查成功(200 和 “成功 - OK”)。
- Results[n].Address_EN、City、PostalCode、Province 渲染自动完成项。
- Results[n].ListingId 和 ReferenceNumber 如果您想在选择后直接跳转到详细视图。
2) 列出住宅
这是核心的“列出住宅”调用。您提供一个地理边界框(纬度/经度最小/最大),并接收该区域内可用的住宅列表。您可以从地图的视口或保存的搜索中驱动它。
- 方法:GET
- URL: https://zylalabs.com/api/5902/canada-real-estate-api/7769/list-residential
- 描述:提交一个 GET 请求,附带位置、价格范围和物业类型等参数,以列出可供出售或出租的住宅物业。
- 参数(如提供):
- LatitudeMax(数字,必填):81.14747595814636
- LatitudeMin(数字,必填):-22.26872153207164
- LongitudeMax(数字,必填):-10.267941690981388
- LongitudeMin(数字,必填):-136.83037765324116
可复制粘贴的 curl:
节省时间的注意事项:
- 坐标为标准十进制度(WGS84)。使用地图视口的东北作为最大值,西南作为最小值。
- 响应包括一个 Paging 对象(例如,RecordsPerPage、CurrentPage、TotalRecords、TotalPages)。使用它来分页您的用户界面,避免获取超过所需的内容。
- API 可能返回地图图钉计数(例如,Pins)和每页上限(例如,MaxRecords)。在批处理和缓存中尊重这些。
3) 物业详细信息
在用户点击列表卡片后,使用此端点获取给定物业的完整详细信息,例如描述和物业特征。
- 方法:GET
- URL: https://zylalabs.com/api/5902/canada-real-estate-api/7770/property-detail
- 描述:提交一个 GET 请求,附带特定物业 ID,以获取详细信息,例如图像、描述和完整的物业特征。
- 参数(如提供):
- ReferenceNumber(字符串,必填):67b74ee58bc56b22659786b3
- PropertyID(字符串,必填):27935110
示例 curl:
您可以发布的端到端流程
- 当用户输入城市或街道时,调用自动完成以建议位置和已知地址。
- 将所选位置转换为边界框(例如,您地图的当前视口),并调用列出住宅以获取库存。
- 当用户点击卡片时,调用物业详细信息以渲染完整页面或右侧抽屉,显示完整的备注和属性。
Python 示例:在地图视口内获取住宅列表
下面的代码片段调用列出住宅端点,检查成功,并打印结果中的几个字段。它仅使用上述显示的参数。
import os
import requests
API_KEY = os.getenv("ZYLALABS_API_KEY", "YOUR_API_KEY")
url = "https://zylalabs.com/api/5902/canada-real-estate-api/7769/list-residential"
params = {
"LatitudeMax": "81.14747595814636",
"LatitudeMin": "-22.26872153207164",
"LongitudeMax": "-10.267941690981388",
"LongitudeMin": "-136.83037765324116",
}
headers = {"Authorization": f"Bearer {API_KEY}"}
resp = requests.get(url, headers=headers, params=params, timeout=30)
resp.raise_for_status()
data = resp.json()
# 基本成功检查
err = data.get("ErrorCode", {})
if err.get("Id") != 200:
raise SystemExit(f"API 错误: {err}")
# 如果存在,读取分页信息
paging = data.get("Paging", {})
print("RecordsPerPage:", paging.get("RecordsPerPage"))
print("CurrentPage:", paging.get("CurrentPage"))
print("TotalRecords:", paging.get("TotalRecords"))
print("TotalPages:", paging.get("TotalPages"))
# 打印几个列表
for item in (data.get("Results") or [])[:5]:
listing_id = item.get("Id")
mls = item.get("MlsNumber")
remarks = item.get("PublicRemarks")
print("-----")
print("Id:", listing_id)
print("MLS:", mls)
if remarks:
print("Remarks:", (remarks[:180] + "...") if len(remarks) > 180 else remarks)
实施提示:
- 按边界框缓存,四舍五入到 3-4 位小数,以减少用户平移/缩放时的重复调用。
- 如果 Paging.TotalPages 存在,构建一个懒惰的“加载更多”按钮,而不是预取所有内容。
- 防止缺少字段,因为列表可能因来源而异。
实际用例
- 地图搜索:将边界框绑定到您的地图视口,并在 bounds_changed 时重新查询,使用防抖。
- 潜在客户表单:使用自动完成规范化邻里或街道输入,然后保存潜在客户。
- 保存的搜索:持久化用户的最后边界,并在他们返回时使用列出住宅重新创建查询。
- 详细页面:仅在需要时使用物业详细信息提取长格式备注和特征,以保持列表快速。
通过 MCP 从 AI 代理调用
如果您使用 MCP 兼容客户端(例如,Claude Code、Cursor、Windsurf)自动化工作流程,您可以通过 Zyla MCP 端点进行相同的 HTTPS 调用。将您的密钥作为查询参数传递:
https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY
在这里了解更多信息: MCP
您的代理可以使用 Authorization: Bearer YOUR_API_KEY 头调用上述文档中的确切 hub URL。这使您的代理工具栈与您的服务器代码保持一致。有关市场上下文和您可能链接的其他 API,请浏览 Zyla API Hub。
操作说明
- 认证:始终使用 Authorization: Bearer YOUR_API_KEY。
- HTTP:所有三个显示的端点均为 GET。
- 分页:当 Paging 存在时,优先选择增量获取。不要假设无限页面——尊重 MaxRecords。
- 坐标:使用十进制度;确保 LatitudeMin ≤ LatitudeMax 和 LongitudeMin ≤ LongitudeMax 来自您的视口。
- 错误:在处理结果之前检查 ErrorCode.Id 和 ErrorCode.Description。
- 试用和配额:第一个 API 通常提供 7 天试用或 50 次请求。始终确认列表页面上的当前限制。
为什么这个设置发布得快
- 没有自定义认证服务器:一个 API 密钥跨 Zyla API。
- 清晰的分离:输入的自动完成、搜索结果的列表、深层页面的详细信息。
- MCP 支持:相同的端点可以为帮助您测试或连接工作流程的工具基础代理提供支持。
参考:端点摘要
自动完成
GET https://zylalabs.com/api/5902/canada-real-estate-api/7768/auto-complete
目的:在搜索期间提供基于关键字的位置建议。
列出住宅
GET https://zylalabs.com/api/5902/canada-real-estate-api/7769/list-residential
目的:获取边界框内的住宅库存。
物业详细信息
GET https://zylalabs.com/api/5902/canada-real-estate-api/7770/property-detail
目的:通过 ID + 参考获取单个物业的详细信息。
常见问题
我如何认证请求?
在每个请求中发送 Authorization: Bearer YOUR_API_KEY 到 hub URL。
构建地图搜索的最快方法是什么?
使用自动完成规范化输入,然后将您的地图视口传递给列出住宅,通过 LatitudeMin/Max 和 LongitudeMin/Max。平移/缩放时防抖调用,并使用 Paging 字段进行分页。
我如何获取物业级详细信息?
使用物业详细信息调用提供的 PropertyID 和 ReferenceNumber,以加载完整的备注和特征。
是否有免费计划?
没有免费计划。您帐户上的第一个 API 通常包括 7 天试用或 50 次请求。请查看 API 页面以获取当前访问选项和定价。
我可以从 AI 代理调用这些端点吗?
可以。使用 MCP 端点 https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY 和上述相同的 hub URL。
准备在您的应用中实现“API 列出住宅”吗?请在列表页面上订阅并获取您的密钥: 在加拿大房地产 API 上开始 7 天试用。您可以将相同的密钥扩展到 Zyla API Hub 的其他类别,随着项目的增长。
官方 API 响应
{"ErrorCode":{"Id":200,"Description":"成功 - OK","ProductName":"Realtor API 7 | 20241202.1 | 1018e702fe06dda8279318e12b199910ca21c3ff | 2024年12月2日星期一 12:21:41 PM","Version":"1.0.9102.31292"},"Results":[{"Type":1,"ListingId":"27656697","ReferenceNumber":"X10440405","Address_EN":"191 QUEBEC STREET","Address_FR":"191 QUEBEC STREET","City":"Bracebridge (Macaulay)","PostalCode":"p1l1e3","Province":"ON","Details_Small_EN":null,"Details_Small_FR":null,"RelativeURLEn":"\/real-estate\/27656697\/191-quebec-street-bracebridge-macaulay-macaulay","RelativeURLFr":"\/immobilier\/27656697\/191-quebec-street-bracebridge-macaulay","isReferenceMatch":false,"isPostalCodeMatch":false},{"Type":1,"ListingId":"27661192","ReferenceNumber":"X10428998","Address_EN":"549 QUEBEC STREET","Address_FR":"549 QUEBEC STREET","City":"London","PostalCode":"n5w3y9","Province":"ON","Details_Small_EN":null,"Details_Small_FR":null,"RelativeURLEn":"\/real-estate\/27661192\/549-quebec-street-london-east-g","RelativeURLFr":"\/immobilier\/27661192\/549-quebec-street-london","isReferenceMatch":false,"isPostalCodeMatch":false},{"Type":1,"ListingId":"27720876","ReferenceNumber":"R2949266","Address_EN":"212 4928 QUEBEC STREET","Address_FR":"212 4928 QUEBEC STREET","City":"Vancouver","PostalCode":"v5w2n2","Province":"BC","Details_Small_EN":null,"Details_Small_FR":null,"RelativeURLEn":"\/real-estate\/27720876\/212-4928-quebec-street-vancouver","RelativeURLFr":"\/immobilier\/27720876\/212-4928-quebec-street-vancouver","isReferenceMatch":false,"isPostalCodeMatch":false},{"Type":1,"ListingId":"27741486","ReferenceNumber":"X11894528","Address_EN":"558 QUEBEC STREET","Address_FR":"558 QUEBEC STREET","City":"Hamilton (Parkview)","PostalCode":"l8h6v4","Province":"ON","Details_Small_EN":null,"Details_Small_FR":null,"RelativeURLEn":"\/real-estate\/27741486\/558-quebec-street-hamilton-parkview-parkview","RelativeURLFr":"\/immobilier\/27741486\/558-quebec-street-hamilton-parkview","isReferenceMatch":false,"isPostalCodeMatch":false},{"Type":1,"ListingId":"27754883","ReferenceNumber":"S11901084","Address_EN":"267 QUEBEC STREET","Address_FR":"267 QUEBEC STREET","City":"Clearview (Stayner)","PostalCode":"l0m1s0","Province":"ON","Details_Small_EN":null,"Details_Small_FR":null,"RelativeURLEn":"\/real-estate\/27754883\/267-quebec-street-clearview-stayner-stayner","RelativeURLFr":"\/immobilier\/27754883\/267-quebec-street-clearview-stayner","isReferenceMatch":false,"isPostalCodeMatch":false}],"ResultsMapBox":[{…
官方 API 响应
{"ErrorCode":{"Id":200,"Description":"成功 - OK","ProductName":"Realtor API 7 | 20241202.1 | 1018e702fe06dda8279318e12b199910ca21c3ff | 2024年12月2日星期一 12:21:41 PM","Version":"1.0.9102.31292"},"Results":[{"Type":1,"ListingId":"27656697","ReferenceNumber":"X10440405","Address_EN":"191 QUEBEC STREET","Address_FR":"191 QUEBEC STREET","City":"Bracebridge (Macaulay)","PostalCode":"p1l1e3","Province":"ON","Details_Small_EN":null,"Details_Small_FR":null,"RelativeURLEn":"\/real-estate\/27656697\/191-quebec-street-bracebridge-macaulay-macaulay","RelativeURLFr":"\/immobilier\/27656697\/191-quebec-street-bracebridge-macaulay","isReferenceMatch":false,"isPostalCodeMatch":false},{"Type":1,"ListingId":"27661192","ReferenceNumber":"X10428998","Address_EN":"549 QUEBEC STREET","Address_FR":"549 QUEBEC STREET","City":"London","PostalCode":"n5w3y9","Province":"ON","Details_Small_EN":null,"Details_Small_FR":null,"RelativeURLEn":"\/real-estate\/27661192\/549-quebec-street-london-east-g","RelativeURLFr":"\/immobilier\/27661192\/549-quebec-street-london","isReferenceMatch":false,"isPostalCodeMatch":false},{"Type":1,"ListingId":"27720876","ReferenceNumber":"R2949266","Address_EN":"212 4928 QUEBEC STREET","Address_FR":"212 4928 QUEBEC STREET","City":"Vancouver","PostalCode":"v5w2n2","Province":"BC","Details_Small_EN":null,"Details_Small_FR":null,"RelativeURLEn":"\/real-estate\/27720876\/212-4928-quebec-street-vancouver","RelativeURLFr":"\/immobilier\/27720876\/212-4928-quebec-street-vancouver","isReferenceMatch":false,"isPostalCodeMatch":false},{"Type":1,"ListingId":"27741486","ReferenceNumber":"X11894528","Address_EN":"558 QUEBEC STREET","Address_FR":"558 QUEBEC STREET","City":"Hamilton (Parkview)","PostalCode":"l8h6v4","Province":"ON","Details_Small_EN":null,"Details_Small_FR":null,"RelativeURLEn":"\/real-estate\/27741486\/558-quebec-street-hamilton-parkview-parkview","RelativeURLFr":"\/immobilier\/27741486\/558-quebec-street-hamilton-parkview","isReferenceMatch":false,"isPostalCodeMatch":false},{"Type":1,"ListingId":"27754883","ReferenceNumber":"S11901084","Address_EN":"267 QUEBEC STREET","Address_FR":"267 QUEBEC STREET","City":"Clearview (Stayner)","PostalCode":"l0m1s0","Province":"ON","Details_Small_EN":null,"Details_Small_FR":null,"RelativeURLEn":"\/real-estate\/27754883\/267-quebec-street-clearview-stayner-stayner","RelativeURLFr":"\/immobilier\/27754883\/267-quebec-street-clearview-stayner","isReferenceMatch":false,"isPostalCodeMatch":false}],"ResultsMapBox":[{…