技术博客
药品信息查询:5 分钟快速接入指南

药品信息查询:5 分钟快速接入指南

作者: 万维易源
2026-09-03
药品信息查询快速接入Python示例免费接口
# 药品信息查询:5 分钟快速接入指南 - **接口/接入点**:药品信息查询(apiCode=1468)· 1468-1 药品分类、1468-2 药品信息 - **是否免费**:免费(注册后默认可用,有档位限制) - **请求方式**:POST / GET - **返回格式**:JSON - **适用人群**:新注册用户、初级开发者 - **阅读时间**:约 5 分钟 ## 核心要点 - 药品信息查询是一个**免费**接口,注册并拿到 AppKey 后,用 query 参数 `appKey=YOUR_APPKEY` 即可调用。 - 先调 **1468-1 药品分类**拿到 `classifyId`,再用它调 **1468-2 药品信息**就能拿到具体药品列表。 - 业务数据都包在 `showapi_res_body` 里,判断 `ret_code == "0"` 即为成功。 ## Why:这跟我有什么关系 如果你在做健康管理 App、医药电商后台、或只是想在自己的工具里查一份药品说明书,药品信息查询能直接给你结构化的药品数据,省去自己维护药品库的麻烦。它是官方自营的免费接口,注册即用,非常适合先用最小成本验证想法。 ## What:前置条件与接口速览 | 项 | 说明 | |------|------| | 服务商 | 昆明秀派科技有限公司(易源官方自营) | | 鉴权 | AppKey 作为 URL query 参数:`?appKey=YOUR_APPKEY` | | 调用地址(1468-1) | `https://route.showapi.com/1468-1?appKey=YOUR_APPKEY` | | 调用地址(1468-2) | `https://route.showapi.com/1468-2?appKey=YOUR_APPKEY` | | 返回结构 | 系统级 `showapi_res_code` + 业务级 `showapi_res_body` | | 计费 | 免费 + 档位限制,具体见[官方档位说明](https://www.showapi.com/free-api) | ## How:三步跑通 ### 步骤 1:获取 AppKey 登录后在 [AppKey 管理页](https://www.showapi.com/console#/myApp) 创建应用,复制你的 AppKey,下文用 `YOUR_APPKEY` 占位。 ### 步骤 2:调用 1468-1 拿分类,取出 classifyId ```python import requests APPKEY = "YOUR_APPKEY" url = f"https://route.showapi.com/1468-1?appKey={APPKEY}" try: r = requests.get(url, timeout=10) r.raise_for_status() body = r.json()["showapi_res_body"] if body.get("ret_code") != "0": print("接口返回失败:", body.get("msg")) else: first = body["data"][0] print("大分类:", first["class"]) print("小分类:", first["classify"]) print("classifyId:", first["classifyId"]) except requests.RequestException as e: print("请求异常:", e) ``` ```bash curl -X POST "https://route.showapi.com/1468-1?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" ``` ```javascript const APPKEY = "YOUR_APPKEY"; fetch(`https://route.showapi.com/1468-1?appKey=${APPKEY}`, { method: "POST" }) .then((r) => r.json()) .then((j) => { const body = j.showapi_res_body; if (body.ret_code !== "0") return console.log("失败:", body.msg); console.log("首个 classifyId:", body.data[0].classifyId); }) .catch((e) => console.log("请求异常:", e)); ``` ### 步骤 3:用 classifyId 调 1468-2 拿药品列表 ```python import requests APPKEY = "YOUR_APPKEY" classify_id = "599ad2a0600b2149d689b75a" # 来自步骤 2 的某个 classifyId url = "https://route.showapi.com/1468-2" params = {"appKey": APPKEY, "classifyId": classify_id, "page": "1"} r = requests.post(url, data=params, timeout=10) body = r.json()["showapi_res_body"] if body.get("ret_code") == "0": for d in body["data"]: print(d["drugName"], "|", d["manu"], "|", d["pzwh"]) ``` ```bash curl -X POST "https://route.showapi.com/1468-2?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" \ -d "classifyId=599ad2a0600b2149d689b75a&page=1" ``` ```javascript const APPKEY = "YOUR_APPKEY"; const fd = new URLSearchParams(); fd.append("classifyId", "599ad2a0600b2149d689b75a"); fd.append("page", "1"); fetch(`https://route.showapi.com/1468-2?appKey=${APPKEY}`, { method: "POST", body: fd }) .then((r) => r.json()) .then((j) => console.log(j.showapi_res_body.data)); ``` ## 返回示例与解析 1468-1 返回(节选): ```json { "showapi_res_body": { "ret_code": "0", "msg": "查询成功!", "data": [ { "class": "感冒发热", "classify": "头痛", "classifyId": "599ad27f600b2149d689b5c4" } ] } } ``` 1468-2 返回(节选): ```json { "showapi_res_body": { "ret_code": "0", "count": 1000, "page": 1, "maxResult": 50, "data": [ { "manu": "北京同仁堂制药有限公司(国产)", "pzwh": "国药准字Z11020957", "drugName": "同仁堂泻肝安神丸", "drugId": "59c9aa2f0b5b76e52ff0c440", "classifyId": "599ad2a0600b2149d689b75a" } ] } } ``` - `count`:该分类下药品总数;`maxResult`:单页返回条数;`page`:当前页。 - `drugId` 可用于后续 1468-3 的 `searchType=4` 精确检索。 ## 进阶 / 边界 - `classify`(小分类)在不同大分类下**可能重复**,定位具体分类时务必结合 `class`(大分类)与 `classifyId`。 - 免费调用有档位限制,批量同步请参考[缓存策略一文](https://www.showapi.com/guides/drug-info-cache-1468)。 ## FAQ **Q1:返回 ret_code 不是 0 怎么办?** A:文档定义 ret_code 为「0 成功,其他失败」,未给出具体错误码枚举。先检查 AppKey 是否正确、URL 是否带 `?appKey=`,再看 `msg` 字段的提示;仍失败可联系官方客服 service@showapi.com。 **Q2:1468-1 药品分类需要传参数吗?** A:不需要业务参数,只传 AppKey 即可返回全部分类数据。 **Q3:classifyId 从哪里来?** A:来自 1468-1 药品分类接口的返回 `data[].classifyId`,把它作为 1468-2 的必填参数即可。 **Q4:免费接口有调用次数限制吗?** A:注册后默认可免费调用,但设有使用档次限制以防滥用,具体档位以[官方档位说明](https://www.showapi.com/free-api)为准,本文不编造数字。 ## 相关能力 / 下一步阅读 - [药品信息查询返回字段全解](https://www.showapi.com/guides/drug-info-fields-1468) - [药品分类查询实战:用 classifyId 层层下钻到具体药品](https://www.showapi.com/guides/drug-info-classification-1468) - [classifyId 到底怎么用?药品分类 Id 的必填规则与排查](https://www.showapi.com/guides/drug-info-classifyid-1468) - **本系列共 11 篇**:查看[药品信息查询指南总目录](https://www.showapi.com/guides/drug-info-guides-1468)