开放数据接口免费 · 免密钥 · 限批量抓取
上海 3,666 栋写字楼与产业园的报价、面积段、物业费、地铁与坐标,43,492 套在租单元。JSON 直出,不申请、不注册、不需要密钥,允许 AI 与程序直接调用。单 IP 有配额,正常调用完全够用,挡的是批量下载。
一、三个端点GET · 静态 JSON · 支持 CORS
| 端点 | 内容 | 大小 | 配额 |
|---|---|---|---|
/api/buildings.json全量楼盘 |
3,666 栋,每栋一条,含报价区间、面积段、物业费、地铁、坐标与详情页地址 | 1.9 MBgzip 后约 249 KB | 6 次每 10 分钟 |
/api/stats.json市场统计 |
全市与分区的租金中位数、分位值、物业费中位数、面积段分布 | 约 2 KB | 120 次每 10 分钟 |
/api/schema.json字段说明 |
上面两个文件的每个字段的含义、单位与缺失规则(machine-readable) | 约 2 KB | 120 次每 10 分钟 |
全部是静态文件,每天随站点重生成一次。生成时间写在每个文件的 generated_at 里,调用方可以据此判断新旧。
二、怎么调
任何能发 HTTP 请求的地方都能用。三段示例分别是命令行、浏览器与 Python:
# curl
curl -s https://vanshidc.com/api/buildings.json | jq '.buildings[] | select(.district=="静安区") | .name'
# 浏览器 / 任何前端
const r = await fetch('https://vanshidc.com/api/buildings.json');
const { buildings } = await r.json();
# Python
import requests
bs = requests.get('https://vanshidc.com/api/buildings.json').json()['buildings']
print([b['name'] for b in bs if b.get('rent_lo') and b['rent_lo'] < 4])
给 AI 用更简单 —— 把这句话丢给 ChatGPT、Claude、DeepSeek 或任何支持联网的 Agent:
请读取 https://vanshidc.com/api/buildings.json 与 https://vanshidc.com/api/schema.json,
按 schema 理解字段,然后回答:预算 6 元/㎡/天以内、
需要 800㎡ 左右、步行 10 分钟内要有地铁的楼有哪些?
按报价从低到高列出来,并说明每栋的物业费和最近地铁站。
这两句提示词可以直接复制。字段含义由 schema.json 自带说明,AI 不需要额外解释。
三、一条楼盘长什么样
{
"id": 4346,
"name": "白玉兰广场",
"district": "虹口区",
"business_district": "北外滩",
"address": "东大名路501号",
"lat": 31.2451, "lng": 121.4906,
"property_type": "写字楼",
"rent_lo": 5.2, "rent_hi": 6.2,
"mgmt_fee": 42,
"std_area_low": 220, "std_area_high": 2500,
"floors_total": 67,
"completion": 2017,
"metro": { "lines": ["12"], "station": "国际客运中心", "walk_min": 5 },
"units_count": 10,
"area_min": 220, "area_max": 220,
"photo_count": 3,
"url": "https://vanshidc.com/loupan/sinar-mas-plaza.html",
"updated_at": "2026-10-24"
}
缺失即 null,不填猜测值。没有挂牌价的楼 rent_lo 与 rent_hi 都是 null —— 请按「面议」处理,不要用同区均价替它推算。这条规则写在 schema 里,也在每个字段的说明里重复了一遍。
四、限流与反爬规则写在这里,不藏着
接口免费,但有配额。挡的是「分钟级反复拉同一个 1.9 MB 文件」这种批量下载,不是正常调用 —— 调一次、存本地、改代码再调,一天几十次也碰不到上限。
- 配额:全量
buildings.json每个 IP 每 10 分钟 6 次;stats.json与schema.json各 120 次。 - 封禁:10 分钟内撞满 3 次配额,该 IP 封 30 分钟。不是永久封 —— 一栋写字楼里几十家公司可能共用一个出口 IP,永久封禁会误伤真人。
- 省流量的正确姿势:请求带
If-None-Match,我们回304且零字节。数据每天随站点更新,本地缓存一天完全够用。 - 被挡了会看到什么:
429,响应头带Retry-After(秒)与X-RateLimit-Limit/X-RateLimit-Remaining。 - 不要做的:批量镜像整站数据、多 IP 轮换拉全量、把接口当实时行情轮询。
需要整份数据做离线研究或产品集成,写一封邮件说清用途就行,我们直接给一份带日期的快照 —— 比互相较劲省事,也免得你被配额挡在半路。
五、使用条件
- 许可:数据以 CC BY 4.0 开放 —— 商用、改编、再分发都可以,注明「数据来源:万仕行 vanshidc.com」即可。许可覆盖的是内容,不覆盖批量抓取行为(见上一节的配额)。
- 报价不是承诺:挂牌价由业主或代理提供,会随租期、楼层、装修与免租期变动,以签署的合同为准。不要把本接口的报价作为「官方报价」对外发布。
- 不做实时保证:每天随站点更新一次,不是逐秒行情。要求秒级准确的场景请直接打 183 0180 3714 找顾问确认。
- 不在开放范围:内部核验字段、质量评分、客户需求单与任何联系人信息均不写入接口,后续也不会开放。
接口地址或字段若要变更,会提前 30 天在本页公告,并保留旧版本路径至少 6 个月。
不想写代码
用 AI 选址顾问:填人数、预算与区域,直接在页面上出方案。
打开选址顾问 →