Research Papers API - Google Scholar Alternative (OpenAlex)
Pricing
from $1.60 / 1,000 paper rows
Research Papers API - Google Scholar Alternative (OpenAlex)
Search tens of millions of scientific papers via OpenAlex, Crossref and arXiv: title, authors, abstract, DOI, citations, open access PDF links and funding. A Google Scholar alternative, no key. dryRun prices a run first; charged only for papers delivered.
Pricing
from $1.60 / 1,000 paper rows
Rating
0.0
(0)
Developer
Natalia Ivanova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share
Research Papers API - Google Scholar Alternative (OpenAlex, Crossref, arXiv)
Search scientific papers across three open catalogues in one run and get a clean dataset back: title, authors, abstract, DOI, citation count, open-access PDF link, journal or conference, topics and language. No API key, no login, no scraping of a search engine's result page.
The Actor queries OpenAlex (260M+ works, CC0 metadata), Crossref (the publisher record behind DOIs) and the arXiv Atom API (preprints with free full-text PDFs) in parallel, merges the answers and removes duplicates, so one paper is one row no matter how many catalogues indexed it.
What a Google Scholar alternative gives you
Google Scholar has no API and forbids automated access. These three sources are built for it:
- Literature reviews and systematic searches — every hit on a topic, with abstracts, in a spreadsheet instead of twenty browser tabs.
- Citation screening — filter by year and minimum citations and keep what matters.
- Open-access reading lists — only papers you can actually read, with a direct PDF link.
- RAG and dataset building — abstracts are plain text in the row, ready for an embedding pipeline.
- Research monitoring — the same query every week, sorted newest first, to see what is new in a field.
- AI agents — "find me recent papers on retrieval augmented generation" through the Apify MCP server.
Sources: OpenAlex, Crossref and arXiv papers
| Source | What it adds | Citations | Abstracts |
|---|---|---|---|
| OpenAlex | the broadest index, topics, open-access status, PDF links | yes | often |
| Crossref | the publisher's own DOI metadata, journal, licence | yes | sometimes |
| arXiv papers | preprints months before publication, always a free PDF | no | always |
Results are deduplicated by DOI and, where a preprint has none, by its normalised title — so the arXiv version and the published version of the same paper become a single row. The foundIn field lists every source the paper was seen in.
Input
| Field | Type | Default | Description |
|---|---|---|---|
query | string | — | Required. Topic, title, author or phrase. |
sources | array | all three | Any of openalex, crossref, arxiv. |
fromYear / toYear | integer | — | Publication-year bounds. |
openAccessOnly | boolean | false | Keep only papers that are free to read. |
minCitations | integer | 0 | Keep only papers with at least this many citations. |
sortBy | select | relevance | relevance, date or citations. |
contactEmail | string | — | Optional. An address you own puts the run in the polite pool of OpenAlex and Crossref; a placeholder such as you@example.com is ignored. |
maxItems | integer | 1000 | Stop after this many papers. |
proxyConfiguration | object | off | Optional; the APIs are public. |
Examples:
{ "query": "retrieval augmented generation", "maxItems": 100 }
{ "query": "graphene oxide membranes", "fromYear": 2024, "toYear": 2026, "openAccessOnly": true, "minCitations": 5, "sortBy": "date" }
{ "query": "dense passage retrieval", "sources": ["openalex", "crossref"], "sortBy": "citations", "contactEmail": "you@example.com", "maxItems": 500 }
Output - scientific publications in one schema
{"title": "Dense Passage Retrieval for Open-Domain Question Answering","authors": ["Vladimir Karpukhin", "Barlas Oğuz", "Sewon Min"],"publicationYear": 2020,"publicationDate": "2020-01-01","venue": "Conference on Empirical Methods in Natural Language Processing (EMNLP)","publisher": "Association for Computational Linguistics","doi": "10.18653/v1/2020.emnlp-main.550","source": "openalex","foundIn": ["openalex", "crossref", "arxiv"],"citationCount": 3413,"isOpenAccess": true,"oaStatus": "hybrid","pdfUrl": "https://www.aclweb.org/anthology/2020.emnlp-main.550.pdf","landingUrl": "https://doi.org/10.18653/v1/2020.emnlp-main.550","abstract": "Open-domain question answering relies on efficient passage retrieval…","concepts": ["Topic Modeling", "Information Retrieval and Search Behavior", "cs.CL"],"language": "en","type": "article","openalexId": "W3034758599","arxivId": "2004.04906v3","scrapedAt": "2026-10-12T11:30:00Z"}
A run summary — rows per source, papers after deduplication, how many were found in more than one source, errors — is written to the OUTPUT record of the key-value store.
Use cases for the research papers API
Search scientific publications across all three sources
{ "query": "retrieval augmented generation", "maxItems": 200 }
arXiv papers only, newest first
{ "query": "mechanistic interpretability", "sources": ["arxiv"], "sortBy": "date", "maxItems": 100 }
Highly cited open-access work since 2020
{ "query": "protein structure prediction", "fromYear": 2020, "openAccessOnly": true, "minCitations": 50, "sortBy": "citations" }
Pricing
Pay per event: a small fee per Actor start and a fee per paper returned. Deduplicated rows are charged once, not once per source. Current prices are in the Pricing tab.
Good to know
- Abstracts. OpenAlex stores abstracts as an inverted index; the Actor rebuilds the running text. Crossref abstracts arrive as JATS XML and are converted to plain text. Where two sources disagree, the fuller abstract is kept.
- Politeness. OpenAlex and Crossref serve self-identifying clients from a faster pool, so filling in
contactEmailwith an address you own speeds the run up. arXiv asks for one request every three seconds and the Actor obeys that, which makes large arXiv runs the slow part of a job. - Citations. Counts come from OpenAlex and Crossref and differ between them; the higher of the two is reported. A paper found only on arXiv has no count, so any
minCitationsabove 0 drops it. - Open access. OpenAlex reports it directly, arXiv is open by definition, and a Crossref-only paper counts as open only when it carries a Creative Commons licence — a Crossref PDF link can still sit behind a paywall.
- Query handling. arXiv joins bare words with OR, which would match hundreds of thousands of papers, so terms are ANDed; put a phrase in double quotes to keep it together. Crossref is always asked for its relevance order and re-sorted locally, because sorting its loose text match by date or citations server-side returns the newest or most cited paper that shares any single word with the query.
- Year filters drop papers whose publication year is unknown, which is a small share of Crossref records.
Use with AI agents (MCP)
Add the Actor to the Apify MCP server: "recent open-access papers on diffusion models" → { "query": "diffusion models", "fromYear": 2025, "openAccessOnly": true, "sortBy": "date" }.
Related Actors
Disclaimer
Metadata comes from OpenAlex (CC0), Crossref and arXiv through their public APIs. This Actor is not affiliated with any of them, and it does not redistribute full texts: PDF links point at the publisher or repository. Citation counts are those reported by the sources.
Cost control
Pay per event only works if you can see the bill before you pay it:
- Set
dryRunto count every result and print what a full run would cost - nothing is charged, and only a few sample rows are stored. - You are charged only for rows actually delivered to the dataset; a run that finds nothing costs nothing beyond the start event.
maxItemsis respected exactly, and the run stops before the platform's Max total charge for the run.- Every run writes a
COSTrecord to the key-value store: chargeable events, charged events, the amount in USD and whether a limit was hit.