openalex-db

$npx mdskill add aipoch/medical-research-skills/openalex-db

Query 240M scholarly works without API keys for bibliometric analysis.

  • Search works, authors, institutions, and concepts with keyword filtering.
  • Integrates with OpenAlex database via a lightweight Python client wrapper.
  • Executes searches by entity type and applies property-based filters.
  • Delivers structured results for citation tracking and trend exploration.

SKILL.md

.github/skills/openalex-dbView on GitHub ↗
---
name: openalex-db
description: Access the OpenAlex database (240M+ scholarly works) for bibliometric analysis, literature search, and citation tracking; use when you need to query works/authors/institutions/concepts without an API key.
license: MIT
author: aipoch
---
> **Source**: [https://github.com/aipoch/medical-research-skills](https://github.com/aipoch/medical-research-skills)

## When to Use

- You need to search scholarly **works** by keyword and filter by properties (e.g., open access, year, venue).
- You want to look up **authors** and analyze their publication output and citation impact.
- You need to retrieve and compare **institutions** (e.g., affiliation-based exploration or benchmarking).
- You want to explore **concepts/topics** and track trends across time.
- You need lightweight **bibliometric workflows** (citation tracking, publication trends) without managing API keys.

## Key Features

- Query OpenAlex entities: **works, authors, institutions, concepts**.
- Keyword search with **filtering** support.
- Designed for bibliometric tasks such as **citation tracking** and **trend exploration**.
- No API key required; supports providing an email for OpenAlex **Polite Pool** (higher rate limits).
- Simple Python client wrapper via `scripts/openalex_client.py`.

## Dependencies

- `requests` (version not pinned; install via `uv pip install requests`)

## Example Usage

```python
from scripts.openalex_client import OpenAlexClient

def main():
    # Provide an email to use OpenAlex "Polite Pool" (recommended for better rate limits)
    client = OpenAlexClient(email="user@example.com")

    # Search for open-access works related to CRISPR
    works = client.search_works(
        search="CRISPR",
        filter_params={"is_oa": "true"},
    )

    print(f"Found {len(works)} works")
    if works:
        first = works[0]
        # Field names depend on OpenAlex response schema
        print("First result:")
        print(f"  id: {first.get('id')}")
        print(f"  title: {first.get('title')}")
        print(f"  publication_year: {first.get('publication_year')}")
        print(f"  cited_by_count: {first.get('cited_by_count')}")

if __name__ == "__main__":
    main()
```

## Implementation Details

- **Client entry point:** `scripts/openalex_client.py` provides the main API wrapper (`OpenAlexClient`).
- **Polite Pool:** Supplying an `email` is recommended to receive higher rate limits from OpenAlex.
- **Search + filters:** Work queries accept a free-text `search` string plus `filter_params` (key/value pairs) that map to OpenAlex API filters (e.g., `{"is_oa": "true"}`).
- **Pagination and schema:** For supported filters, pagination behavior, and response fields, refer to `references/api_guide.md`.

More from aipoch/medical-research-skills

SkillDescription
3d-molecule-ray-tracerGenerate photorealistic rendering scripts for PyMOL and UCSF ChimeraX.
abstract-summarizerTransform lengthy academic papers into concise, structured 250-word abstracts.
abstract-trimmerPrecision editing tool that reduces abstract word count through intelligent compression techniques, maintaining scientific rigor while meeting strict journal and conference requirements.
academic-abstract-refinerRefines long medical academic texts into SCI-style unstructured Chinese and English abstracts; use when you need to condense drafts/reports/summaries into bilingual abstracts and generate Summary_Report.md.
academic-cv-generatorGenerate structured academic CVs from free-form Chinese/English text and export to Word (.docx). Use this skill when you are asked to organize, generate, or optimize an academic CV (e.g., publications/projects/awards) into a consistent, formatted document with uniform-colored section headers and optional bilingual output.
academic-highlight-generatorGenerates submission-ready Elsevier/SCI Highlights from manuscript text or extracted PDF/DOCX/TXT content. Use when a user needs 3-5 concise, evidence-grounded highlight bullets for a research paper, review, meta-analysis, case report, or bioinformatics manuscript.
academic-norm-reviewDetects content similarity, verifies standardized citations and abbreviations, and flags potential academic integrity risks; use it before submission, during academic writing QA, or for compliance reviews.
academic-poster-generatorComplete workflow for generating academic research posters from PDF literature; use when you need to extract paper content from PDFs and produce a LaTeX-based poster (beamerposter/tikzposter/baposter) with mandatory figure generation and a final rendered HTML deliverable.
acronym-unpackerIntelligent medical abbreviation disambiguation tool that resolves ambiguous acronyms using clinical context, specialty-specific knowledge, and document-level semantic analysis.
active-comparator-single-soc-faers-safety-comparisonGenerates complete FAERS pharmacovigilance study designs for multi-drug or class-level safety comparison inside one predefined SOC or AE family using active comparators, disproportionality analysis, subgroup characterization, and reviewer-facing evidence control.