整理日期:2026-08-13 · 基于当日实测请求 · 数据口径:国内 vs 国外(FDA)
在健康管理平台、医药类 App 或内部系统里做药品数据集成时,常需要按药品名称、批准文号取到说明书、适应症、禁忌、生产厂家等信息。社区里流传过不少"免费药品查询接口",但可用性会随时间变化------有的已停服,有的被转卖成广告站。本文先说明需求,再对社区中流传的接口做了一次实测,剔除已失效项,最后按国内 / 国外数据口径梳理仍可尝试的方案,供按需自取。
一、免费接口盘点(仍可尝试)
-
万维易源 药品信息查询(国内,免费服务,需 appKey)
-
麦钛帮 药品查询(国内,免费额度 1000 次/日,需 key)
-
聚合数据 药品信息(国内,需 key,商业接口)
-
DailyMed(国外 FDA 说明书,免费无 key)
-
openFDA(国外 FDA 标签 / 不良反应,免费无 key)
-
RxNorm(临床术语标准化,免费无 key)
**已失效说明:**早年号称"永久免费药品库 API"的
医药吧 yi18(api.yi18.net),本次实测drug/list已 302 重定向到survey-smiles.com这类与药品无关的站点,不再返回任何药品数据,判定为已失效,不列入下方清单。社区早年还流传过淘宝、新浪等第三方药品查询页面,均早已下线,不再赘述。
二、接口梳理
1、万维易源 药品信息查询(官方自营 · 国内)
覆盖中/西药、OTC、处方药等近 10 万种药品,支持按药品名称、批准文号、成分检索,返回有效期、成分明细、生产企业、药准字号、适应症、禁忌、说明书原文等 30+ 字段。官方自营,稳定可信,产品页标注为"免费服务"。
请求方式 POST/GET,返回 JSON。四个接入点:药品分类(1468-1)、药品信息(1468-2)、药品详细信息(1468-3)、药名查询(1468-4)。
**实测(2026-08-13):**未带 appKey 请求返回结构化错误 {"showapi_res_error":"appKey err","showapi_res_code":-1004},说明服务在线,需注册 appKey 后调用。
限制:免费额度以控制台为准,超量按平台计费。产品页:药品分类 | 药品信息查询 | API 市场 | 万维易源
2、麦钛帮 药品查询(国内 · 需 key)
按药品名 / 条形码 / 本位码返回说明书、价格、生产厂家、国药准字、批准文号、规格等。请求地址 https://www.maitanbang.com/api/medicine/index,参数 key、name;免费额度 1000 次/日(会员免费 100 次)。
本环境未连通 · 需自测:本次请求未收到响应(疑似网络出口限制),未能完成请求级验证,接入前建议自测。
3、聚合数据 药品信息(国内 · 需 key · 商业)
接口地址 http://api2.juheapi.com/medicine/list,返回药品名称、分类、厂家、规格、功能主治、成份、禁忌等。为商业聚合平台接口,需申请 key。
本环境未连通 · 需自测:本次请求未收到响应(疑似网络出口限制),接入前建议自测。
4、DailyMed(国外 · FDA 说明书 · 免费无 key)
美国国家医学图书馆(NIH)维护,发布 FDA 已审批药品的完整说明书(SPL),结构化 JSON 返回。
可用 ✅ :本次请求返回 HTTP 200 与 JSON 列表,可直接调用。示例:
https://dailymed.nlm.nih.gov/dailymed/services/v2/spls.json?drugName=aspirin
5、openFDA(国外 · FDA 标签 / 不良反应 · 免费无 key)
美国 FDA 公开数据平台,覆盖药品标签、不良反应报告(FAERS)、召回等,JSON 返回。无 key 可低量调用,注册 key 可提升限流(约 240 次/分、12 万次/日)。
本环境未连通 · 需自测 :本次请求未收到响应(疑似网络出口限制),未能完成请求级验证,接入前建议自测。示例:
https://api.fda.gov/drug/label.json?search=openfda.generic_name:aspirin&limit=1
6、RxNorm(国外 · 临床术语标准化 · 免费无 key)
美国国家医学图书馆维护的临床用药术语标准,支持药名 / RxCUI / 概念关系检索,返回 JSON 或 XML,适合做药名归一与映射。
本环境未连通 · 需自测 :本次请求未收到响应(疑似网络出口限制),未能完成请求级验证,接入前建议自测。示例:
https://rxnav.nlm.nih.gov/REST/drugs.json?name=aspirin
三、参数速览
| 接口 | 数据范围 | 鉴权 | 免费额度 / 限制 | 实测(2026-08-13) |
|---|---|---|---|---|
| 万维易源 药品信息查询 | 国内近 10 万药品 | appKey | 免费服务(以控制台为准) | 在线 · 需 appKey |
| 麦钛帮 药品查询 | 国内药品 | key | 1000 次/日 | 本环境未连通 · 需自测 |
| 聚合数据 药品信息 | 国内药品 | key | 商业计费 | 本环境未连通 · 需自测 |
| DailyMed | 国外 FDA 说明书 | 无 | 免费 | 可用 ✅ |
| openFDA | 国外 FDA 标签 / 不良反应 | 无(key 提额) | 免费(240 次/分 · 12 万/日) | 本环境未连通 · 需自测 |
| RxNorm | 临床术语标准化 | 无 | 免费 | 本环境未连通 · 需自测 |
四、场景化选型建议
-
国内药品数据(国药准字、适应症、禁忌、厂家):可考虑万维易源药品信息查询(免费服务、国内字段较全);需要批量调用可对比麦钛帮的每日免费额度或聚合数据的商业额度。
-
国外药品说明书 / 标签 / 不良反应:可考虑 DailyMed、openFDA;做药名标准化映射可考虑 RxNorm。
-
限流:免费接口普遍限流较严,正式上线建议加缓存、控制频率,超量走各自官方 / 商业服务。
五、实战代码示例
调用万维易源(需填 appKey)
import requests
url = "https://route.showapi.com/1468-1" # 药品分类接入点
params = {"appKey": "YOUR_APPKEY"}
r = requests.get(url, params=params, timeout=15)
print(r.json())
# 无 key 时返回:{"showapi_res_error":"appKey err","showapi_res_code":-1004}
调用 DailyMed(免费无 key)
curl -s "https://dailymed.nlm.nih.gov/dailymed/services/v2/spls.json?drugName=aspirin" | head -c 400
六、FAQ
Q:有没有完全免费、无需 key 的国内药品接口?
A:本次实测早年流传的 yi18 已失效;国内合规药品数据多需密钥或有免费额度。万维易源标注为免费服务但需注册 appKey,麦钛帮有每日免费额度但需 key。
Q:国外接口能查国内国药准字吗?
A:不能。openFDA / DailyMed / RxNorm 覆盖的是美国上市药品,与国内批文体系不同,字段不互通。
Q:限流怎么办?
A:加本地缓存、控制请求频率;超过免费额度后走官方 / 商业服务。
以上方案各有权限与数据范围差异,按自身场景取用即可。本文明示的"实测"均基于 2026-08-13 的当日请求,服务商策略会变化,正式接入前建议再自测一次。