---
title: PubMed Search outputs
description: Read pmid, title, abstract, authors and journal per article — plus the doi, pmcid and mesh_terms that only pubmed_search returns, never advanced search.
tags:
  - pubmed
  - outputs
---

The search returns matched article metadata — PMIDs, titles, abstracts, authors, and journal details. Those abstracts and PMIDs feed model-driven entity extraction, a Literature Passport, or Semantic Scholar citation analysis.

## Output structure

PubMed Search returns a JSON object containing matched article metadata and search summary information.

## Top-level fields

| Field | Type | Description |
|-------|------|-------------|
| `total` | integer | Total number of matching articles in PubMed (may exceed the returned count) |
| `query` | string | The search query as sent to PubMed |
| `articles` | array | List of article objects (up to the number of results requested) |

## Article fields

Each article in the `articles` array contains:

| Field | Type | Description |
|-------|------|-------------|
| `pmid` | string | PubMed identifier (e.g., "38456789") |
| `title` | string | Article title |
| `abstract` | string | Article abstract text, assembled from EFetch. A plain search fetches this by default; empty when EFetch finds no `` for the article |
| `authors` | string[] | First 5 author names in "Last Initials" format |
| `journal` | string | Journal name or abbreviation |
| `year` | string | Publication year |
| `pubmed_url` | string | Direct link to the article on PubMed |

### Plain-search additional fields

A plain search calls EFetch alongside ESummary, so its results carry more than the basic fields above when present:

| Field | Type | Description |
|-------|------|-------------|
| `doi` | string | Digital Object Identifier, parsed from ESummary's `elocationid` |
| `pmcid` | string | PubMed Central ID, when the article has one |
| `mesh_terms` | string[] | Medical Subject Headings, parsed from EFetch's `` tags |
| `keywords` | string[] | Author-supplied keywords, parsed from EFetch's `` tags |
| `pubtype` / `article_type` | string[] / string | Article types (e.g., "Review", "Clinical Trial") from ESummary |
| `fulljournalname` | string | Full journal name, when ESummary provides one |

### Filtered-search fields

A search filtered by author, affiliation, date range, or article type only calls ESearch + ESummary — no EFetch — so its results have no `abstract`, `mesh_terms`, or `keywords`. It returns `pmid`, `title`, `authors`, `journal`, `year`, `doi`, `pmcid`, and a `has_fulltext` boolean (true when a `pmcid` is present).

## Example output

```json
{
  "total": 1247,
  "query": "EGFR resistance osimertinib",
  "articles": [
    {
      "pmid": "38456789",
      "title": "Mechanisms of acquired resistance to osimertinib in EGFR-mutant NSCLC",
      "abstract": "Acquired resistance to osimertinib remains a major clinical challenge...",
      "authors": ["Wang S", "Chen Y", "Li X", "Zhang H", "Liu M"],
      "journal": "J Clin Oncol",
      "year": "2025",
      "doi": "10.1200/JCO.2025.00000",
      "mesh_terms": ["Protein Kinase Inhibitors", "Carcinoma, Non-Small-Cell Lung", "Drug Resistance, Neoplasm"],
      "pubmed_url": "https://pubmed.ncbi.nlm.nih.gov/38456789/"
    },
    {
      "pmid": "38234567",
      "title": "C797S mutation and combination strategies for EGFR TKI resistance",
      "abstract": "",
      "authors": ["Kim J", "Park S", "Lee D"],
      "journal": "Cancer Res",
      "year": "2025",
      "pubmed_url": "https://pubmed.ncbi.nlm.nih.gov/38234567/"
    }
  ]
}
```

The second article shows an empty `abstract` — EFetch returns no `` for every PMID (older records and some non-English-language articles commonly lack one), and the search does not fabricate one.

## Canvas visualization

PubMed Search results render through a custom canvas renderer as a list of article titles with journal and year, following the platform's standard card shape — there's no PubMed-specific card size or border color.

### Interpreting canvas metrics

| Metric | Meaning |
|--------|---------|
| High total count (&gt;1000) | Broad or popular topic; consider narrowing with additional filters |
| Low total count (&lt;10) | Niche topic or overly specific query; consider broader terms |
| Recent dates dominate | Active research area with current interest |
| Older dates dominate | Established field; may need to check for recent developments separately |

## Downstream data use

### Entity extraction

Ask the model to read the returned abstracts directly — no separate tool call. It extracts:
- **Gene/protein names**: EGFR, TP53, BRCA1
- **Compound names**: osimertinib, gefitinib, sotorasib
- **Disease terms**: NSCLC, breast cancer, AML
- **Relationships**: Drug-target, drug-disease, gene-disease associations

### Chaining into Literature Passport

The Literature Passport aggregates PubMed results with entity extraction and trend analysis into a comprehensive report. It uses the PubMed result set as its primary data source.

### Chaining into Semantic Scholar

Pass PMIDs to Semantic Scholar for citation network analysis, influential citation identification, and citation count data that PubMed does not provide natively.

## Error responses

When a search fails or returns no results:

| Field | Type | Description |
|-------|------|-------------|
| `error` | string | Error message describing the failure |
| `total` | integer | Set to 0 for empty result sets |
| `query` | string | The query that was attempted |
| `articles` | array | Empty array |

Common error values:
- `"No results found"` — Query matched zero articles
- `"NCBI API timeout"` — E-utilities did not respond within 45 seconds
- `"Rate limit exceeded"` — Too many concurrent NCBI requests

## Read next
