PMC OAI-PMH API 是获取 PubMed Central(PMC)全文数据的官方接口,支持批量检索与下载。该服务基于 Open Archives Initiative Protocol for Metadata Harvesting (OAI-PMH) v2.0 标准运行,仅允许通过指定的 Cloud Service、FTP Service、E-Utilities 和 BioC API 进行自动化获取,其他自动化工具将被禁止。
访问全文数据需关注版权许可。参数 set=pmc-open 可筛选出允许重用的文章集合。返回的数据格式包括 NISO JATS XML(用于元数据或全文)及 Dublin Core 格式。其中,metadataPrefix=pmc_fm 对应 PMC 前端元数据,metadataPrefix=oai_dc 对应 Dublin Core 元数据,而 metadataPrefix=pmc 则提供允许重用的文章全文 XML。
API 基础地址为 https://pmc.ncbi.nlm.nih.gov/api/oai/v1/mh/。请求频率限制为每秒 3 次,若脚本请求超过 100 次,建议在非高峰时段运行(美东时间周一至周五凌晨 5 点至晚上 9 点之外)。系统支持 HTTP 压缩,需在请求头中设置 Accept-Encoding: gzip, deflate。
ListIdentifiers 接口用于获取文章标识符。单次请求最多返回 50 个 ID,若结果超过此数,响应中将包含 resumptionToken,用于获取下一批数据。例如,可查询 2025-07-01 之后发布的文章:https://pmc.ncbi.nlm.nih.gov/api/oai/v1/mh/?verb=ListIdentifiers&from=2025-07-01&metadataPrefix=pmc_fm。
ListRecords 接口用于获取全文 XML。单次最多返回 10 条记录,同样通过 resumptionToken 分页。示例:获取 BMJ 期刊在 2025-03-22 至 2025-06-12 期间发布的文章全文:https://pmc.ncbi.nlm.nih.gov/api/oai/v1/mh/?verb=ListRecords&from=2025-03-22&until=2025-06-12&set=bmj&metadataPrefix=pmc。若某记录无全文许可,将返回错误。
GetRecord 接口可按 ID 获取特定记录的不同格式内容,如:https://pmc.ncbi.nlm.nih.gov/api/oai/v1/mh/?verb=GetRecord&identifier=oai:pubmedcentral.nih.gov:12124693&metadataPrefix=pmc。所有用户须自行遵守各文章版权条款,不得违反重限制约。