Google Scholar Alternative: Academic Papers (OpenAlex)
Pricing
from $1.00 / 1,000 paper returneds
Google Scholar Alternative: Academic Papers (OpenAlex)
Search 250 million academic papers by keyword, DOI, citing paper, institution or journal. Citation counts, abstracts, open access PDF links and DOIs from OpenAlex, no scraping. Every record links to the source.
Pricing
from $1.00 / 1,000 paper returneds
Rating
0.0
(0)
Developer
Ground Truth
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
6 days ago
Last modified
Categories
Share
Search more than 250 million academic papers and get clean JSON back: title, year, journal, citation count, abstract, open access PDF link, topics, institutions and the author byline. It reads the OpenAlex API (an open catalogue of scholarly work, data released under CC0), so there is no scraping, no CAPTCHA and no blocked IP. Every record carries a verify_url that opens the paper on its DOI page, so any value can be checked at the source in one click.
Five ways to use it:
- Search by keywords, with filters for year range, open access, paper type, minimum citations and sort order.
- Look up by DOI: paste a list of up to 2,000 DOIs and get one record each.
- Cited by: give one paper and get the papers that cite it.
- Institution: papers from a university or lab, by name, ROR id or OpenAlex id.
- Journal: papers from one journal, by name, ISSN or OpenAlex id.
Why an AI agent would call it: it answers "what has been published on this, who cites it, and where is the free PDF" as structured data, with a link a person can open to confirm each paper exists.
What it does not do
- It is not Google Scholar and does not read Google Scholar. Coverage and citation counts come from OpenAlex and will differ from Google's numbers.
- It returns the printed author byline only. No author profiles, no emails, no ORCID records.
- It does not download PDFs. It gives you the open access link when one exists.
- Some papers have no abstract in OpenAlex (publishers do not always release them). Those records have
abstract: null. - OpenAlex list results stop at 100 authors per paper. A byline of exactly 100 sets
authors_truncated: true. Openverify_urlfor the full list. - Keyword search matches stems and related terms. Sorting by citations returns the most cited papers among all matches, which can include loose matches. Use relevance sort or the quoted-phrase form for tight results.
Sample output
Input (DOI lookup):
{ "mode": "doi_lookup", "dois": ["10.1371/journal.pmed.0020124"] }
Output record (abstract shortened here):
{"openalex_id": "W2144981148","openalex_url": "https://openalex.org/W2144981148","doi": "10.1371/journal.pmed.0020124","title": "Why Most Published Research Findings Are False","publication_year": 2005,"publication_date": "2005-08-02","type": "article","language": "en","source_name": "PLoS Medicine","source_type": "journal","publisher": "Public Library of Science","issn_l": "1549-1277","cited_by_count": 10451,"is_open_access": true,"oa_status": "gold","oa_url": "https://doi.org/10.1371/journal.pmed.0020124","oa_url_is_pdf": false,"abstract": "There is increasing concern that most current published research findings are false. ...","topics": ["Meta-analysis and systematic reviews", "Academic Publishing and Open Access"],"primary_topic": "Meta-analysis and systematic reviews","field": "Decision Sciences","author_names": ["John P. A. Ioannidis"],"author_count": 1,"authors_truncated": false,"institutions": ["University of Ioannina"],"is_retracted": false,"referenced_works_count": 40,"matched_entity": null,"lookup_status": "ok","note": null,"verify_url": "https://doi.org/10.1371/journal.pmed.0020124"}
Check it yourself: open the verify_url. The title, journal and year on the publisher's page should match. The tests in this Actor were checked the same way, against Crossref (the DOI registration agency) and Europe PMC, not against the Actor's own output. Citation counts change daily and are not part of those checks.
Handled error: a DOI OpenAlex does not know comes back as a record with lookup_status: "not_found", a note, and a verify_url to try by hand. It is not charged. An input that is not a DOI is skipped with a warning in the log, and if every entry is invalid the run fails with a plain message.
Configuration
| Input | Type | Default | What it does |
|---|---|---|---|
mode | choice | doi_lookup | doi_lookup, search, cited_by, institution or source |
dois | list | three sample DOIs | DOI lookup. DOIs, resolver URLs or OpenAlex ids (W...). Up to 2,000 |
query | text | none | Keywords. Required for search. Optional narrowing for institution and source. Up to 500 characters. Use double quotes for an exact phrase |
search_scope | choice | title_and_abstract | Or full_text, which matches the body of papers and returns far more, looser results |
cited_work | text | none | Cited by mode: a DOI or OpenAlex id |
institution | text | none | Institution mode: name, ROR id (https://ror.org/...) or OpenAlex id (I...) |
source | text | none | Journal mode: name, ISSN or OpenAlex id (S...) |
from_year, to_year | integer | none | Publication year range, inclusive |
open_access_only | boolean | false | Only papers with a free full text |
work_types | list | all | article, preprint, review, book, book-chapter, dissertation, dataset, report, letter, editorial, standard, other |
min_citations | integer | 0 | Only papers cited at least this often |
exclude_retracted | boolean | false | Skip retracted papers |
sort | choice | relevance with keywords, otherwise citations | relevance, citations, newest, oldest |
max_results | integer | 25 | Up to 10,000. Up to 50,000 with your own OpenAlex key. Not used for DOI lookup |
include_abstract | boolean | true | Turn off for smaller output |
openalex_api_key | secret text | none | Optional. See the note below |
Filters apply to search, cited by, institution and journal modes. Tables of contents and cover pages are always left out of those modes. DOI lookup ignores filters.
For institution and journal names, the best OpenAlex match is used and every record says which one in matched_entity. Use the id to be certain. Institution mode includes papers by affiliated departments and labs.
Output fields
openalex_id, openalex_url, doi, title, publication_year, publication_date, type, language, source_name, source_type, publisher, issn_l, cited_by_count, is_open_access, oa_status, oa_url, oa_url_is_pdf, abstract, topics, primary_topic, field, author_names, author_count, authors_truncated, institutions, is_retracted, referenced_works_count, matched_entity, lookup_status, note, verify_url.
oa_url is the open access PDF when one is known (oa_url_is_pdf: true), otherwise the best open access page, otherwise null. If OpenAlex files a paper under a different DOI than the one you gave (it merges duplicates), doi shows its DOI, verify_url uses yours, and note explains.
The free allowance, and your own key
OpenAlex gives anyone without a key a small free daily allowance that is shared by everyone on the same network address. DOI lookups cost almost nothing against it. Keyword searches cost more, roughly 100 pages of up to 100 papers a day for the whole shared address. If it runs out, the Actor stops cleanly, keeps what it already delivered and says so. To avoid sharing, create a free key at openalex.org/settings/api and paste it into openalex_api_key: that gives you a separate $1 a day (about 1,000 search pages) and unlocks runs above 10,000 papers. The key is stored as a secret and never written to the log.
Pricing
Pay per event: $0.001 per paper returned ($1 per 1,000), plus Apify's tiny start fee. Records with lookup_status: "not_found" are not charged. Failed runs deliver and charge nothing for papers they did not return.
Data: OpenAlex (openalex.org), released under CC0.