# Crossref Search

Academic metadata search via CrossRef API.

- Repository: https://github.com/beita6969/ScienceClaw (1024 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-31
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add beita6969/ScienceClaw --skill crossref-search -g -a claude-code -y`
Codex: `npx skills add beita6969/ScienceClaw --skill crossref-search -g -a codex -y`
Cursor: `npx skills add beita6969/ScienceClaw --skill crossref-search -g -a cursor -y`
Gemini CLI: `npx skills add beita6969/ScienceClaw --skill crossref-search -g -a gemini-cli -y`

## Description

Academic metadata search via CrossRef API. Use when: user needs DOI resolution, citation counts, journal metadata, or publisher info. NOT for: full-text access or downloading papers.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# CrossRef Search

Academic metadata search and DOI resolution via the public CrossRef REST API.

## When to Use

- Resolving a DOI to get full citation metadata
- Searching for papers by title, author, or keywords
- Looking up journal ISSN metadata or publisher info
- Finding citation counts and reference lists
- Retrieving funder information for grants/awards

## When NOT to Use

- Full-text access or downloading papers (use publisher sites)
- Preprint search (use arxiv-search)
- Biomedical literature (use pubmed-search)
- Author profile pages or h-index (use openalex-search)

## DOI Resolution

```bash
curl -s "https://api.crossref.org/works/10.1038/nature12373" | python3 -c "
import sys, json
data = json.load(sys.stdin)['message']
title = data.get('title', [''])[0]
authors = ', '.join(f\"{a.get('given','')} {a.get('family','')}\" for a in data.get('author', []))
journal = data.get('container-title', [''])[0]
cited = data.get('is-referenced-by-count', 0)
print(f'Title: {title}')
print(f'Authors: {authors}')
print(f'Journal: {journal} | Citations: {cited}')
"
```

## Works Search

```bash
# Search by query terms
curl -s "https://api.crossref.org/works?query=machine+learning+protein+folding&rows=5&mailto=user@example.com" | python3 -c "
import sys, json
data = json.load(sys.stdin)['message']
for item in data['items']:
    title = item.get('title', [''])[0]
    doi = item.get('DOI', '')
    cited = item.get('is-referenced-by-count', 0)
    print(f'{title}')
    print(f'  DOI: {doi} | Citations: {cited}')
"

# Filter by date, type, and sort by citations
curl -s "https://api.crossref.org/works?query=CRISPR&filter=from-pub-date:2023-01-01,type:journal-article&rows=10&sort=is-referenced-by-count&order=desc&mailto=user@example.com"

# Search by author
curl -s "https://api.crossref.org/works?query.author=Jennifer+Doudna&rows=10&sort=published&order=desc&mailto=user@example.com"
```

## Journal Lookup

The rest: https://github.com/beita6969/ScienceClaw/blob/HEAD/skills/crossref-search/SKILL.md
