OpenAlex Scholarly Papers & Authors avatar

OpenAlex Scholarly Papers & Authors

Pricing

Pay per event

Go to Apify Store
OpenAlex Scholarly Papers & Authors

OpenAlex Scholarly Papers & Authors

OpenAlex scholarly metadata scraper for research datasets. Export work, author or institution records as JSON with source metadata and available citation fields.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Grit

Grit

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

Categories

Share

OpenAlex papers scraper returns scholarly work, author, or institution records with source metadata and available citation fields.

OpenAlex papers scraper uses the public source named below and writes its results to the Actor dataset.

Use it for literature discovery, author and affiliation lookup, citation analysis and research input for AI agents. It reads the official OpenAlex API. OpenAlex metadata is released under CC0.

What it returns

Fields vary by result type and optional enrichment. The examples below are from sample_output.json.

Output fieldTypeExample value or excerpt from saved sample
entity_typestring"work"
statusstring"ok"
querystring"transformer neural network"
openalex_idstring"https://openalex.org/W4385245566"
namestring"Exploiting Generative AI to Scale up Intelligent Tutoring Systems"
api_urlstring"https://api.openalex.org/works/W4385245566"
cited_by_countinteger78458
errorsarray[]
retrieved_atstring"2026-10-05T11:33:57.222687+00:00"
source_updated_atstring"2026-10-03T13:16:28.481748"
titlestring"Exploiting Generative AI to Scale up Intelligent Tutoring Systems"
doistring"https://doi.org/10.4230/lipics.itp.2023.19"
publication_yearinteger2023
publication_datestring"2023-01-01"
work_typestring"article"
languagestring"en"
abstractstring or null"As a present to Mizar on its 50th anniversary, we develop an AI/TP system that automatically proves…
authorsarray[{"openalex_id": null}]
institutionsarray[{"openalex_id": "https://openalex.org/I44504214"}]
is_open_accessbooleantrue
oa_statusstring"green"
oa_urlstring"https://drops.dagstuhl.de/storage/00lipics/lipics-vol268-itp2023/LIPIcs.ITP.2023.19/LIPIcs.ITP.2023.19.pdf"
landing_page_urlstring"https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ITP.2023.19"
pdf_urlstring or null"https://drops.dagstuhl.de/storage/00lipics/lipics-vol268-itp2023/LIPIcs.ITP.2023.19/LIPIcs.ITP.2023.19.pdf"
source_namestring"DROPS (Schloss Dagstuhl – Leibniz Center for Informatics)"
source_idstring"https://openalex.org/S4377196569"
referenced_worksarray[]
conceptsarray[{"id": "https://openalex.org/C41008148"}]
topicsarray[{"id": "https://openalex.org/T10181"}]

Choose works, authors or institutions for each run. Results from multiple queries are deduplicated by OpenAlex ID. Dataset views separate the overview, works, authors, institutions and provenance fields.

FieldsMeaning
entity_type, status, queryRecord kind, ok/error and the query that first produced the row
openalex_id, api_url, nameStable OpenAlex ID, official record URL and display name
cited_by_countOpenAlex citation count for the selected entity
title, doi, publication_year, publication_dateWork bibliography
work_type, language, source_name, source_idWork type, language and primary source
abstractAvailable inverted-index abstract reconstructed in token order; otherwise null
authorsWork authors with IDs, ORCIDs, positions and institutional affiliations
institutionsWork affiliations or an author's last known institutions from OpenAlex
is_open_access, oa_status, oa_urlOpen-access metadata and an available access link
landing_page_url, pdf_urlPublic record/PDF links when supplied by OpenAlex
referenced_works, concepts, topicsReferenced work IDs and subject classifications
works_count, h_index, i10_index, two_year_mean_citednessAuthor/institution bibliometric indicators when supplied
orcid, works_api_url, counts_by_yearAuthor identity link, related works query and available annual counts
ror, country_code, institution_type, homepage_urlInstitution identity, country, type and homepage
city, region, country, latitude, longitudePublic institution location
retrieved_at, source_updated_at, errorsRetrieval time, source update time and processing errors

Fields vary by entity type; missing optional source values remain null or empty lists. An error row contains its entity type, query, status and error message. An unavailable or malformed abstract does not discard otherwise usable work metadata.

Input example: scholarly works

{
"entityType": "works",
"queries": ["transformer neural network"],
"yearFrom": 2020,
"yearTo": 2024,
"conceptIds": ["C154945302"],
"openAccess": true,
"minCitations": 100,
"sortBy": "citations",
"includeAbstracts": true,
"maxItems": 8,
"concurrency": 2
}

Years and minCitations are inclusive. IDs in one filter list use OR; different filters use AND. openAccess: false selects closed-access works; omit the property to include both. Work searches can also filter by topicIds, authorIds and institutionIds. Use IDs such as C154945302, A5108093963, I40120149 or their full OpenAlex URLs.

Concepts are deprecated and frozen, so use topicIds for current classification coverage. Concept filtering is retained for existing workflows.

Author search:

{"entityType":"authors","queries":["Geoffrey Hinton"],"minCitations":100,"maxItems":10}

For author affiliation searches, institutionIds refers to the author's last known institutions. Institutional affiliation here reflects the source's publication metadata, not verified current employment.

Institution search:

{"entityType":"institutions","queries":["University of Oxford"],"countryCode":"GB","institutionType":"education","maxItems":10}

sortBy accepts relevance (default), citations, year (works) or worksCount (authors/institutions). Incompatible filters fail with a field-specific message.

Real output example

Selected fields from the checked local dataset; sample_output.json contains the complete rows:

{
"entity_type": "work",
"openalex_id": "https://openalex.org/W4385245566",
"title": "Exploiting Generative AI to Scale up Intelligent Tutoring Systems",
"publication_year": 2023,
"cited_by_count": 78458,
"doi": "https://doi.org/10.4230/lipics.itp.2023.19",
"is_open_access": true,
"status": "ok"
}

Citation counts and other metadata may change after the sample was captured.

Pricing proposal

Custom eventUSD per rowUSD per 1,000 rows
work0.00050.50
author0.00050.50

Work authors nested in a paper are included in the work price. Institution rows, error rows, duplicates and unmatched searches have no custom event charge. Usable work metadata is billable even when an abstract is unavailable. Apify platform usage and any configured platform start event are separate. The owner must configure the proposed prices before publication; see PRICING.md for dated competitor evidence and setup.

Limits and reliability

  • queries: 1–100 non-empty strings, each at most 1,000 characters.
  • maxItems: 1–100,000, default 100. This is a shared cap on dataset rows, including errors, across the run.
  • concurrency: 1–10 parallel searches, default 2. Requests share a limiter; pages within each search are sequential.
  • Each filter-ID list accepts 1–100 IDs. Publication years accept 1–2100.
  • Failed network requests, HTTP 429 and server errors get bounded retries with increasing delays. Permanent API errors become uncharged query error rows; malformed records become uncharged item error rows.
  • Anonymous OpenAlex access has a smaller daily allowance. An optional own free key can be supplied as the secret apiKey field or the OPENALEX_API_KEY environment variable. Keys are sent in an Authorization header and excluded from result/error messages.
  • OpenAlex author disambiguation, affiliation inference and citation counts can contain source errors. Abstracts and OA/PDF links are not available for every work.
  • A restarted or migrated run can revisit records: deduplication and the global row counter are scoped to one process. Migration/restart recovery has not been implemented or validated.

FAQ

What limits a search? maxItems caps rows across queries; results are deduplicated by OpenAlex ID. Source quotas can stop a larger search.

Do I need a proxy, login, or API key? Anonymous public access is supported. An optional own OpenAlex API key can increase the source allowance; no proxy is configured.

How is it priced? The proposed pay-per-event model charges work for a unique work and author for a unique author profile. Institution and error rows have no custom event charge.

How are rate limits handled? Workers share a request limiter and retry temporary responses with backoff and Retry-After when present. A source quota failure is reported.

How fresh are citation counts? retrieved_at records this fetch and source_updated_at reports the source’s update time when available. Citation counts can change.

Does it download full papers? No. It returns metadata, available abstracts, and source-provided links.

Use with AI agents / MCP

After publication, agents can discover and invoke this Actor through the Apify MCP server at https://mcp.apify.com. Supply the same JSON input and read the default dataset through the Actor's Results output link.

Example agent instruction: “Find open-access transformer research published from 2020 to 2024, with at least 100 OpenAlex citations. Return eight works with titles, DOIs and available abstracts. Preserve each OpenAlex ID and retrieval date.”

For an author-to-paper workflow, first search authors, choose the intended returned ID, then search works using authorIds. For an institution-to-paper workflow, first search institutions, then pass its ID as institutionIds in a works search.

Local development

Dependencies: apify>=4.0,<5, httpx>=0.28,<1. No package was added to the shared virtual environment.

Run from this actor directory with the provided environment, without the Apify CLI. In PowerShell:

$env:APIFY_LOCAL_STORAGE_DIR = Join-Path (Get-Location) 'storage'
New-Item -ItemType Directory -Force 'storage/key_value_stores/default' | Out-Null
Copy-Item 'example_input.json' 'storage/key_value_stores/default/INPUT.json'
& 'C:/GritWork/earn/.venv/Scripts/python.exe' -m src

Use a fresh storage directory when repeating a run to keep prior datasets separate. The actor also writes a RUN_SUMMARY key-value record containing row counts, errors, API requests, custom event count and elapsed time.

Offline tests:

& 'C:/GritWork/earn/.venv/Scripts/python.exe' -m pytest -m 'not live' -q

Live smoke:

& 'C:/GritWork/earn/.venv/Scripts/python.exe' -m pytest -m live -q

The real-response fixture URLs and capture time are in tests/fixtures/SOURCES.json. Full local and test evidence is in evidence/; scripts/verify_local.py exercises fresh-storage searches, errors and simulated event budgets. scripts/compare_sample.py independently checks saved IDs, bibliography, citation counts and each abstract token position against fresh official API responses. scripts/validate_package.py checks the requested metadata paths and package constraints. Docker configuration uses apify/actor-python:3.12; a Docker build and cloud run remain for the owner to validate before publication.