How to search 10 million academic papers with one curl call
Published September 26, 2026
OpenAbstracts is a paper search API: one REST endpoint that searches 10M+ papers from 100,000+ journals and returns titles, authors, DOIs, abstracts, journal quartiles and PDF links as JSON. This guide takes you from nothing to a working search in about five minutes.
1. Get an API key
Create a free account, open the API Keys page and click create. The key starts with isk_live_ and is shown once, so copy it somewhere safe. Every account includes 100 free searches per month, with no card required.
2. Run your first search
curl "https://openabstracts.com/api/references-search?q=marketing&limit=3" \
-H "x-api-key: isk_live_YOUR_KEY"
The response contains the total number of matches and an array of results:
{
"success": true,
"total": 21742,
"page": 1,
"limit": 3,
"mode": "papers",
"references": [
{
"id": "6aafc30105cf5ce509d69aa6",
"doi": "10.12775/EQUIL.2009.011",
"title": "Market basket analysis in marketing research",
"authors": ["Małgorzata Śniegocka - Łusiewicz"],
"year": 2009,
"journal": "Equilibrium. Quarterly Journal of Economics and Economic Policy",
"abstract": "Market basket analysis is, to put it simply, ...",
"category": "business",
"pdfUrl": "https://economic-policy.pl/index.php/eq/article/download/567/531",
"url": "https://economic-policy.pl/index.php/eq/article/view/567",
"quartile": "",
"score": 32.97
}
]
}
Every result carries enough to cite it (authors, year, journal, DOI) and to send a reader to the source (pdfUrl and url when available).
3. Two search modes
The mode parameter picks what is searched:
| Mode | What it searches | Best for |
|---|---|---|
papers (default) | Titles, abstracts, keywords and authors, with fuzzy matching | Finding relevant papers on a topic |
content | The full text inside the PDFs | Finding the exact passage or a rare term |
Full-text searches also return highlights, short snippets with the matching words wrapped in <mark> tags, so you can show why a paper matched:
curl "https://openabstracts.com/api/references-search?q=day-of-the-week+effect&mode=content&limit=2" \
-H "x-api-key: isk_live_YOUR_KEY"
4. Filter the results
Combine a query with any of these filters:
category— for examplebusiness,medicine,engineering,physics,lawyearFromandyearTo— inclusive publication yearsquartile— comma-separated journal quartiles such asQ1,Q2pageandlimit— pagination, with a maximum of 100 results per page
curl "https://openabstracts.com/api/references-search?q=machine+learning&category=engineering&yearFrom=2020&quartile=Q1&limit=10" \
-H "x-api-key: isk_live_YOUR_KEY"
5. Use it from code
import requests
r = requests.get(
"https://openabstracts.com/api/references-search",
params={"q": "supply chain resilience", "yearFrom": 2021, "limit": 5},
headers={"x-api-key": "isk_live_YOUR_KEY"},
timeout=30,
)
for paper in r.json()["references"]:
print(paper["year"], paper["title"], paper["doi"])
const res = await fetch(
"https://openabstracts.com/api/references-search?q=supply+chain+resilience&limit=5",
{ headers: { "x-api-key": process.env.OPENABSTRACTS_KEY } }
);
const { references } = await res.json();
What it costs
You get 100 free searches every month. After that, searches cost $1.50 per 1,000 requests from prepaid credit that never expires, and a search that returns no results is never billed. Full details are on the pricing section of the docs.
Next steps
- Read the full API reference.
- Connect it to an AI assistant with the MCP server.
- Build citation-grounded features: adding real citations to an AI chatbot.