# 药品信息查询: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)