PubMed Retrieval API

Operations for retrieving records from Entrez databases

Operations 1

GET /efetch.fcgi EFetch - Retrieve full records #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/pubmed-retrieval-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

pubmed-retrieval-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: NCBI Entrez E-utilities History Retrieval API
  description: The Entrez Programming Utilities (E-utilities) provide a stable interface to the NCBI Entrez query and database system. Nine server-side programs allow searching, fetching, posting, linking, and summarizing records across PubMed and 38 NCBI databases including PubMed Central, Gene, Nuccore, and Protein. Supports searching 35M+ biomedical citations, retrieving abstracts, full-text links, MeSH terms, and related article metadata.
  version: v1.0.0
  termsOfService: https://www.ncbi.nlm.nih.gov/home/about/policies.shtml
  contact:
    name: NCBI Help Desk
    url: https://support.nlm.nih.gov/
    email: info@ncbi.nlm.nih.gov
  license:
    name: NCBI Data Use Policies
    url: https://www.ncbi.nlm.nih.gov/home/about/policies.shtml
servers:
- url: https://eutils.ncbi.nlm.nih.gov/entrez/eutils
  description: NCBI E-utilities production server
tags:
- name: Retrieval
  description: Operations for retrieving records from Entrez databases
paths:
  /efetch.fcgi:
    get:
      summary: EFetch - Retrieve full records
      description: Retrieves full records in a specified format for a list of input UIDs from an Entrez database. Supports multiple return types and modes depending on the target database.
      operationId: EFetch
      tags:
      - Retrieval
      parameters:
      - name: db
        in: query
        description: Database from which to retrieve records (e.g., pubmed, nucleotide, protein, gene).
        required: true
        schema:
          type: string
          example: pubmed
      - name: id
        in: query
        description: Comma-delimited list of UIDs to retrieve.
        required: false
        schema:
          type: string
          example: 36328499,36328500
      - name: retstart
        in: query
        description: 'Sequential index of the first record to retrieve (default: 0).'
        required: false
        schema:
          type: integer
          default: 0
      - name: retmax
        in: query
        description: 'Number of records to retrieve (default: 20, max: 10000).'
        required: false
        schema:
          type: integer
          default: 20
          maximum: 10000
      - name: rettype
        in: query
        description: 'Retrieval type. For PubMed: abstract, medline, uilist, docsum. For sequences: fasta, gb, gp.'
        required: false
        schema:
          type: string
          example: abstract
      - name: retmode
        in: query
        description: 'Retrieval mode. Values: xml, text, asn.1.'
        required: false
        schema:
          type: string
          enum:
          - xml
          - text
          - asn.1
      - name: WebEnv
        in: query
        description: Web environment string from a previous ESearch, EPost, or ELink call.
        required: false
        schema:
          type: string
      - name: query_key
        in: query
        description: Integer query key from a previous ESearch, EPost, or ELink call.
        required: false
        schema:
          type: integer
      - name: tool
        in: query
        description: Name of application making the call (no spaces). Recommended.
        required: false
        schema:
          type: string
      - name: email
        in: query
        description: Contact email address. Recommended.
        required: false
        schema:
          type: string
          format: email
      - name: api_key
        in: query
        description: API key to enable up to 10 requests/second.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Full records in the requested format
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/EFetchResult'
            text/plain:
              schema:
                type: string
components:
  schemas:
    EFetchResult:
      type: object
      description: Full records returned by EFetch. Structure varies by database and rettype/retmode.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: query
      name: api_key
      description: 'Optional NCBI API key. Without a key: 3 requests/second. With a key: 10 requests/second. Register at https://www.ncbi.nlm.nih.gov/account/'