Microproduct data guideintermediate

OpenAlex Scholarly Works

Open scholarly metadata linking works, authors, institutions, sources, topics, and citations for building research-monitoring products.

At a glance

Difficulty
Intermediate — some data preparation helps
Size
Small · ≤0.1 GB
Formats
JSON, JSON Lines, GZIP
Access
API or Download
API key
Required
Provider
OurResearch
Updates
Continuous
Data terms
Creative Commons CC0 1.0 Universal

From source to product signal

Test a product idea in four steps

OpenAlex indexes scholarly works and links them to authors, institutions, venues, topics, and citations. Start with one clear research query, a 30-day publication window, and a single result page; the full public snapshot is hundreds of gigabytes. Citation counts lag, source coverage varies, and author, institution, and topic disambiguation is imperfect.

1

Check the setup

  • Python 3.10 or newer
  • A notebook environment such as Jupyter or Google Colab
  • An OpenAlex API key saved in the OPENALEX_API_KEY environment variable
2

Access the data

  1. 1.Create a free OpenAlex API key and save it in the OPENALEX_API_KEY environment variable.
  2. 2.Choose a specific research query and set a bounded publication-date filter.
  3. 3.Request only needed fields, retain OpenAlex IDs, and record the retrieval timestamp.
Open official source
3

Run the Python example

Install the packages, then run the notebook cell.

python -m pip install pandas requests

import os
from datetime import date, timedelta
import pandas as pd
import requests

start = date.today() - timedelta(days=30)
response = requests.get(
    "https://api.openalex.org/works",
    params={
        "api_key": os.environ["OPENALEX_API_KEY"],
        "search": "wildfire risk",
        "filter": f"from_publication_date:{start.isoformat()}",
        "sort": "publication_date:desc",
        "per_page": 100,
        "select": "id,display_name,publication_date,cited_by_count,primary_topic,authorships",
    },
    timeout=30,
)
response.raise_for_status()
works = pd.json_normalize(response.json()["results"])
works["retrieved_at_utc"] = pd.Timestamp.now(tz="UTC")
print(works[["id", "display_name", "publication_date", "cited_by_count", "primary_topic.display_name"]].head(20))
4

Test a useful signal

Track recent work on one research topic

Identify newly indexed works about wildfire risk published during the last 30 days.

  1. 01Review the query and publication-date filter and retain stable OpenAlex IDs for deduplication.
  2. 02Summarize recent works by publication date and primary topic without treating citation count as immediate impact.
  3. 03Explain how indexing delay, source coverage, citation lag, and imperfect author, institution, and topic disambiguation limit the monitor.

Dataset details

OurResearch is a nonprofit source. Last verified 2026-08-11. Temporal coverage: historical scholarly works through current indexing.

Domains

ResearchScholarly Communication

Data types

Knowledge GraphBibliographic Data

Tasks

Literature MonitoringTopic ResearchTrend Analysis

Geography

Global

Formats

JSONJSON LinesGZIP

Provider

OurResearch

Data terms

Creative Commons CC0 1.0 Universal