United States National Library of Medicine Fetch API

Retrieve records from Entrez databases

Operations 2

GET /efetch.fcgi Fetch Records #
GET /esummary.fcgi Get Document Summaries #

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/united-states-national-library-of-medicine-fetch-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

united-states-national-library-of-medicine-fetch-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: NCBI E-Utilities Fetch API
  description: The NCBI E-Utilities (Entrez Programming Utilities) are the public API to the NCBI Entrez system providing access to all 41 Entrez databases including PubMed (biomedical literature), PMC (full-text articles), Gene, Nuccore (nucleotide sequences), Protein, SNP, and more. Supports search, retrieval, linking, posting, and spelling operations. API keys from https://www.ncbi.nlm.nih.gov/account/ increase the rate limit from 3 to 10 requests per second.
  version: 1.0.0
  contact:
    name: NCBI
    url: https://www.ncbi.nlm.nih.gov/home/develop/api/
    email: info@ncbi.nlm.nih.gov
  license:
    name: Public Domain
    url: https://www.usa.gov/government-works
servers:
- url: https://eutils.ncbi.nlm.nih.gov/entrez/eutils
  description: NCBI E-Utilities API
tags:
- name: Fetch
  description: Retrieve records from Entrez databases
paths:
  /efetch.fcgi:
    get:
      operationId: fetchRecords
      summary: Fetch Records
      description: Retrieve full records from an Entrez database in various formats. Commonly used to retrieve PubMed article abstracts, nucleotide sequences in FASTA format, or gene records.
      tags:
      - Fetch
      parameters:
      - name: db
        in: query
        description: Target Entrez database
        required: true
        schema:
          type: string
        example: pubmed
      - name: id
        in: query
        description: Comma-separated list of UIDs to retrieve
        required: false
        schema:
          type: string
        example: 33515491,33515492
      - name: api_key
        in: query
        description: NCBI API key
        required: false
        schema:
          type: string
      - name: rettype
        in: query
        description: Record type to return (e.g. abstract, medline, fasta, gb, docsum)
        required: false
        schema:
          type: string
        example: abstract
      - name: retmode
        in: query
        description: Output format
        required: false
        schema:
          type: string
          enum:
          - xml
          - text
          - json
          - asn.1
      - name: retmax
        in: query
        description: Maximum number of records to retrieve
        required: false
        schema:
          type: integer
          default: 20
      - name: retstart
        in: query
        description: Starting index in the UID list
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: Requested records in the specified format
          content:
            text/xml:
              schema:
                type: string
            text/plain:
              schema:
                type: string
  /esummary.fcgi:
    get:
      operationId: getSummaries
      summary: Get Document Summaries
      description: Retrieve document summaries (DocSums) for records from any Entrez database. Returns a concise summary of record attributes including title, authors, journal, and publication date for PubMed records.
      tags:
      - Fetch
      parameters:
      - name: db
        in: query
        description: Target Entrez database
        required: true
        schema:
          type: string
        example: pubmed
      - name: id
        in: query
        description: Comma-separated list of UIDs
        required: false
        schema:
          type: string
        example: 33515491,33515492
      - name: api_key
        in: query
        description: NCBI API key
        required: false
        schema:
          type: string
      - name: retmode
        in: query
        required: false
        schema:
          type: string
          enum:
          - json
          - xml
          default: json
      responses:
        '200':
          description: Document summaries
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ESummaryResult'
components:
  schemas:
    ESummaryResult:
      type: object
      description: Document summaries from Entrez
      properties:
        result:
          type: object
          description: Map of UID to document summary
          additionalProperties:
            type: object
            properties:
              uid:
                type: string
              pubdate:
                type: string
              epubdate:
                type: string
              source:
                type: string
              authors:
                type: array
                items:
                  type: object
              title:
                type: string
              volume:
                type: string
              issue:
                type: string
              pages:
                type: string
              fulljournalname:
                type: string
              doi:
                type: string
              pmcrefcount:
                type: integer
              pubtype:
                type: array
                items:
                  type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: query
      name: api_key
      description: NCBI API key from https://www.ncbi.nlm.nih.gov/account/