📖 禾搜开放 API 文档

搜索 · 热词 · POI · 地区行业 · 地点详情 · 开放接口
返回搜索 申请 API Key

GET /api/poi-list 新增

按城市 + 类别分页列出 POI 地点,用于搜索结果侧栏"📍 本地地点"展示。

参数

参数类型必填说明
citystring✅城市名,如 临沂市
kindstring否POI 类型:路 / 小区 / 商超 / 建筑 / 公司 / 商户
pageint否页码,默认 1
per_pageint否每页条数,默认 20,最大 50

返回示例

{
  "ok": true,
  "city": "临沂市",
  "kind": "路",
  "page": 1,
  "per_page": 5,
  "total": 747,
  "pages": 150,
  "items": [
    {"name":"安居路", "city":"临沂市", "province":"山东省", "kind":"路", "address":"", "lat":35.080, "lon":118.390},
    {"name":"沂河东路", "city":"临沂市", "province":"山东省", "kind":"路", "address":"", "lat":35.020, "lon":118.415}
  ]
}

调用样例

curl -s "http://search.cybq.com/api/poi-list?city=临沂市&kind=路&page=1&per_page=10"

# JavaScript
fetch("/api/poi-list?city=临沂市&kind=路&page=1&per_page=10")
  .then(r => r.json()).then(console.log)

GET /api/geocode

地名→坐标。支持城市、区县、街道、路、小区、商场。

参数

参数类型必填说明
qstring✅地名,如 临沂市 / 沂蒙路 / 兰山区

返回示例

{ "ok": true, "name":"临沂市", "city":"临沂市", "province":"山东省",
    "kind":"城市", "lat":35.06, "lon":118.35 }

调用样例

curl -s "http://search.cybq.com/api/geocode?q=沂蒙路"

# 地图定位(前端自动调用,定位搜索词坐标)
fetch("/api/geocode?q=" + encodeURIComponent(searchWord))

GET /api/geo-ip

根据 IP 返回城市(用于未搜关键词时自动定位用户所在城市)。

返回示例

{ "ok": true, "city":"临沂市", "region":"山东" }

GET /api/hotwords

公开热搜词(首页快捷入口),10 分钟缓存。

参数

参数类型必填说明
limitint否条数,默认 12

返回示例

{ "items": [
    {"word":"临沂天气", "heat":86832},
    {"word":"农业补贴", "heat":45200}
]}

调用样例

curl -s "http://search.cybq.com/api/hotwords?limit=10"

GET /api/wordnav

词库导航:8 个通用分类 + 16 个行业大类,每类取 N 个高频词。

返回示例

{ "categories": [
    {"type":"common", "name":"农业农资", "words":["小麦价格","化肥厂家","种子..."]},
    {"type":"industry", "name":"建材家居", "words":["瓷砖批发","地板品牌"...]}
]}

调用样例

curl -s "http://search.cybq.com/api/wordnav"

GET /diqu

地区行业导航页:全国省→市全量内链 + 行业词表(爬虫入口页)。

前端访问:https://search.cybq.com/diqu

返回 HTML 页面,包含所有省份、城市、行业分类的可点击链接。

GET /p/{省}/{市}/{地点} POI

地点详情页:某城市某地点的行业查询页(如 /p/山东省/临沂市/沂蒙路)。

返回内容

调用样例

curl -s "http://search.cybq.com/p/山东省/临沂市/沂蒙路"
# 浏览器直接打开:
# https://search.cybq.com/p/山东省/临沂市/沂蒙路

GET /p/{省}/{市}

城市 POI 总览页:列出该城市所有路/小区/商超/建筑/公司商户。

调用样例

curl -s "http://search.cybq.com/p/山东省/临沂市"
# 浏览器打开:
# https://search.cybq.com/p/山东省/临沂市

GET Sitemap

搜索引擎索引:

URL说明
/sitemap.xml首页 + 分类页
/sitemap-words.xml词库词
/sitemap-pois.xmlPOI 地点
/sitemap-local.xml地域专题(省/市/行业)
/sitemap-agri.xml农业专题
/sitemap-brands.xml品牌大全

🔄 典型调用流程

场景:用户在搜索框输入"沂蒙路",获取搜索结果 + POI 列表

步骤 1: 搜索
GET /api/search?q=沂蒙路&page=1&per_page=6
→ 返回 results(网页结果)+ pois(POI 地点)

步骤 2: 侧栏 POI 列表(自动触发)
GET /api/poi-list?city=临沂市&kind=路&page=1&per_page=20
→ 返回 POI 列表 + 分页

步骤 3: 点击某个 POI(如"沂蒙路")
浏览器跳转 → /p/山东省/临沂市/沂蒙路
→ 地点详情页(行业入口 + 地图 + 附近地点)

步骤 4: 地图定位(前端自动)
GET /api/geocode?q=沂蒙路
→ 返回坐标 {lat, lon},地图 marker 定位

📋 各模式速查表

模式端点用途是否需要 Key
🔍 全文搜索/api/search?q=关键词搜索网页结果 + POI可选
📍 POI 列表/api/poi-list?city=市&kind=路分页列出某类 POI否
🗺 地理解码/api/geocode?q=地名地名→坐标否
🌍 IP 定位/api/geo-ipIP→城市否
🔥 热词/api/hotwords?limit=10热搜词列表否
📚 词库导航/api/wordnav行业词库否
🧭 地区行业/diqu省→市 导航页否
📍 地点详情/p/{省}/{市}/{地点}POI 详情+行业入口否
🗺 站点地图/sitemap.xmlSEO 索引否
📄 地点分城/api/localregion?city=临沂市城市 POI 统计否

⚠️ 注意事项