OpenAlex Scholarly Works - Papers, Citations and Open Access
Pricing
from $1.00 / 1,000 results
OpenAlex Scholarly Works - Papers, Citations and Open Access
Search 250 million scholarly works and get flat rows - title, DOI, year, journal, citation count and whether it is open access. Free public API, no key.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
alaudin burki
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
OpenAlex Scholarly Works — Papers, Citations and Open Access
Search the OpenAlex catalogue of scholarly works and get one flat row per paper: title, DOI, year, venue, citation count and open-access status. The API is public and key-less, so a search runs without an account. Rows are metadata only — no abstracts and no full text.
How to use
- Put a search phrase in Search text (OpenAlex matches it against titles, abstracts and full text), or leave it empty and use Filter alone to select a slice of the catalogue.
- Optionally add an OpenAlex filter expression, e.g.
from_publication_date:2024-01-01,is_oa:true. The two fields combine: the search and the filter are applied together. - Run the Actor and open the dataset. The
SUMMARYkey-value record reports the row count, the requests made and the reason the run stopped.
Inputs
| Input | What it does | Default |
|---|---|---|
query | Full-text search phrase, matched by OpenAlex against work titles, abstracts and full text. | none — no search term |
filter | OpenAlex filter expression, comma-separated, e.g. publication_year:2023,is_oa:true. | none — no filter |
maxItems | Stop after this many rows. Capped at 20,000. | 500 |
maxPages | Stop after this many requests. Each request returns up to 200 works. Capped at 200. | 5 |
Example input:
{ "query": "climate adaptation", "filter": "from_publication_date:2024-01-01,is_oa:true", "maxItems": 200, "maxPages": 1 }
Output dataset
| Field | Meaning |
|---|---|
title | Work title as OpenAlex holds it. |
doi | The DOI as a full URL, e.g. https://doi.org/10.1234/example. Null when the work has no DOI. |
year | Publication year as a number. |
date | Publication date, YYYY-MM-DD. |
language | Language code of the work, e.g. en. Null where OpenAlex has none. |
citedBy | Citation count recorded by OpenAlex at the time of the run. A count, not a quality measure. |
journal | Host venue's display name, e.g. the journal or repository. Null for works with no known venue. |
isOpenAccess | Whether OpenAlex classes the work as open access. Its definition is its own. |
oaStatus | Open-access route in OpenAlex's vocabulary: gold, green, hybrid, bronze, diamond or closed. |
url | Publisher landing page for the work, when OpenAlex records one. Null otherwise. |
Each row also carries id (openalex: followed by the OpenAlex work URL), source, firstSeenAt and
scrapedAt, plus the work type (article, preprint, book-chapter and so on). Rows are
de-duplicated by OpenAlex id.
Why this is different
- One dataset row per work, with the citation count and the open-access route already resolved — the
API nests the venue and the access details inside
primary_locationandopen_accessobjects. - The DOI arrives as a resolvable URL, not a bare string, so it can be followed without rebuilding it.
- It separates the boolean from the route:
isOpenAccessanswers yes or no,oaStatustells you whether that means gold, green, hybrid, bronze or diamond. - Two inputs cover the common jobs: a text search for a topic, and a filter expression for a date range, an access type or a field.
- The run names its own end state:
SUMMARYrecordstruncatedandstopReason, so a dataset cut off at a cap does not look like the end of the catalogue.
Limitations
- Metadata only. No abstracts, no full text, no references list and no author affiliations.
- Citation counts are OpenAlex's own and are a snapshot; they move between runs.
- Open-access classification is OpenAlex's judgement, and
oaStatuscategories do not correspond to the terms other indexes use. doi,journal,urlandlanguageare frequently null, especially for preprints, older works and grey literature.- The search is relevance ranked by OpenAlex. It is not a systematic review protocol and will not enumerate every work on a topic.
- A run stops at
maxItemsormaxPages— 500 rows over 5 requests by default, so a broad topic is truncated unless you raise the caps.
FAQ
Do I need an API key? No. The API is queried without credentials, and the Actor sends none.
How do I restrict results to one year or one access type?
Use the filter field, e.g. publication_year:2023 or is_oa:true. Several filters can be joined with
commas in the same expression.
Why is doi null for some rows?
Not every work has a registered DOI. The row is still valid — use id or url to identify it.
Is citedBy comparable across runs?
Only loosely. It is a live count from OpenAlex, so a later run can show a higher number for the same
paper.
Can I get the abstract or the PDF? No. The Actor returns the metadata fields listed above; the full text is not fetched.
Pricing and limits
Pricing is per event: one charge per run, with the current price on this Actor's Apify pricing panel. Each request returns up to 200 works; a run defaults to 500 rows over 5 requests and can be raised to 20,000 rows and 200 requests. Requests are paced 250 ms apart, retried up to three times on rate-limit and server errors, and time out after 30 seconds. The source itself is free to query.