Semantic Scholar Citations Scraper
parseforge/semanticscholar-citations-scraper
AutomationIntegrations
Scrapes citations or references for one paper from Semantic Scholar using a DOI, arXiv ID, or other identifier. Each result row contains title, authors, year, and citation count.
- Total users
- 2
- Monthly active
- 2
- Total runs
- 86
- Bookmarked
- 0
- Rating
- Not rated yet
- Last modified
- 9 days ago
Overview
Semantic Scholar Citations Scraper
Scrape every citation and reference for any paper, by DOI, arXiv ID, or URL, up to a million per run. Each result comes with its title, authors, year, and citation count, no API key required. Export to CSV, JSON, Excel, or XML.
Most academic search APIs need a key and rate-limit your lookups. This Semantic Scholar citation scraper reads the public API directly, letting you pull every paper that cites a work, or every paper that a work references, from a single identifier. Paste a DOI, arXiv ID, CorpusId, or a direct URL, set a maximum, and you get back a complete, flat dataset of connected research.
| Who uses it | What they scrape Semantic Scholar for |
|---|---|
| Researchers and PhD students | Mapping the literature graph around a key paper for a thesis or review |
| Librarians and research managers | Tracking the downstream influence and citation count of an institution's published output |
| Bibliometric analysts | Building a raw citation network dataset for co-citation or bibliographic coupling analysis |
What it does
This Actor collects citations or references for a single paper from Semantic Scholar and returns each citing or referenced paper as a structured row.
- ๐ Paper identification by many IDs: paste a Semantic Scholar paper ID, DOI, arXiv ID, CorpusId, PMID, PMCID, or a full URL from semanticscholar.org, arxiv.org, or doi.org.
- ๐ Dual direction routing: choose citations (papers that cite this paper) or references (papers this paper cites).
- ๐ Optional API key: bring your free Semantic Scholar API key for a higher rate limit on large collections.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with Semantic Scholar data
๐ Build a literature review dataset.
A PhD student enters the DOI of a foundational paper and scrapes the 200 most recent citations to identify related work for their thesis.
๐ Track research influence over time.
A bibliometric analyst pulls annual citation counts for a set of papers to compute an h-index or impact narrative for a department.
๐ Construct a citation network graph.
A data scientist scrapes inbound citations for a seed paper, then feeds the output into a graph database to run PageRank on the literature.
๐ Audit reference lists before submission.
A researcher checks that every paper cited in their manuscript still matches the correct Semantic Scholar record, using the references mode.
Why choose this scraper
| What you get | |
|---|---|
| Full citation metadata | Author names, title, publication year, venue, and citation count for every result |
| No API key needed | Works with the public endpoint out of the box, with an optional key for higher limits |
| Accepts any common paper ID | Semantic Scholar ID, DOI, arXiv ID, CorpusId, PMID, or a full URL are all auto-detected |
| Directional citation graph | Pull either the inbound citations or the outbound references from a single paper |
How it compares
This Actor is purpose-built for directional citation gathering around a single paper, not keyword search. Here is how it compares to other Semantic Scholar scrapers on Apify.
| Feature | ParseForge | Semantic Scholar Search Scraper | Academic Paper Scraper |
|---|---|---|---|
| Directional citation scraping (citations & references) | Yes, per-run mode selector | Not listed | Not listed |
| Accept DOI input | Yes, auto-detected | Not listed | Yes |
| Accept arXiv ID input | Yes, auto-detected | Not listed | Not listed |
| Accept PMID input | Yes, auto-detected | Not listed | Not listed |
| Up to 1 million results per run | Yes | Not listed | Not listed |
| Optional Semantic Scholar API key | Yes | Not listed | Not listed |
Configure the run
Drive the Actor from a single paper identifier in any common format, choose the citation direction, and set a maximum count so you stop exactly when you have enough. The Input tab lists every parameter.
A first run with the defaults:
{
"paperId": "10.1145/3292500.3330701",
"maxItems": 10
}
A larger pull:
{
"paperId": "10.1145/3292500.3330701",
"maxItems": 200
}
Pricing
Pay-per-result: $0.0085 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $0.85 |
| 1,000 results | $8.50 |
| 10,000 results | $85.00 |
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 Citations Scraper.
- Set your inputs 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/semanticscholar-citations-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
The Actor says no results were found.
First confirm the paper has citations or references on the live Semantic Scholar site. Then check your paperId format: paste the DOI exactly as it appears, or use the Semantic Scholar 40-character hex ID for the most direct lookup.
Why am I getting a rate limit error?
The public API has a lower rate limit. Add a free Semantic Scholar API key in the optional API key field to increase the limit significantly.
My PMID is not being recognized.
Make sure you include the 'PMID:' prefix, for example 'PMID:19872477'. A bare number is interpreted as a CorpusId, not a PubMed ID.
The run stopped before collecting all citations.
Check your maxItems setting. If the paper has more citations than the number you entered, the Actor stops there. Increase maxItems to collect more.
I entered an arXiv ID but the Actor failed.
Try the canonical arXiv ID form without the version suffix, like '1705.10311'. Both 'arXiv:1705.10311' and '1705.10311' should work, but removing extra trailing text can help if the paper has multiple versions.
The output has duplicate entries.
Semantic Scholar occasionally returns the same paper under slightly different IDs. Use the dataset's unique key or deduplicate on the paperId column in your post-processing step.
FAQ
| Question | Answer |
|---|---|
| Can I scrape citations for more than one paper at a time? | No, this Actor is built for one paper per run. To process a list of papers, use it inside an Apify workflow or call it in a loop from the API with a different paperId each time. |
| What paper identifier formats does it accept? | It auto-detects Semantic Scholar 40-character hex IDs, DOIs with or without a prefix, arXiv IDs, CorpusIds, PMIDs, and full URLs from semanticscholar.org, arxiv.org, or doi.org. A plain number is treated as a CorpusId. |
| Do I need a Semantic Scholar API key? | No, the public endpoint works without a key for smaller jobs. For higher rate limits on runs up to a million items, you can add a free key from semanticscholar.org/product/api. |
| What is the difference between citations and references mode? | Citations mode returns papers that cite your target paper. References mode returns papers that your target paper cites. |
| Does this scrape the full text of the papers? | No, it returns the citation metadata including title, authors, year, venue, and citation counts. The full text is not included. |
| Can I limit the number of results? | Yes, set the maximum citations field to any number from 1 up to 1,000,000 per run. |
| Is it legal to scrape Semantic Scholar? | Semantic Scholar provides a public API for non-commercial use and research. This Actor uses that API and respects its rate limits. |
| Can I export the results? | Yes, you can export your dataset in CSV, JSON, Excel, XML, and other formats directly from the Apify run. |
| How do I handle a paper with a million citations? | Set maxItems to 1,000,000 and, optionally, add an API key for the higher rate limit. The Actor will paginate through the full list sequentially. |
| Does this Actor work with the Apify API from my code? | Yes, you can call it programmatically from Python, JavaScript, or any language that speaks HTTP, and consume the results as you would any Apify dataset. |
Related actors
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Allen Institute for Artificial Intelligence (AI2). It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| paperId | string | The paper to scrape. Many formats are accepted and auto-detected, paste any one of: โข Native Semantic Scholar ID (40-char hex), e.g. 649def34f8be52c8b66281af98ae884c09aef38b โข DOI, with or without prefix, e.g. 10.1145/3292500.3330701 or DOI:10.1145/3292500.3330701 โข arXiv ID, with or without prefix, e.g. 1705.10311, arXiv:1705.10311 or ARXIV:1705.10311 โข CorpusId, e.g. CorpusId:2227892 (a bare number is treated as a CorpusId) โข PMID / PMCID, e.g. PMID:19872477 (must include the prefix) โข A full URL: semanticscholar.org/paper/..., arxiv.org/abs/..., or doi.org/... Note: a plain number is interpreted as a CorpusId; for a PubMed ID use the explicit PMID: prefix. An example paper is prefilled so you can run it right away, just replace it with the paper you want. | 10.1145/3292500.3330701 |
| mode | string (2 options) | Citations (papers citing this one) or references (papers this one cites). | citations |
| maxItems | integer | Maximum number of citations to collect per run. | 10 |
| apiKey | string | Optional API key for higher rate limits. Get one at semanticscholar.org/product/api. | not set |
Pricing
from $7.50 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| result | Single result in the default dataset. | $0.0075 to $0.0085 |
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~semanticscholar-citations-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
No reviews yet. Be the first.
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.
Related scrapers
Run Semantic Scholar Citations Scraper on Apify All scrapers
