Semantic Scholar Scraper
parseforge/semantic-scholar-scraper
AutomationDeveloper toolsOther
Scrapes academic papers from Semantic Scholar search results. Returns each paper as a flat row with title, authors, year, citations, venue, and abstract. Supports year and PDF filters.
- Total users
- 51
- Monthly active
- 3
- Total runs
- 573
- Bookmarked
- 2
- Rating
- 1.1 (2)
- Last modified
- 7 hours ago
Overview
Semantic Scholar Scraper
Search Semantic Scholar for papers by title or keywords, look up authors with their h-index and papers, or fetch papers by DOI, arXiv id or Semantic Scholar id. Every paper comes with its title, authors, year, venue, journal, abstract, citation counts, fields of study, DOI/arXiv/PubMed ids and the open-access PDF link. No API key required. Export to CSV, JSON, Excel, or XML.
This Actor drives Semantic Scholar's official Graph API: clean JSON, no browser, no proxy. A title search such as "attention is all you need" returns the paper you mean first, because the query is matched as a phrase and ranked by citations; a keyword search such as "graph neural networks drug discovery" returns the most-cited matches with server-side filters for year, field of study, publication type, venue, minimum citations and PDF availability.
| Who uses it | What they scrape Semantic Scholar for |
|---|---|
| Academic researchers | Building a corpus of papers for a systematic literature review. |
| PhD students | Recent publications in a field, filtered by year and venue, to find research gaps. |
| Data scientists | Author profiles (h-index, citation totals) and paper metadata for bibliometrics. |
| Librarians and research offices | Publication lists per author, with DOIs and open-access links. |
| AI agents | Resolving a paper from its title, DOI or arXiv id in one call. |
What it does
Three search modes, one flat row per paper or author:
- Papers: a title or keyword query. Phrase match first (the exact paper for a title query), most-cited first by default, or newest/oldest first. Filters: year or year range, fields of study, publication types, venue, minimum citations, open-access PDF only.
- Authors: an author name. Each author row carries affiliations, homepage, paper count, citation count, h-index, ORCID and DBLP ids. Optionally list each author's papers (newest first) after the author row.
- Paper IDs: a list of ids: 40-character Semantic Scholar ids,
DOI:10.…,ArXiv:1706.03762,PMID:…,PMCID:…,CorpusId:…. Plain DOIs and arXiv numbers are recognised without a prefix.
A semanticscholar.org URL works too: a search URL (query, year range and PDF filter are read from it), a paper URL or an author URL.
Every paper row contains: paperId, corpusId, title, authors, authorIds, firstAuthor, year, venue, journalName, journalVolume, journalPages, publicationDate, publicationTypes, abstract, url, citationCount, referenceCount, influentialCitationCount, fieldsOfStudy, s2FieldsOfStudy, doi, arxivId, pubmedId, isOpenAccess, openAccessPdfUrl, source, query, scrapedAt.
Every author row contains: authorId, name, affiliations, homepage, paperCount, citationCount, hIndex, orcid, dblp, url, query, scrapedAt.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with Semantic Scholar data
Find the paper behind a title.
An agent sends "deep residual learning for image recognition" and gets He et al. 2015 back as the first row, with its DOI, arXiv id and 237,000 citations.
Build a literature review corpus.
A PhD candidate searches "graph neural networks drug discovery" with year 2022-, field of study Computer Science and at least 20 citations, and exports 500 abstracts to screen for relevance.
Profile an author.
A research office pulls "Yoshua Bengio" with Include each author's papers on and gets the author row (813 papers, h-index 212) followed by the publication list, newest first.
Resolve a reading list.
A lab manager pastes 200 DOIs and arXiv ids and gets one row per paper with the open-access PDF link where one exists.
Why choose this scraper
| What you get | |
|---|---|
| Title search that works | Phrase match plus citation ranking returns the well-known paper first instead of thousands of loosely related ones. |
| Three modes | Papers, authors and direct id lookup in one Actor. |
| Server-side filters | Year, field of study, publication type, venue, minimum citations and PDF availability narrow the result count rather than costing rows. |
| No API key required | Runs on the public pool at about one request per second; add a free key for relevance ranking and higher limits. |
| Scales to a million items | Paid users can pull entire research fields in one run. |
How it compares
| Feature | ParseForge | Semantic Scholar Search Scraper |
|---|---|---|
| Title search returns the exact paper first | Yes | Not listed |
| Author search with h-index and papers | Yes | Not listed |
| Lookup by DOI, arXiv, PubMed or Corpus id | Yes | Not listed |
| Year, field of study, publication type, venue and citation filters | Yes | Not listed |
| Start from a full Semantic Scholar URL | Yes | Not listed |
| Optional API key for higher rate limits | Yes | Not listed |
Configure the run
Pick the mode, give a query (or a Semantic Scholar URL, or a list of ids) and set the maximum rows. The Input tab lists every filter.
A first run with the defaults:
{
"searchType": "papers",
"query": "attention is all you need",
"maxItems": 10
}
A filtered keyword pull:
{
"searchType": "papers",
"query": "graph neural networks drug discovery",
"year": "2022-",
"fieldsOfStudy": ["Computer Science"],
"minCitationCount": 20,
"sort": "newest",
"maxItems": 200
}
An author with their papers:
{
"searchType": "authors",
"query": "Yoshua Bengio",
"includeAuthorPapers": true,
"maxItems": 100
}
Papers by id:
{
"searchType": "ids",
"ids": ["ArXiv:1706.03762", "DOI:10.1145/3065386", "204e3073870fae3d05bcbc2f6a8e263d9b72e776"]
}
Limits
- Without an API key, Semantic Scholar's public pool allows roughly one request per second, and its relevance-ranked search endpoint is closed to anonymous traffic. The Actor therefore matches your query as a phrase and ranks by citations, which surfaces the paper you mean for a title search. A free key from semanticscholar.org/product/api switches Relevance to true relevance ranking and lifts the rate limit.
- When the public pool is saturated the Actor backs off and retries; if it is still refused, the run writes one diagnostic row (
type: "error"), which is not charged. - Paper ids that Semantic Scholar does not know return a diagnostic row instead of a paper row.
Pricing
Pay-per-event: $0.16 per run start plus $12 per 1,000 results (result-item, one per paper or author row). Diagnostic rows are free.
| Results collected | Approximate cost |
|---|---|
| 100 results | $1.36 |
| 1,000 results | $12.16 |
| 10,000 results | $120.16 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the Semantic Scholar Scraper.
- Pick a mode, enter a query and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to Semantic Scholar through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/semantic-scholar-scraper"
Then ask: "Find the paper 'Attention is All You Need' and give me its DOI and citation count."
FAQ
Why did the old version return unrelated papers for a title? The public bulk endpoint orders results by internal id unless told otherwise, so a five-word title matched thousands of papers containing those words. The Actor now matches the words as a phrase and ranks by citations, and falls back to the bare keywords only when the phrase matches nothing.
Can I get relevance ranking like the website? Yes, with a free Semantic Scholar API key in the apiKey input.
Is the data public? Yes. Semantic Scholar publishes this metadata through its open Graph API; the Actor reads only public records.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| searchType | string (3 options) | Papers: keyword or title search (phrase match first, most-cited first). Authors: author name search, optionally with each author's papers. Paper IDs: look up specific papers by Semantic Scholar id, DOI, arXiv id, PubMed id or Corpus id. | papers |
| query | string | Paper title, keywords, or an author name. Examples: "attention is all you need", "graph neural networks drug discovery", "Yoshua Bengio". | attention is all you need |
| startUrl | string | Alternative to the query: a semanticscholar.org search URL (query, year range and PDF filter are read from it), a paper URL or an author URL. | not set |
| ids | array | One id per line: a 40-character Semantic Scholar id, DOI:10.xxxx/…, ArXiv:1706.03762, PMID:…, PMCID:… or CorpusId:…. Plain DOIs and arXiv numbers are recognised without a prefix. | not set |
| maxItems | integer | Stop after this many rows (papers, or authors plus their papers). Free-plan runs return up to 10 rows as a preview; paid plans up to 1,000,000. | 10 |
| sort | string (4 options) | Relevance needs an API key (Semantic Scholar's relevance endpoint is closed to anonymous traffic); without one, relevance falls back to most-cited first, which surfaces the well-known paper for a title search. | relevance |
| year | string | A single year (2019), a range (2016-2020), or an open-ended span (2020- or -2015). | not set |
| fieldsOfStudy | array | Restrict to these fields. Valid values: Computer Science, Medicine, Chemistry, Biology, Materials Science, Physics, Geology, Psychology, Art, History, Geography, Sociology, Business, Political Science, Economics, Philosophy, Mathematics, Engineering, Environmental Science, Agricultural and Food Sciences, Education, Law, Linguistics. | not set |
| publicationTypes | array | Restrict to these types: Review, JournalArticle, CaseReport, ClinicalTrial, Conference, Dataset, Editorial, LettersAndComments, MetaAnalysis, News, Study, Book, BookSection. | not set |
| venue | string | Journal or conference name, e.g. Nature, NeurIPS, ICML. Comma-separate several venues. | not set |
| minCitationCount | integer | Only papers cited at least this many times. | not set |
| hasPdf | boolean | Return only papers with an open-access PDF link. | false |
| includeAuthorPapers | boolean | After each author row, list that author's papers (most recent first) until Maximum rows is reached. Author search stops at 25 authors when this is on. | false |
| apiKey | string | Unlocks relevance-ranked search and higher rate limits. Free at semanticscholar.org/product/api. Without a key the actor uses the public pool at about one request per second. | not set |
Pricing
from $8.00 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| Actor Start | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). | $0.05 to $0.16 |
| result | Single result in the default dataset. | $0.008 to $0.012 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~semantic-scholar-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
Rated 1.1 out of 5 across 2 reviews. Read them on Apify.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
