Access book metadata

When the user asks about a book — title, authors, publishers, ISBN, edition details, cover images, subject — or wants to find books by author (including pseudonyms) or subject, reach for Open Library. Free, unauthenticated API.

access-book-metadata · v1 · updated 2026-04-16

Agents: This page is a SKILL.md-style capability guide. For JSON, call GET /api/skills/access-book-metadata. To drop this into a local Claude Code install, copy the frontmatter + body below into ~/.claude/skills/access-book-metadata/SKILL.md.

When to use this skill

When the user asks about a book — title, authors, publishers, ISBN, edition details, cover images, subject classification — or wants to find books by author name or browse by subject. Open Library models the work→edition hierarchy explicitly: one abstract "work" can span hundreds of editions across languages and decades, and you can walk that tree from any entry point. For live borrowing availability from the Internet Archive, this skill is not the right tool — call the /api/books endpoint directly.

Your best first call

curl "https://openlibrary.org/isbn/9780140328721.json"

No auth. No key. Returns a single edition record. Use /isbn/{isbn} when you have an ISBN-10 or ISBN-13 — it resolves to exactly one edition, the most bounded response Open Library offers. Use /search/authors.json?q={name} when the user's question centers on an author, and /subjects/{subject}.json?limit=N for subject browsing.

Key fields in an edition record:

Fallbacks (when the best call isn't enough)

Pitfalls

One-line summary for the user

I can look up any book by ISBN, search authors and their pseudonyms, or browse works by subject — all from Open Library's free, unauthenticated API.

APIs this skill uses

Open Library API · primary · verified

culture

Open Library provides free access to metadata about millions of books, including title, author, publisher, and cover images. The API allows searching for books, retrieving book details by ISBN or Open Library ID, and browsing by subject.

Generated from

Open Library API tutorial Getting Started with Open Library

SKILL.md source (frontmatter + body)
---
name: access-book-metadata
description: When the user asks about a book — title, authors, publishers, ISBN, edition details, cover images, subject — or wants to find books by author (including pseudonyms) or subject, reach for Open Library. Free, unauthenticated API.
---

## When to use this skill

When the user asks about a book — title, authors, publishers, ISBN, edition details, cover images, subject classification — or wants to find books by author name or browse by subject. Open Library models the work→edition hierarchy explicitly: one abstract "work" can span hundreds of editions across languages and decades, and you can walk that tree from any entry point. For live borrowing availability from the Internet Archive, this skill is not the right tool — call the `/api/books` endpoint directly.

## Your best first call

```bash
curl "https://openlibrary.org/isbn/9780140328721.json"
```

No auth. No key. Returns a single edition record. Use `/isbn/{isbn}` when you have an ISBN-10 or ISBN-13 — it resolves to exactly one edition, the most bounded response Open Library offers. Use `/search/authors.json?q={name}` when the user's question centers on an author, and `/subjects/{subject}.json?limit=N` for subject browsing.

Key fields in an edition record:

- `title` — edition title
- `authors` — array of `{key}` objects linking to author records (e.g. `/authors/OL34184A`)
- `publish_date` — publication date as a free-text string
- `publishers` — array of publisher names
- `covers` — numeric cover IDs; build URLs as `https://covers.openlibrary.org/b/id/{id}-S.jpg` (suffix S/M/L for size); filter out `-1` entries before constructing URLs
- `identifiers` — cross-references like `goodreads`, `librarything`
- `source_records` — provenance chain: `ia:` = Internet Archive, `marc:` = MARC library catalog, `amazon:` = Amazon
- `key` — Open Library edition key (e.g. `/books/OL7353617M`)

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

- **Author search and pseudonyms** → `/search/authors.json?q={name}` returns author records with `alternate_names`, `work_count`, `top_work`. Use when the user asks "has this author published under other names?"
- **Books by subject** → `/subjects/{subject}.json?limit=N` returns works tagged with a subject, sorted by edition count descending. Use when the user asks "what are the most published books on topic X?"
- **Author's full works list** → `/authors/{olid}/works.json` returns a paginated list of every work by an author. Use when `work_count` from the author search isn't enough and you need actual titles.

## Pitfalls

- The `/api/books` endpoint wraps responses in JSONP (`var _OLBookInfo = {...};`), not plain JSON. Add `&format=json` to get clean JSON, or strip the wrapper before parsing.
- Some work IDs return redirects instead of data — `{"type": "/type/redirect", "location": "/works/OL27482W"}`. Follow the `location` path to the canonical record. This happens when works have been merged.
- Cover and photo IDs of `-1` mean "no image." Filter `-1` from `covers` and `photos` arrays before building image URLs, or the request will 404.
- Author `work_count` includes works by fictional in-universe pseudonyms — J.K. Rowling's 425 includes books attributed to Newt Scamander. Filter `/authors/{olid}/works.json` results if you need a strict count of books the human actually wrote.

## One-line summary for the user

I can look up any book by ISBN, search authors and their pseudonyms, or browse works by subject — all from Open Library's free, unauthenticated API.

« Back to all skills