Search scholarly works by doi or keyword

When the user asks to find scholarly works — journal articles, books, conference papers, preprints — by keyword, author, publisher, or resolve a DOI to its full citation, reach for Crossref. 150+ million scholarly records, no API key.

search-scholarly-works-by-doi-or-keyword · v1 · updated 2026-04-16

Agents: This page is a SKILL.md-style capability guide. For JSON, call GET /api/skills/search-scholarly-works-by-doi-or-keyword. To drop this into a local Claude Code install, copy the frontmatter + body below into ~/.claude/skills/search-scholarly-works-by-doi-or-keyword/SKILL.md.

When to use this skill

When the user asks to find scholarly works — journal articles, books, conference papers, preprints, datasets — by topic, author, or publisher, or wants the full citation for a known DOI. Crossref is the DOI registration authority for 150+ million scholarly records: titles, authors, publication dates, citation counts, and reference lists. For full-text content, citation graph traversal, or preprint bodies, this is the wrong skill — Crossref provides registration metadata, not the papers themselves.

Your best first call

curl "https://api.crossref.org/works?query.bibliographic=zika&query.author=johannes&query.publisher-name=Wiley-Blackwell"

No API key. Add ?mailto=you@example.com to every request — Crossref routes requests with a mailto parameter to a "polite pool" with higher rate limits; anonymous requests are throttled aggressively and IPs can be blocked without notice.

Compose query.bibliographic (topic), query.author, and query.publisher-name freely. A broad query.bibliographic alone returns thousands; adding author and publisher constraints cuts results to single digits. The score field is a relative relevance rank within the result set — there is no fixed relevance threshold, so treat it as a sorting signal, not a cutoff.

Key fields in each item:

Fallbacks (when the best call isn't enough)

Pitfalls

One-line summary for the user

I can search Crossref's 150 million scholarly works by keyword, author, or publisher, or resolve any DOI to its full citation — no API key required, but add a mailto parameter for better rate limits.

APIs this skill uses

Crossref API · primary · verified

The Crossref API allows you to search and retrieve metadata for scholarly works. It provides access to over 150 million records of journal articles, books, conference papers, and other scholarly publications with DOI (Digital Object Identif…

Generated from

Crossref API tutorial Getting Started with the Crossref API

SKILL.md source (frontmatter + body)
---
name: search-scholarly-works-by-doi-or-keyword
description: When the user asks to find scholarly works — journal articles, books, conference papers, preprints — by keyword, author, publisher, or resolve a DOI to its full citation, reach for Crossref. 150+ million scholarly records, no API key.
---

## When to use this skill

When the user asks to find scholarly works — journal articles, books, conference papers, preprints, datasets — by topic, author, or publisher, or wants the full citation for a known DOI. Crossref is the DOI registration authority for 150+ million scholarly records: titles, authors, publication dates, citation counts, and reference lists. For full-text content, citation graph traversal, or preprint bodies, this is the wrong skill — Crossref provides registration metadata, not the papers themselves.

## Your best first call

```bash
curl "https://api.crossref.org/works?query.bibliographic=zika&query.author=johannes&query.publisher-name=Wiley-Blackwell"
```

No API key. Add `?mailto=you@example.com` to every request — Crossref routes requests with a `mailto` parameter to a "polite pool" with higher rate limits; anonymous requests are throttled aggressively and IPs can be blocked without notice.

Compose `query.bibliographic` (topic), `query.author`, and `query.publisher-name` freely. A broad `query.bibliographic` alone returns thousands; adding author and publisher constraints cuts results to single digits. The `score` field is a relative relevance rank within the result set — there is no fixed relevance threshold, so treat it as a sorting signal, not a cutoff.

Key fields in each item:

- `DOI` — persistent identifier (API normalizes to lowercase)
- `title` — always an array, even for single-titled works
- `author` — always an array; entries carry `given`, `family`, `sequence`, `affiliation`
- `is-referenced-by-count` — live citation figure, updated as new works cite this one (not a static publication-time snapshot)
- `published-print` / `published-online` — `{date-parts: [[YYYY, MM, DD]]}`
- `abstract` — present on some works; arrives in JATS XML, strip `<jats:p>` and `<jats:title>` tags before display

## Fallbacks (when the best call isn't enough)

- **You have a specific DOI already** → `curl "https://api.crossref.org/works/10.1037/0003-066X.59.1.29"` retrieves the exact record with no search ranking ambiguity.
- **You need journal-level metadata — ORCID adoption, funder coverage, DOI counts** → `curl "https://api.crossref.org/journals/0102-311X"` returns per-journal coverage statistics keyed by ISSN.

## Pitfalls

- `title`, `author`, and `container-title` are always arrays. Code that indexes `work.title` as a string will silently fail.
- DOIs are case-insensitive; the API normalizes to lowercase. Lowercase both sides before comparing, or equality checks break silently.
- `abstract` arrives in JATS XML when present. Strip `<jats:p>` and `<jats:title>` before display — naive rendering leaks markup at the user.
- Always add `?mailto=your@email` to requests. Without it you land in the throttled pool; with it, Crossref gives you faster responses and logs who is using the API.

## One-line summary for the user

I can search Crossref's 150 million scholarly works by keyword, author, or publisher, or resolve any DOI to its full citation — no API key required, but add a mailto parameter for better rate limits.

« Back to all skills