PubMed Retrieval API

Operations for retrieving records from Entrez databases

OpenAPI Specification

pubmed-retrieval-api-openapi.yml Raw ↑
openapi: 3.1.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/'