If you've ever searched Google Scholar and drowned in irrelevant results, Semantic Scholar's API will change your life.
It uses AI to rank papers by actual relevance, not just keyword matching. And it's completely free — no API key, no signup, no rate limit headaches.
What makes it different from Google Scholar?
| Feature | Google Scholar | Semantic Scholar API |
|---|---|---|
| API access | No official API | Free, no key needed |
| Relevance ranking | Keyword-based | AI/ML-powered |
| Citation graph | Limited | Full citation + reference graph |
| Author disambiguation | Poor | Excellent (unique author IDs) |
| Rate limit | Will ban you | 100 requests/sec (generous!) |
| Structured data | Scraping needed | Clean JSON |
Quick start — search papers in 5 lines
import requests
query = "transformer architecture attention mechanism"
url = f"https://api.semanticscholar.org/graph/v1/paper/search?query={query}&limit=5"
papers = requests.get(url).json().get("data", [])
for p in papers:
print(f" {p['title']}")
print(f" ID: {p['paperId']}\n")
Output:
Attention Is All You Need
ID: 204e3073870fae3d05bcbc2f6a8e263d9b72e776
BERT: Pre-training of Deep Bidirectional Transformers
ID: df2b0e26d0599ce3e70df8a9da02e51594e0e992
Get detailed paper info
paper_id = "204e3073870fae3d05bcbc2f6a8e263d9b72e776"
fields = "title,year,citationCount,authors,abstract,fieldsOfStudy"
url = f"https://api.semanticscholar.org/graph/v1/paper/{paper_id}?fields={fields}"
paper = requests.get(url).json()
print(f"Title: {paper['title']}")
print(f"Year: {paper['year']}")
print(f"Citations: {paper['citationCount']}")
print(f"Authors: {', '.join(a['name'] for a in paper['authors'][:3])}")
print(f"Fields: {paper['fieldsOfStudy']}")
Output:
Title: Attention Is All You Need
Year: 2017
Citations: 120,000+
Authors: Ashish Vaswani, Noam Shazeer, Niki Parmar
Fields: ['Computer Science']
Follow the citation graph
This is where it gets powerful. Find who cited a paper and what it references:
# Get papers that cite "Attention Is All You Need"
url = f"https://api.semanticscholar.org/graph/v1/paper/{paper_id}/citations?fields=title,year,citationCount&limit=5"
citations = requests.get(url).json().get("data", [])
print("Top citing papers:")
for c in sorted(citations, key=lambda x: x['citingPaper'].get('citationCount', 0), reverse=True):
p = c['citingPaper']
print(f" [{p.get('citationCount',0):,} cites] {p['title']}")
Search by author
author_name = "Yann LeCun"
url = f"https://api.semanticscholar.org/graph/v1/author/search?query={author_name}"
authors = requests.get(url).json().get("data", [])
for a in authors[:3]:
detail_url = f"https://api.semanticscholar.org/graph/v1/author/{a['authorId']}?fields=name,paperCount,citationCount,hIndex"
detail = requests.get(detail_url).json()
print(f"{detail['name']}: {detail['paperCount']} papers, {detail['citationCount']:,} citations, h-index {detail['hIndex']}")
Real use cases
- Literature review automation — Find all papers on a topic, sorted by actual relevance
- Research trend analysis — Track citation growth over time for any field
- Competitor research — See what papers a company's researchers are publishing
- Academic tool building — Power citation managers, research assistants, recommendation engines
Rate limits
- No API key: 100 requests per 5 minutes
- With API key (free): 1 request/second sustained
- Bulk access: Available for academic use
This is one of the most generous academic APIs I've found.
Comparison with other research APIs
| API | Papers | Key needed | Best for |
|---|---|---|---|
| Semantic Scholar | 200M+ | No | AI-powered search, citation graphs |
| arXiv | 2M+ | No | Physics, CS, Math preprints |
| Crossref | 130M+ | No | DOI resolution, metadata |
| OpenAlex | 250M+ | No | Bibliometrics, institution data |
Try it yourself
The API docs are excellent: api.semanticscholar.org
No signup. No credit card. Just start making requests.
I write about free APIs developers should know about. Follow for more — I've covered 100+ APIs so far.
Building a data extraction tool? Check out my Apify scrapers and GitHub repos.
Top comments (0)