Academic Paper Search — OpenAlex, Crossref, arXiv & PubMed avatar

Academic Paper Search — OpenAlex, Crossref, arXiv & PubMed

Pricing

from $3.00 / 1,000 papers

Go to Apify Store
Academic Paper Search — OpenAlex, Crossref, arXiv & PubMed

Academic Paper Search — OpenAlex, Crossref, arXiv & PubMed

Search scholarly papers in OpenAlex, Crossref, arXiv and PubMed at once, or look up DOIs. One de-duplicated record per paper: title, DOI, year, venue, authors, abstract, citation counts, open access status and PDF link. Public open APIs only. $3 per 1,000 papers.

Pricing

from $3.00 / 1,000 papers

Rating

0.0

(0)

Developer

Salih Küçükkayış

Salih Küçükkayış

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Search scholarly papers in OpenAlex, Crossref, arXiv and PubMed at once, or look up a list of DOIs, and get one de-duplicated record per paper in one schema: title, DOI, year, venue, publisher, authors, abstract, citation and reference counts, open access status and a PDF link when a free copy exists. The same paper found in several sources is merged into one row, with each field taken from the source that is best at it.

$3 per 1,000 papers. Searches that find nothing are free, DOIs that are not found are free, and a paper found again by a later search is not charged twice. No API key needed (an optional free OpenAlex key raises its daily limit), no scraping: only the public APIs of the four sources.

Quick start

Press Start with the example input (finishes in well under a minute):

{
"queries": ["retrieval augmented generation"],
"fromYear": 2024,
"maxResultsPerQuery": 20,
"sources": ["openalex", "arxiv"]
}

Look up papers by DOI or arXiv ID:

{
"dois": ["10.1038/s41586-021-03819-2", "https://doi.org/10.1145/3442188.3445922", "arXiv:2312.10997"]
}

Most cited open access papers on a topic, with their abstracts, from all four sources:

{
"queries": ["CRISPR base editing", "\"prime editing\" off-target"],
"sources": ["openalex", "crossref", "arxiv", "pubmed"],
"sort": "cited_by",
"openAccessOnly": true,
"fromYear": 2020,
"maxResultsPerQuery": 100
}

One row per paper (example of the shape; the values are illustrative, not from a measured run):

{
"title": "Retrieval-Augmented Generation for Large Language Models: A Survey",
"doi": "10.48550/arxiv.2312.10997",
"year": 2023,
"publicationDate": "2023-12-18",
"type": "preprint",
"venue": "arXiv (Cornell University)",
"publisher": "Cornell University",
"authors": ["Yunfan Gao", "Yun Xiong", "Xinyu Gao", "..."],
"authorCount": 10,
"abstract": "Large Language Models (LLMs) showcase impressive capabilities but encounter challenges like hallucination ...",
"citedByCount": 1450,
"referencesCount": 170,
"isOpenAccess": true,
"oaStatus": "green",
"pdfUrl": "https://arxiv.org/pdf/2312.10997v5",
"landingPageUrl": "https://arxiv.org/abs/2312.10997",
"openalexId": "W4390XXXXXX",
"arxivId": "2312.10997",
"pmid": null,
"pmcid": null,
"sources": ["openalex", "arxiv"],
"topics": ["Natural Language Processing Techniques", "Topic Modeling", "Advanced Graph Neural Networks"],
"query": "retrieval augmented generation"
}

What you get

  • Four sources, one schema. OpenAlex (250M+ works across all fields, citation counts, open access links), Crossref (publisher DOI metadata), arXiv (preprints with PDFs) and PubMed (biomedical literature). Every row has the same fields, whichever source found it; a field a source does not have is null.
  • De-duplicated. Results are merged when they share a DOI, then an arXiv ID (or a PubMed / OpenAlex ID), then the same normalised title and year (only when their DOIs do not disagree). An arXiv preprint whose metadata names the journal DOI is merged with the journal article. sources lists every API that returned the paper.
  • Best field from the best source. Citation and reference counts and open access status from OpenAlex; venue and publisher from Crossref; PDF link and abstract from arXiv; then the other sources as fallbacks.
  • PDF links ready for text extraction. pdfUrl is the arXiv PDF or the best open access PDF OpenAlex knows. It links to the original host; the Actor does not download or re-host PDFs. Feed it to Document to Markdown to get Markdown and RAG chunks.
  • Filters: publication years, open access only, sort by relevance, most cited or newest.
  • Citation graph (optional): the OpenAlex IDs of the works a paper cites (referencedWorks) and of up to 200 works that cite it (citedByIds).
  • Bibliographic data only: author display names for credit. No e-mail addresses, no affiliations, no ORCID iDs.
  • Summary in the key-value store record SUMMARY: results per search and source, papers merged or already written, DOIs not found or not written (spending limit or timeout), source errors, notes (such as the OpenAlex daily limit) and requests sent to each API.

Input

FieldDefaultWhat it does
queriesKeyword searches. "Quoted phrases" stay phrases. On arXiv, queries written in arXiv syntax (ti:, au:, cat:cs.CL, AND) are passed as they are
doisDOIs, doi.org links or arXiv IDs to look up
sourcesopenalex, arxiv, crossrefAny of openalex, crossref, arxiv, pubmed
maxResultsPerQuery25Results taken from each source for each search (max 1,000). After merging, a search gives between this number and this number × sources
fromYear, toYearPublication years (searches only, not DOI lookups)
openAccessOnlyfalseKeep only papers that are free to read
sortrelevancerelevance, cited_by or newest
includeAbstracttrueAbstracts from OpenAlex and arXiv
includePublisherAbstractsfalseAlso abstracts from Crossref and PubMed (see Good to know)
includeReferencesfalsereferencedWorks: OpenAlex IDs of the cited works
includeCitedByfalsecitedByIds: OpenAlex IDs of up to 200 citing works, one extra request per paper
mailtoYour e-mail, sent to the APIs as the contact for the requests (optional). Add it if you use PubMed a lot
openalexApiKeyYour free OpenAlex API key (optional, stored as a secret). Raises the OpenAlex daily limit, see below

Output

Every paper row has: title, doi, year, publicationDate, type (article, preprint, review, book-chapter, ...), venue, publisher, authors (display names, at most 100), authorCount, abstract, citedByCount, referencesCount, isOpenAccess (null when no source knows), oaStatus (gold, green, hybrid, bronze, diamond, closed), pdfUrl, landingPageUrl, openalexId, arxivId, pmid, pmcid, sources, topics (top 3 OpenAlex topics, or arXiv categories), query. DOI lookups add inputDoi (and query is null); the optional fields are referencedWorks and citedByIds.

DOIs that are not valid or not found give a row with inputDoi and error; they are free. Export as JSON, CSV or Excel, or read the dataset through the API.

What it costs

RunPrice
The example: 1 search, 20 results from OpenAlex and 20 from arXivat most $0.12 (fewer after merging)
10 searches, 25 results from each of 3 sourcesat most $2.25
1,000 DOIs looked up$3.00
1 search, 1,000 results from OpenAlex$3.00

You pay once per unique paper written to the dataset. Searches with no results, DOIs not found and papers already written for an earlier search in the same run are free. The run stops cleanly at your spending limit or shortly before its timeout, and keeps everything written so far.

Many "Google Scholar" tools scrape Google's result pages. This Actor uses only the public APIs of the sources, returns one de-duplicated schema across four sources, charges per paper found (searches that find nothing are free), and gives you the open access PDF link ready for Markdown conversion.

Good to know

  • Speed. Each API gets its own polite pace, and the sources are queried in parallel. arXiv asks for at least 3 seconds between requests; this Actor asks for up to 200 results per request, so 1,000 arXiv results take about 15 seconds of waiting. OpenAlex and PubMed also return up to 200 results per request. includeCitedBy adds one OpenAlex request per paper.
  • Sorting is done by each source. arXiv and PubMed have no citation counts, so for Most cited they return the most relevant results instead; the merged list of each search is then sorted by citedByCount (or by date for Newest).
  • Open access only: OpenAlex filters by its own open access data and PubMed by "free full text". Crossref has no open access flag, so Crossref results stay only when OpenAlex or arXiv also returned them as open, or their licence is Creative Commons.
  • Publisher abstracts (includePublisherAbstracts) come from Crossref and PubMed. Publishers supply them and some are copyrighted by the publisher, so they are off by default; check the publisher's terms before republishing them.
  • Years are publication years as each source records them; a preprint can be a year older than the journal version it was merged with.
  • Very large author lists (physics collaborations) are cut to the first 100 names; authorCount keeps the full number.
  • Contact address. Crossref and NCBI ask API users to identify themselves. Every request carries a descriptive User-Agent with a contact address: yours if you fill in mailto, otherwise the Actor's project address. Add your e-mail in mailto if you use PubMed a lot, so NCBI can reach you rather than the project if your searches cause a problem.
  • One source failing (for example a short outage) does not stop the run: the other sources still return results, and the error is in the log and in SUMMARY.

OpenAlex daily limit

OpenAlex gives every API key, and anonymous callers, a daily usage budget that resets at midnight UTC. Searches use the most of it, list and filter calls less, and fetching a single paper by its DOI is free (that is why a list of up to 50 DOIs is looked up one DOI at a time). Without your own key, your runs share the Actor's budget with everyone else who runs this Actor without a key, so on a busy day it can run out.

When the budget is used up, OpenAlex answers "429 Too Many Requests". The Actor then retries once after a few seconds, and if the answer is still 429 it stops asking OpenAlex for the rest of the run (no long waits), carries on with the other sources, logs a warning and notes it in SUMMARY (openalexBudgetReached, notes). Papers found only in OpenAlex are then missing from that run.

To get full OpenAlex results, create a free account at openalex.org, copy your API key and paste it in Your OpenAlex API key (openalexApiKey). It is a secret input and is only sent to OpenAlex. The budget of a free key is about ten times the anonymous one (October 2026; OpenAlex sets and may change the numbers).

Data sources

  • OpenAlex (openalex.org): data released under CC0. OpenAlex: Priem, J., Piwowar, H., & Orr, R. (2022). OpenAlex: A fully-open index of scholarly works, authors, venues, institutions, and concepts. arXiv:2205.01833.
  • Crossref (crossref.org): metadata from the Crossref REST API, deposited by Crossref members. Abstracts in Crossref belong to their publishers.
  • arXiv (arxiv.org): metadata from the arXiv API (released under CC0). Thank you to arXiv for use of its open access interoperability. Each paper links to arXiv; the PDFs stay on arXiv, under the licence the authors chose, and are not re-hosted.
  • PubMed / NCBI (pubmed.ncbi.nlm.nih.gov): data from the NCBI E-utilities, requested at no more than 3 requests a second. Some PubMed abstracts are copyrighted by their publishers.

This Actor is independent. It is not affiliated with or endorsed by OpenAlex (OurResearch), Crossref, arXiv / Cornell University, NLM or NCBI.

FAQ

Can I turn the papers into text for an LLM or RAG? Yes. Take the pdfUrl values of the dataset and give them as urls to Document to Markdown: you get Markdown per paper and, optionally, RAG chunks with page numbers. Only open access PDFs have a pdfUrl.

Can an AI agent use it? Yes, through the Apify MCP server. The input is a list of searches or DOIs with sensible defaults, for example "find 10 recent papers about retrieval augmented generation with PDFs".

Why do I get more rows than Results per search? The number is per source. With three sources and 25 each you get up to 75 papers per search, fewer when the sources found the same papers.

Can I get Google Scholar results? No. This Actor uses only public scholarly APIs. OpenAlex covers most of what Google Scholar indexes, with citation counts.

Can I get author e-mails or affiliations? No. Author names are kept for bibliographic credit only.

More from this developer

  • Document to Markdown: PDF, Word, PowerPoint, Excel and scans to clean Markdown for LLMs and RAG.
  • Audio to Text: audio, video and podcast feeds to timestamped text and RAG chunks with Whisper.
  • Bulk HTTP Requests: call any API once for every row of a CSV, JSON list or Apify dataset.
  • UK Companies House: UK company profiles and lists of new companies from the official API.
  • Sitemap Extractor: every URL a website lists in its sitemaps.

Code examples (curl, Python, Node.js, n8n) for this and the other Actors: github.com/msalihk/apify-actor-examples.

Questions or a missing feature: open an issue on the Actor page.