OpenAlex Academic Search
Search query: $ARGUMENTS
Role & Positioning
This skill uses OpenAlex as a comprehensive open academic graph source:
| Skill |
Source |
Best for |
/arxiv |
arXiv API |
Latest preprints, cutting-edge unrefereed work |
/semantic-scholar |
Semantic Scholar API |
Published venue papers (IEEE, ACM, Springer) with citation counts |
/openalex |
OpenAlex API |
Open citation graph, institutional affiliations, funding data, comprehensive metadata |
/deepxiv |
DeepXiv CLI |
Layered reading: search, brief, section map, section reads |
/exa-search |
Exa API |
Broad web search: blogs, docs, news, companies, research papers |
/gemini-search |
Gemini MCP / CLI |
AI-powered broad literature discovery |
Use OpenAlex when you want:
- Open citation data — fully open citation graph (no API key required for basic use)
- Institutional affiliations — author institutions and collaborations
- Funding information — NSF, NIH, and other funding sources
- Comprehensive metadata — topics, keywords, abstract, open access status
- Cross-database coverage — indexes 250M+ works from multiple sources
Constants
- MAX_RESULTS = 10 — Default number of results. Override with
— max: 20.
- DEFAULT_SORT = relevance — Sort by relevance. Override with
— sort: citations or — sort: date.
- FETCH_SCRIPT —
tools/openalex_fetch.py relative to the project root.
Overrides (append to arguments):
/openalex "topic" — max: 20 — return up to 20 results
/openalex "topic" — year: 2023- — papers from 2023 onward
/openalex "topic" — year: 2020-2023 — papers from 2020 to 2023
/openalex "topic" — type: article — only journal articles
/openalex "topic" — type: preprint — only preprints
/openalex "topic" — open-access — only open access papers
/openalex "topic" — min-citations: 50 — minimum 50 citations
/openalex "topic" — sort: citations — sort by citation count (descending)
/openalex "topic" — sort: date — sort by publication date (newest first)
Setup
Prerequisites
Python 3.7+ with requests library:
pip install requests
Optional: API keys — Create .claude/.env in project root:
# Copy from template
cp .claude/.env.example .claude/.env
# Edit and add your keys
# .claude/.env
OPENALEX_API_KEY=your-key-here
OPENALEX_EMAIL=your-email@example.com
Claude Code automatically loads .claude/.env as environment variables.
Get API keys (optional but recommended):
- OpenAlex API key: Free tier $1/day (10,000 list calls, 1,000 search calls) from openalex.org
- Email for polite pool: Faster response times (no registration needed)
Verify Setup
python3 tools/openalex_fetch.py search "machine learning" --max 3
Workflow
Step 1: Parse Arguments
Parse $ARGUMENTS for:
- query: The research topic (required)
- max: Override MAX_RESULTS
- year: Publication year filter (e.g.,
2023-, 2020-2023)
- type: Work type filter (
article, preprint, book, book-chapter, dataset, dissertation)
- open-access: Only include open access papers
- min-citations: Minimum citation count threshold
- sort: Sort order (
relevance, citations, date)
Step 2: Locate Script
SCRIPT=$(find tools/ -name "openalex_fetch.py" 2>/dev/null | head -1)
[ -z "$SCRIPT" ] && SCRIPT=$(find ~/.claude/skills/openalex/ -name "openalex_fetch.py" 2>/dev/null | head -1)
If not found, tell the user:
openalex_fetch.py not found. Make sure tools/openalex_fetch.py exists and requests is installed:
pip install requests
Step 3: Execute Search
Basic search:
python3 "$SCRIPT" search "QUERY" --max 10
With filters:
python3 "$SCRIPT" search "QUERY" --max 10 \
--year 2023- \
--type article \
--open-access \
--min-citations 20 \
--sort citations
Get specific work by DOI:
python3 "$SCRIPT" work "10.1109/TWC.2024.1234567"
Get specific work by OpenAlex ID:
python3 "$SCRIPT" work "W2741809807"
Step 4: Parse Results
The script returns structured JSON with:
title: Paper title
authors: List of author names
publication_year: Year published
venue: Journal/conference name
venue_type: Type of venue (journal, repository, conference, etc.)
cited_by_count: Number of citations
is_oa: Boolean for open access status
oa_status: Open access type (gold, green, bronze, hybrid, closed)
oa_url: Direct PDF link if available
doi: DOI identifier
openalex_id: OpenAlex work ID
abstract: Full abstract text
topics: Top 3 research topics
keywords: Top 5 keywords
type: Work type (article, preprint, etc.)
Step 5: Present Results
Format results as a structured table:
| # | Title | Venue | Year | Citations | OA | Summary |
|---|-------|-------|------|-----------|----|---------|
| 1 | ... | IEEE TWC | 2024 | 156 | ✓ | ... |
| 2 | ... | NeurIPS | 2023 | 89 | ✓ | ... |
For each paper, also show:
- DOI: Canonical identifier
- OpenAlex ID: For cross-reference
- Open Access: Status (gold/green/bronze/hybrid/closed) and PDF link
- Topics: Top research topics
- Abstract: First 200 characters or full text
Step 6: Offer Follow-up
After presenting results, suggest:
/semantic-scholar "DOI:..." — get S2 citation context and related papers
/arxiv "arXiv:XXXX.XXXXX" — fetch arXiv preprint if available
/research-lit "topic" — sources: openalex, semantic-scholar — combined multi-source review
/novelty-check "idea" — verify novelty against literature
Key Rules
- OpenAlex is fully open — no API key required for basic use, but recommended for higher rate limits
- Comprehensive metadata — OpenAlex provides richer metadata than most sources (institutions, funding, topics)
- Citation data is open — unlike Semantic Scholar, all citation data is freely accessible
- Rate limits: Without API key, very limited (~$0.01/day). With free API key: 10,000 list calls/day, 1,000 search calls/day.
- Polite pool: Set
OPENALEX_EMAIL environment variable for faster response times
- Cross-reference with other sources: OpenAlex indexes papers from arXiv, PubMed, Crossref, etc. — use DOI/arXiv ID to cross-reference
- If OpenAlex API is unreachable or rate-limited, suggest using
/semantic-scholar, /arxiv, or /research-lit "topic" — sources: web as alternatives.
OpenAlex vs Other Sources
| Feature |
OpenAlex |
Semantic Scholar |
arXiv |
| Coverage |
250M+ works |
200M+ papers |
2.4M+ preprints |
| Citation data |
Fully open |
Partially open |
None |
| Institutions |
✓ Full affiliations |
✓ Limited |
✗ |
| Funding |
✓ NSF, NIH, etc. |
✗ |
✗ |
| Open access |
✓ Full OA status |
✓ PDF links |
✓ All papers |
| API key |
Optional (free) |
Optional (free) |
Not required |
| Rate limits |
1,000 searches/day (free key) |
Unknown |
1 req/3s |
| Abstract |
✓ Full text |
✓ TLDR |
✓ Full text |
| Best for |
Comprehensive metadata, institutions, funding |
Citation counts, venue info |
Latest preprints |
When to use OpenAlex over S2:
- Need institutional affiliation data
- Need funding information
- Want fully open citation graph
- Need comprehensive topic/keyword metadata
- Working with non-CS fields (OpenAlex covers all disciplines)
When to use S2 over OpenAlex:
- Need real-time citation counts (S2 updates faster)
- Need "highly influential citations" metric
- Need paper recommendations
- CS/AI-focused research (S2 has better CS coverage)
1---2name: openalex3description: Search academic papers via OpenAlex API for open citation data, institutional affiliations, and funding information. Use when user says "openalex search", "search openalex", "open citation graph", or wants comprehensive academic metadata beyond arXiv/Semantic Scholar.4---56# OpenAlex Academic Search78Search query: $ARGUMENTS910## Role & Positioning1112This skill uses OpenAlex as a **comprehensive open academic graph** source:1314| Skill | Source | Best for |15|-------|--------|----------|16| `/arxiv` | arXiv API | Latest preprints, cutting-edge unrefereed work |17| `/semantic-scholar` | Semantic Scholar API | Published venue papers (IEEE, ACM, Springer) with citation counts |18| `/openalex` | OpenAlex API | **Open citation graph, institutional affiliations, funding data, comprehensive metadata** |19| `/deepxiv` | DeepXiv CLI | Layered reading: search, brief, section map, section reads |20| `/exa-search` | Exa API | Broad web search: blogs, docs, news, companies, research papers |21| `/gemini-search` | Gemini MCP / CLI | AI-powered broad literature discovery |2223Use OpenAlex when you want:24- **Open citation data** — fully open citation graph (no API key required for basic use)25- **Institutional affiliations** — author institutions and collaborations26- **Funding information** — NSF, NIH, and other funding sources27- **Comprehensive metadata** — topics, keywords, abstract, open access status28- **Cross-database coverage** — indexes 250M+ works from multiple sources2930## Constants3132- **MAX_RESULTS = 10** — Default number of results. Override with `— max: 20`.33- **DEFAULT_SORT = relevance** — Sort by relevance. Override with `— sort: citations` or `— sort: date`.34- **FETCH_SCRIPT** — `tools/openalex_fetch.py` relative to the project root.3536> Overrides (append to arguments):37> - `/openalex "topic" — max: 20` — return up to 20 results38> - `/openalex "topic" — year: 2023-` — papers from 2023 onward39> - `/openalex "topic" — year: 2020-2023` — papers from 2020 to 202340> - `/openalex "topic" — type: article` — only journal articles41> - `/openalex "topic" — type: preprint` — only preprints42> - `/openalex "topic" — open-access` — only open access papers43> - `/openalex "topic" — min-citations: 50` — minimum 50 citations44> - `/openalex "topic" — sort: citations` — sort by citation count (descending)45> - `/openalex "topic" — sort: date` — sort by publication date (newest first)4647## Setup4849### Prerequisites50511. **Python 3.7+** with `requests` library:52 ```bash53 pip install requests54 ```55562. **Optional: API keys** — Create `.claude/.env` in project root:57 ```bash58 # Copy from template59 cp .claude/.env.example .claude/.env60 61 # Edit and add your keys62 # .claude/.env63 OPENALEX_API_KEY=your-key-here64 OPENALEX_EMAIL=your-email@example.com65 ```66 67 Claude Code automatically loads `.claude/.env` as environment variables.68693. **Get API keys** (optional but recommended):70 - **OpenAlex API key**: Free tier $1/day (10,000 list calls, 1,000 search calls) from [openalex.org](https://openalex.org/)71 - **Email for polite pool**: Faster response times (no registration needed)7273### Verify Setup7475```bash76python3 tools/openalex_fetch.py search "machine learning" --max 377```7879## Workflow8081### Step 1: Parse Arguments8283Parse `$ARGUMENTS` for:84- **query**: The research topic (required)85- **max**: Override MAX_RESULTS86- **year**: Publication year filter (e.g., `2023-`, `2020-2023`)87- **type**: Work type filter (`article`, `preprint`, `book`, `book-chapter`, `dataset`, `dissertation`)88- **open-access**: Only include open access papers89- **min-citations**: Minimum citation count threshold90- **sort**: Sort order (`relevance`, `citations`, `date`)9192### Step 2: Locate Script9394```bash95SCRIPT=$(find tools/ -name "openalex_fetch.py" 2>/dev/null | head -1)96[ -z "$SCRIPT" ] && SCRIPT=$(find ~/.claude/skills/openalex/ -name "openalex_fetch.py" 2>/dev/null | head -1)97```9899If not found, tell the user:100```101openalex_fetch.py not found. Make sure tools/openalex_fetch.py exists and requests is installed:102 pip install requests103```104105### Step 3: Execute Search106107**Basic search:**108```bash109python3 "$SCRIPT" search "QUERY" --max 10110```111112**With filters:**113```bash114python3 "$SCRIPT" search "QUERY" --max 10 \115 --year 2023- \116 --type article \117 --open-access \118 --min-citations 20 \119 --sort citations120```121122**Get specific work by DOI:**123```bash124python3 "$SCRIPT" work "10.1109/TWC.2024.1234567"125```126127**Get specific work by OpenAlex ID:**128```bash129python3 "$SCRIPT" work "W2741809807"130```131132### Step 4: Parse Results133134The script returns structured JSON with:135- `title`: Paper title136- `authors`: List of author names137- `publication_year`: Year published138- `venue`: Journal/conference name139- `venue_type`: Type of venue (journal, repository, conference, etc.)140- `cited_by_count`: Number of citations141- `is_oa`: Boolean for open access status142- `oa_status`: Open access type (gold, green, bronze, hybrid, closed)143- `oa_url`: Direct PDF link if available144- `doi`: DOI identifier145- `openalex_id`: OpenAlex work ID146- `abstract`: Full abstract text147- `topics`: Top 3 research topics148- `keywords`: Top 5 keywords149- `type`: Work type (article, preprint, etc.)150151### Step 5: Present Results152153Format results as a structured table:154155```156| # | Title | Venue | Year | Citations | OA | Summary |157|---|-------|-------|------|-----------|----|---------| 158| 1 | ... | IEEE TWC | 2024 | 156 | ✓ | ... |159| 2 | ... | NeurIPS | 2023 | 89 | ✓ | ... |160```161162For each paper, also show:163- **DOI**: Canonical identifier164- **OpenAlex ID**: For cross-reference165- **Open Access**: Status (gold/green/bronze/hybrid/closed) and PDF link166- **Topics**: Top research topics167- **Abstract**: First 200 characters or full text168169### Step 6: Offer Follow-up170171After presenting results, suggest:172173```text174/semantic-scholar "DOI:..." — get S2 citation context and related papers175/arxiv "arXiv:XXXX.XXXXX" — fetch arXiv preprint if available176/research-lit "topic" — sources: openalex, semantic-scholar — combined multi-source review177/novelty-check "idea" — verify novelty against literature178```179180## Key Rules181182- **OpenAlex is fully open** — no API key required for basic use, but recommended for higher rate limits183- **Comprehensive metadata** — OpenAlex provides richer metadata than most sources (institutions, funding, topics)184- **Citation data is open** — unlike Semantic Scholar, all citation data is freely accessible185- **Rate limits**: Without API key, very limited (~$0.01/day). With free API key: 10,000 list calls/day, 1,000 search calls/day.186- **Polite pool**: Set `OPENALEX_EMAIL` environment variable for faster response times187- **Cross-reference with other sources**: OpenAlex indexes papers from arXiv, PubMed, Crossref, etc. — use DOI/arXiv ID to cross-reference188- If OpenAlex API is unreachable or rate-limited, suggest using `/semantic-scholar`, `/arxiv`, or `/research-lit "topic" — sources: web` as alternatives.189190## OpenAlex vs Other Sources191192| Feature | OpenAlex | Semantic Scholar | arXiv |193|---------|----------|------------------|-------|194| **Coverage** | 250M+ works | 200M+ papers | 2.4M+ preprints |195| **Citation data** | Fully open | Partially open | None |196| **Institutions** | ✓ Full affiliations | ✓ Limited | ✗ |197| **Funding** | ✓ NSF, NIH, etc. | ✗ | ✗ |198| **Open access** | ✓ Full OA status | ✓ PDF links | ✓ All papers |199| **API key** | Optional (free) | Optional (free) | Not required |200| **Rate limits** | 1,000 searches/day (free key) | Unknown | 1 req/3s |201| **Abstract** | ✓ Full text | ✓ TLDR | ✓ Full text |202| **Best for** | Comprehensive metadata, institutions, funding | Citation counts, venue info | Latest preprints |203204**When to use OpenAlex over S2:**205- Need institutional affiliation data206- Need funding information207- Want fully open citation graph208- Need comprehensive topic/keyword metadata209- Working with non-CS fields (OpenAlex covers all disciplines)210211**When to use S2 over OpenAlex:**212- Need real-time citation counts (S2 updates faster)213- Need "highly influential citations" metric214- Need paper recommendations215- CS/AI-focused research (S2 has better CS coverage)