OpenAlex Scraper — Academic Papers, Citations, Authors avatar

OpenAlex Scraper — Academic Papers, Citations, Authors

Pricing

from $0.70 / 1,000 result items

Go to Apify Store
OpenAlex Scraper — Academic Papers, Citations, Authors

OpenAlex Scraper — Academic Papers, Citations, Authors

Search 250M+ scholarly works via OpenAlex: title, authors and institutions, year, venue, citations count, open-access PDF link, DOI, concepts, abstract. Filter by year and citations, sort by relevance or citations. Complements arXiv. No API key.

Pricing

from $0.70 / 1,000 result items

Rating

0.0

(0)

Developer

Samat Makatov

Samat Makatov

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Categories

Share

OpenAlex Scholarly Search — works, authors, journals, institutions, topics with citations & open access

Query OpenAlex, the open index of 250M+ scholarly works from every publisher (journals, preprints, books, datasets), plus its 100M authors, 250k sources, 100k institutions, funders and topics. Filter by year/date, citations, open-access status, type, language, country, institution, author, journal, topic or funder; sort by citations, date or field-weighted impact; get counts per group (groupBy) for instant analytics; crawl the citation graph with cites / citedBy. Built for research analysts, tech-scouting and competitive-intel teams, grant offices, science journalists and AI agents.

No API key, no proxy, no browser — the free OpenAlex REST API (polite pool).

Use cases

  • Expert / KOL discoveryentity: "authors", query: "battery electrolytes", countryCodes: ["DE"], sortBy: "cited_by_count" → researchers based in Germany who published on the topic since fromYear, most cited first, with papers on the topic (topicWorksCount), h-index, ORCID and current institution. (OpenAlex's own author search matches names only — the actor finds the matching papers and ranks their authors; see authorSearchMode.)
  • Competitive research intelligenceinstitutionIds: ["I…"] of a competitor's lab + fromDate → everything they published this quarter, with topics and funders.
  • Citation alertscites: "W2741809807" run weekly → new papers citing your key patent/paper.
  • Market-sizing of a research fieldgroupBy: "publication_year" or "authorships.institutions.country_code" on a query gives publication trends and country shares in one request.
  • Journal selection / APC budgetingentity: "sources", query: "machine learning", customFilter: "is_in_doaj:true" → open-access journals with APC prices and h-index.
  • Literature review / RAG corpusopenAccessOnly: true, hasAbstract: true, fields: ["id","doi","title","abstract","pdfUrl"], limit: 5000.
  • Grant landscapefunderIds: ["F4320306076"] (NSF) + topic query → funded work, corresponding authors, institutions.

Input

All fields are optional. Provide at least a query, one filter, ids/dois or sample. Works-only filters are ignored (with a warning) for other entities.

FieldTypeDefaultAllowed values / notes
entitystringworksworks, authors, sources, institutions, topics, concepts, funders, publishers
querystringSearch text: stemmed, case-insensitive, "quoted phrases", AND / OR / NOT, -excluded. When sorting works by anything other than relevance, a plain 2–6 word query is matched as an exact phrase (falls back to all words if no work contains the phrase); add your own quotes or operators to control matching.
searchInstringtitleAndAbstractWorks (and experts by topic): titleAndAbstract, title, abstract, default (title + abstract + full text — broadest, but also matches papers that merely mention the words in their body), fulltext, keyword, rawAffiliation, semantic (embedding search, ranks by meaning).
authorSearchModestringautoentity: "authors" + query only. topic = experts by topic: works matching the query (with all works filters — fromYear, countryCodes, types…) grouped by author, ranked by papers on the topic (topicWorksCount) or by the author's citations / works count via sortBy; countryCodes keeps authors whose last known institution is there; minCitations applies to the author; max 200 authors. name = OpenAlex author name search. auto = name search only when the query looks like a person's name that OpenAlex knows ("Ashish Vaswani"), otherwise topic.
fromYear / toYearinteger2020 / –Publication year window (works).
fromDate / toDatestringYYYY-MM-DD; overrides the year fields.
minCitations / maxCitationsintegercited_by_count range. maxCitations: 0 = uncited only.
openAccessOnlybooleanfalseis_oa:true.
oaStatusstring[][]diamond, gold, green, hybrid, bronze, closed
typesstring[][]article, book-chapter, dataset, preprint, dissertation, book, review, paratext, libguides, letter, other, reference-entry, report, editorial, peer-review, erratum, standard, grant, supplementary-materials, retraction
languagesstring[][]ISO 639-1 (en, ru, de, zh…).
countryCodesstring[][]ISO 3166-1 alpha-2. Works: any author affiliated there; authors: last known institution; institutions/sources/funders/publishers: own country.
institutionIdsstring[][]I… ids (lineage — child institutes included). Find with entity: "institutions".
authorIdsstring[][]A… ids. Find with entity: "authors".
sourceIdsstring[][]S… ids (journal/repository), e.g. S137773608 = Nature.
topicIdsstring[][]T… ids. Find with entity: "topics".
funderIdsstring[][]F… ids, e.g. F4320306076 = NSF, F4320320879 = ERC.
idsstring[][]Fetch specific records by OpenAlex id (any entity), ≤100. Full URLs accepted.
doisstring[][]Fetch works by DOI, ≤100.
citesstringW…: works that cite this work (incoming citations).
citedBystringW…: works this work cites (its reference list).
hasDoi / hasAbstractbooleanPresence filters (unset = any).
excludeRetractedbooleanfalseis_retracted:false.
customFilterstringRaw OpenAlex filter appended verbatim (see Reference), e.g. primary_location.source.is_in_doaj:true,authorships.institutions.type:company.
sortBystringrelevance_scoreworks: relevance_score, cited_by_count, publication_date, publication_year, fwci, display_name, created_date, updated_date; other entities: relevance_score, cited_by_count, works_count, display_name (+ level for concepts). Relevance without a query falls back to citations / works count.
sortOrderstringdescdesc, asc
limit (alias maxItems)integer251–10 000, cursor paging 200 per request.
groupBystringReturn counts per group instead of records (max 200 groups). Any filter field, e.g. publication_year, type, oa_status, authorships.institutions.country_code, primary_location.source.id, primary_topic.id, funders.id.
sampleintegerReproducible random sample of N matching records (seed 42) instead of the sorted list.
flagCitationAnomaliesbooleantrueSanity-check citation counts of up to 25 works with ≥500 citations per run (+1 cheap request each): citationsSuspect: true when ≥5% of the citing works were published 2+ years before the work itself — see FAQ.
includeAbstractbooleantrueRebuild the abstract from the inverted index (works).
maxAuthorsinteger10Truncate author lists; authorsCount keeps the real number.
includeAuthorDetailsbooleanfalseAdds authorsDetailed (id, ORCID, position, corresponding flag, institutions with ROR/country).
includeCountsByYearbooleanfalseAdds countsByYear.
includeReferencedWorksbooleanfalseAdds referencedWorks (W… ids) for graph crawling.
fieldsstring[][]Keep only these output fields.
mailtostringYadroo'sYour e-mail for the OpenAlex polite pool.
apiKeystringOptional OpenAlex premium key. Never required.

Reference

Entity ids

PrefixEntityExample
WworkW2741809807 (Attention Is All You Need)
AauthorA5103024730
Ssource (journal / repository / conference)S137773608 (Nature), S4306400194 (arXiv)
IinstitutionI136199984 (Harvard), I185571130 (Al-Farabi KazNU)
TtopicT10028 (Topic Modeling)
FfunderF4320306076 (NSF)
PpublisherP4310319965 (Springer Nature)
Cconcept (legacy)C41008148 (Computer Science)

Work filters usable in customFilter (most common)

Syntax: field:value, several values a|b = OR, several filters separated by , = AND, !value = NOT, numbers accept > / <. Full list: https://docs.openalex.org/api-entities/works/filter-works

FilterMeaning
publication_year, publication_date, from_publication_date, to_publication_datewhen published
from_created_date, from_updated_datewhen OpenAlex added / updated the record (needs apiKey for created_date)
type, type_crossref, language, is_retracted, is_paratextrecord kind
cited_by_count, fwci, citation_normalized_percentile.value, referenced_works_countimpact
is_oa, oa_status, open_access.any_repository_has_fulltext, best_oa_location.licenseopen access
authorships.author.id, authorships.author.orcid, authorships.is_corresponding, authors_countauthors
authorships.institutions.id, .lineage, .ror, .country_code, .continent, .type (education, company, government, healthcare, nonprofit, facility, archive, other), .is_global_southaffiliations
primary_location.source.id, .issn, .type (journal, repository, conference, ebook platform, book series), .is_in_doaj, .is_core, .publisher_lineage, .host_organizationvenue
primary_topic.id, topics.id, primary_topic.subfield.id, .field.id, .domain.id, keywords.id, concepts.idsubject
funders.id, grants.award_id, sustainable_development_goals.idfunding / SDG
has_doi, has_pmid, has_pmcid, has_abstract, has_fulltext, has_references, has_orcidcompleteness
ids.pmid, ids.openalex, doi, title.search, abstract.search, fulltext.search, raw_affiliation_strings.search, default.searchids and searches
cites, cited_by, related_tograph
indexed_in (crossref, pubmed, doaj, arxiv, datacite), locations_count, has_oa_accepted_or_published_versionmisc

Other entities: authors — last_known_institutions.id/.country_code, affiliations.institution.id, orcid, has_orcid, works_count, cited_by_count, summary_stats.h_index; sources — type, country_code, is_oa, is_in_doaj, is_core, apc_usd, host_organization, issn; institutions — country_code, type, continent, is_global_south, lineage, ror; topics — subfield.id, field.id, domain.id; funders / publishers — country_code, works_count, grants_count.

Open-access status

oaStatusMeaning
diamondOA journal without APC
goldOA journal (usually APC)
hybridOA article in a subscription journal
greenfree copy only in a repository
bronzefree on the publisher site, no license
closedno free copy known

Examples

Most cited recent papers on a topic (literature review starter)

{ "query": "solid-state battery electrolyte", "searchIn": "titleAndAbstract", "fromYear": 2023, "minCitations": 20, "sortBy": "cited_by_count", "limit": 100 }

Who works on this in Kazakhstan — experts by topic, ranked by citations

{ "entity": "authors", "query": "wheat breeding", "countryCodes": ["KZ"], "sortBy": "cited_by_count", "limit": 50 }

Returns authors of KZ-affiliated papers on wheat breeding since 2020 whose last known institution is in Kazakhstan (e.g. Al-Farabi KazNU, Seifullin Agro Technical University), with topicWorksCount, total citations and h-index. Drop sortBy to rank by number of papers on the topic.

Look up an author by name

{ "entity": "authors", "query": "Ashish Vaswani", "authorSearchMode": "name", "limit": 5 }

Weekly citation alert for a key paper

{ "cites": "W2741809807", "fromDate": "2026-09-06", "sortBy": "publication_date", "limit": 200, "fields": ["id", "doi", "title", "publishedAt", "venue", "authors", "url"] }

Country shares of a research field (one request, no items)

{ "query": "agentic AI", "fromYear": 2024, "groupBy": "authorships.institutions.country_code", "limit": 50 }

Corporate research output this quarter (competitor intel)

{ "institutionIds": ["I1291425158"], "fromDate": "2026-07-01", "sortBy": "publication_date", "includeAuthorDetails": true, "limit": 500 }

Open-access journals in a field with APC prices

{ "entity": "sources", "query": "computer vision", "customFilter": "is_in_doaj:true", "sortBy": "cited_by_count", "limit": 30 }

Output

One item per record. Works example (trimmed):

{
"id": "W7211905801",
"openalexUrl": "https://openalex.org/W7211905801",
"doi": "10.54254/2755-2721/2026.ld28741",
"doiUrl": "https://doi.org/10.54254/2755-2721/2026.ld28741",
"title": "A Survey on Reinforcement Learning Optimization Methods for Multi-Agent Collaboration of Large Language Models",
"year": 2026,
"publishedAt": "2026-09-08",
"type": "article",
"language": "en",
"venue": "Applied and Computational Engineering",
"venueId": "S4387284237",
"venueType": "journal",
"publisher": "EWA Publishing",
"authors": ["Qianling Zhang"],
"authorsCount": 1,
"institutions": ["Xiangtan University"],
"countries": ["CN"],
"correspondingAuthors": ["Qianling Zhang"],
"citations": 0,
"fwci": null,
"citationPercentile": null,
"isOpenAccess": true,
"oaStatus": "gold",
"pdfUrl": "https://ace.ewapub.com/article/view/36623.pdf",
"url": "https://doi.org/10.54254/2755-2721/2026.ld28741",
"primaryTopic": "Multi-Agent Systems and Negotiation",
"field": "Computer Science",
"domain": "Physical Sciences",
"topics": ["Multi-Agent Systems and Negotiation", "Reinforcement Learning in Robotics"],
"keywords": ["Reinforcement learning", "Multi-agent system"],
"abstract": "Large language models (LLMs) …",
"source": "openalex",
"fetchedAt": "2026-09-13T08:01:05.123Z"
}
Field groupWorks fields
identityid, openalexUrl, doi, doiUrl, pmid, arxivId, title, type, typeCrossref, language, year, firstVersionYear (year of the earliest arXiv/bioRxiv version merged into the record, else year), publishedAt
venuevenue, venueId, venueType, issn, publisher, volume, issue, pages
peopleauthors, authorsCount, authorsTruncated, correspondingAuthors, institutions, countries, optional authorsDetailed[]
impactcitations, fwci, citationPercentile, isTop10Percent, isTop1Percent, referencedWorksCount, optional countsByYear[], referencedWorks[]
accessisOpenAccess, oaStatus, pdfUrl, url, license, version, isRetracted
subjectprimaryTopic, primaryTopicId, subfield, field, domain, topics[], keywords[], concepts[], sdgs[], funders[]
textabstract
provenancesource, fetchedAt

Works also carry citationsSuspect (true / false, null = not checked) and citationsPredatingWork (citing works published 2+ years before the work's first version). Authors: id, name, orcid, worksCount, citations, hIndex, i10Index, meanCitedness2y, lastKnownInstitutions, lastKnownCountry, lastKnownCountries, country, affiliations[], topics[], matchedBy (topic / name); experts by topic add topicWorksCount (papers matching the query) and topicQuery. Sources: name, type, issnL, publisher, country, worksCount, citations, hIndex, isOpenAccess, isInDoaj, apcUsd, homepage. Institutions: name, ror, country, city, type, worksCount, citations, hIndex, homepage, parentIds. Topics: name, description, keywords, subfield, field, domain, worksCount. Group-by rows: groupBy, key, keyDisplayName, count, share.

A SUMMARY record in the key-value store holds the exact filter string, the first request URL and totalMatching.

Use it from code / agents

curl -X POST "https://api.apify.com/v2/acts/yadroo~openalex-works/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query":"agentic commerce","fromYear":2024,"sortBy":"cited_by_count","limit":50}'
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('yadroo/openalex-works').call({ entity: 'authors', query: 'perovskite solar', countryCodes: ['DE'], limit: 50 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("yadroo/openalex-works").call(run_input={"cites": "W2741809807", "fromDate": "2026-09-01", "limit": 200})
items = client.dataset(run["defaultDatasetId"]).list_items().items

MCP: add https://mcp.apify.com to Claude / Cursor / any MCP client and call the yadroo/openalex-works tool with the same JSON input.

Pricing

Pay per event: $0.001 per run start + $0.001 per item (a group-by row counts as an item). Typical runs: 25-record lookup ≈ $0.026; 500-paper competitor snapshot ≈ $0.5; 50-row country breakdown ≈ $0.051.

Limits & FAQ

  • Rate limits — OpenAlex meters its free API: without an API key each IP gets a small daily budget (about $0.10/day of API credit in September 2026 — a search request costs $0.001, a plain filter/lookup $0.0001), ~10 requests/s. The actor pages 200 records per request with a 250 ms pause and retries 429/5xx with backoff; when the daily budget is spent it stops with a clear error — pass your own free apiKey for heavy use.
  • Citation counts are OpenAlex's own (citations = cited_by_count, not remapped). OpenAlex occasionally credits another paper's citations to the wrong record — e.g. a 2023 conference paper showing 79 000 citations, 15% of them from papers written before it existed. flagCitationAnomalies catches this pattern (citationsSuspect: true) for highly cited works, measuring from the first public version so a journal record of an older arXiv preprint is not flagged; it cannot catch records where only the title is wrong (a few arXiv records carry an unrelated title but the real paper's authors and citations) — check the DOI when a result looks odd.
  • Search precision — the default titleAndAbstract avoids papers that mention the words only in their body; title is the most precise for citation-ranked lists. default / fulltext are for recall, not for citation rankings.
  • Freshness — OpenAlex ingests Crossref/PubMed/arXiv within days; citation counts update roughly weekly.
  • Depth — up to 10 000 records per run via cursor paging; split bigger jobs by year or source. ids/dois take up to 100 per run (one request).
  • Abstracts — rebuilt from OpenAlex's inverted index; ~40% of works have none (hasAbstract: true to filter).
  • Errors — an invalid filter/sort fails fast with OpenAlex's own message (it lists the valid field names); unknown enum values are warned about before the request.
  • Not included — full text, publisher paywalled PDFs; pdfUrl points to the best open copy when one exists.
  • Roadmap — autocomplete helper for ids, N-gram endpoint, Semantic Scholar cross-links.

Made by Yadroo. Sibling actors: arxiv-papers (preprints with full category taxonomy), wikipedia-search, openlibrary-books, sec-edgar-filings, github-repo-intel.