PubMed Scraper - Citations, Abstracts and MeSH
Pricing
from $1.00 / 1,000 run start fees
PubMed Scraper - Citations, Abstracts and MeSH
Search PubMed or pull citations by PMID. Returns title, journal, authors, DOI, PMC id, publication types, citation counts and, where published, the abstract, MeSH terms and keywords.
PubMed Scraper
Search PubMed or pull citations by PMID. Title, journal, authors, DOI, PMC id, publication types, citation counts, and where the article has them, the abstract, MeSH terms and author keywords.
Reads NCBI's official E-utilities. No key, no login.
An empty abstract is usually the record being accurate
This is the distinction that makes the output trustworthy, so it is worth stating first.
Letters, editorials, comments and news items genuinely have no abstract. They never did. A scraper that reports "abstract missing" for those is describing its own confusion rather than the literature.
Every row carries publication_types, and the run summary counts how many empty
abstracts fall into those categories. On a test run of 25 semaglutide papers, 22
had abstracts and the three that did not were all Letters — nothing was missing.
Abstracts are enrichment, and they are allowed to fail
The endpoint that serves abstracts, efetch, hangs unpredictably. Measured
on 3 September 2026 against one query, varying only the batch size:
| Records requested | Result |
|---|---|
| 1 | 200, 4 KB, in 9.6 s |
| 3 | timed out after 191 s |
| 10 | 200, 188 KB, in 10.8 s |
| 20 | 200, 307 KB, in 12.6 s |
There is no pattern in size: a three-record request hung while a twenty-record one finished in twelve seconds.
So this Actor treats abstracts as a bonus rather than a dependency. When a batch
times out, those citations come back with abstract: null and the run summary
reports abstractFetchFailures, instead of the whole run dying for a field that
supplements the record. The citations, DOIs and metadata come from esummary,
which is fast and reliable.
Turn include_abstracts off entirely and runs are markedly quicker.
The DOI is not where you would look first
elocationid looks like the DOI field and is a trap: it carries the value
prefixed as "doi: 10.1136/bmjmed-2026-003026", and on some records it holds a
page locator instead. articleids has a properly typed entry, and that is what
this Actor reads. On a 25-citation test run, all 25 had a DOI.
The same applies to PMC: articleids has both a pmc entry (PMC13536023) and
a pmcid entry (pmc-id: PMC13536023;). Only the clean one is used, so
pmc_id is directly usable as a link to free full text.
Fields
- Identity:
pmid,doi,pmc_id,url - Article:
title,abstract,publication_types,language - Journal:
journal,journal_abbrev,issn,volume,issue,pages - People:
authors,first_author,last_author - Dates:
pub_date,epub_date - Subject:
mesh_terms,keywords - Impact:
citations_in_pmc
last_author is worth knowing about: in biomedical convention that is usually
the senior investigator whose lab produced the work, which is a different
question from who wrote it.
citations_in_pmc counts citations from PubMed Central specifically, not the
whole literature, so it is a floor rather than a total citation count.
Input reference
| Field | Type | Default |
|---|---|---|
query | PubMed search syntax | semaglutide obesity |
pmids | specific PubMed ids | — |
include_abstracts | fetch abstracts, MeSH and keywords | true |
sort | relevance, date, pub_date, Author, JournalName | relevance |
date_from, date_to | YYYY/MM/DD | — |
limit | 1-5000 | 100 |
retries | 1-6 | 3 |
PubMed's full search syntax works: "Smith J"[Author], 2024[dp],
"diabetes"[MeSH Terms], and boolean combinations of them. A search for
semaglutide obesity reports 2,833 matching citations.
Why this Actor connects directly
Measured across every .gov host tested on 3 September 2026: a direct request
returns 200, while our residential proxy answers
CONNECT tunnel failed, response 491Typical uses
- Literature monitoring. Run a query on a schedule and join on
pmidto see what is new in a field. - Systematic review screening. Query, pull abstracts and MeSH terms, and export the lot for screening.
- Competitive research. Search by drug, device or company name and track publication volume over time.
- Author and institution tracking.
"Name"[Author]queries, withlast_authorshowing senior authorship. - Open access filtering.
pmc_idtells you which papers have free full text before you spend anything on access.
Notes
pub_date is returned as PubMed writes it — 2026 Sep 3, sometimes just a year
or a season. It is deliberately not reformatted into a false precision that the
source does not have. epub_date is often the more exact one.
A PMID that does not exist is simply absent from the results rather than
reported per id, because esummary accepts a batch and returns what it knows.