Skip to main content

hathitrust-catalog

Look up bibliographic records and digitized volumes in HathiTrust's 17M+ volume collection by ISBN, OCLC, LCCN, ISSN, or HathiTrust ID. Use this skill whenever the user wants to check if a book has been digitized, find which libraries hold a copy, get MARC metadata for a known identifier, or link a bibliographic reference to its HathiTrust digital version. Also triggers when cross-referencing identifiers from other library catalogs (Harvard, Library of Congress) against HathiTrust holdings.

Ir para a instalação

Informações da origem

Repositório
kltng/humanities-skills
Última atividade na origem
6 de março de 2026 às 21:27
Idioma detectado do SKILL.md
inglês
Estrelas
7
Forks
4

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Explorador de arquivos
4 arquivos

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
hathitrust-catalog
description
Look up bibliographic records and digitized volumes in HathiTrust's 17M+ volume collection by ISBN, OCLC, LCCN, ISSN, or HathiTrust ID. Use this skill whenever the user wants to check if a book has been digitized, find which libraries hold a copy, get MARC metadata for a known identifier, or link a bibliographic reference to its HathiTrust digital version. Also triggers when cross-referencing identifiers from other library catalogs (Harvard, Library of Congress) against HathiTrust holdings.
version
1.0.0
# HathiTrust Bibliographic API Skill Look up records and digitized volumes in HathiTrust's collection of 17M+ volumes from major research libraries. ## Critical: Things Claude Won't Know Without This Skill ### This is a lookup API, NOT a search API HathiTrust's Bibliographic API retrieves records by **known identifiers** only. There is no keyword or title search. You must have an ISBN, OCLC number, LCCN, ISSN, or HathiTrust ID. ``` WORKS: https://catalog.hathitrust.org/api/volumes/brief/isbn/0140449264.json NOT POSSIBLE: https://catalog.hathitrust.org/api/volumes/brief/search?q=hamlet ``` If you only have a title/author, search another catalog first (LibraryCloud, Library of Congress) to get an ISBN or OCLC number, then look it up here. ### Two endpoint variants: brief vs full | Endpoint | Returns | Use when | |----------|---------|----------| | `/api/volumes/brief/` | Metadata + items (no MARC) | You just need titles, ISBNs, holdings, digital access links | | `/api/volumes/full/` | Same + complete MARC-XML | You need full cataloging data | ### Empty results are not errors When no record matches, the API returns `{"records": {}, "items": []}` with HTTP 200 — not a 404. Always check if `records` is empty. ### Batch up to 20 lookups in one request Use the multi-ID endpoint to batch lookups: ``` /api/volumes/brief/json/isbn:0140449264|oclc:228668653 ``` Pipe-separated as `type:value`. Max 20 per request. ## Identifier Types | Type | Example | Notes | |------|---------|-------| | `isbn` | `0140449264` or `9780140449266` | ISBN-10 or ISBN-13, digits only (+ trailing X) | | `oclc` | `228668653` | OCLC number, digits only | | `lccn` | `72081773` | URL-encode spaces/slashes | | `issn` | `03785955` | Digits only | | `htid` | `mdp.39015058510069` | HathiTrust volume ID | | `recordnumber` | `000578050` | 9-digit HathiTrust record number | ## Response Structure ```json { "records": { "009058846": { "recordURL": "https://catalog.hathitrust.org/Record/009058846", "titles": ["The Odyssey / Homer ; translated by Robert Fagles."], "isbns": ["0140268863", "9780140268867"], "oclcs": ["34228839"], "lccns": ["96017900"], "publishDates": ["1997"] } }, "items": [ { "orig": "University of Michigan", "htid": "mdp.39015042182054", "itemURL": "https://babel.hathitrust.org/cgi/pt?id=mdp.39015042182054", "rightsCode": "ic", "usRightsString": "Limited (search-only)", "lastUpdate": "20240115", "enumcron": false } ] } ``` Key fields: - **`rightsCode`**: `pd` = public domain (full text available), `ic` = in-copyright (search only) - **`usRightsString`**: `"Full View"` or `"Limited (search-only)"` - **`itemURL`**: Direct link to the HathiTrust page-turner viewer - **`enumcron`**: Volume/issue info (e.g., `"vol. 3"`) or `false` ## Python Script Use `scripts/hathitrust_api.py` for programmatic access (zero dependencies): ```python from scripts.hathitrust_api import HathiTrustAPI ht = HathiTrustAPI() # Single lookup record = ht.lookup_isbn("0140449264") # Multiple identifiers at once results = ht.batch_lookup([ ("isbn", "0140449264"), ("oclc", "228668653"), ("lccn", "96017900"), ]) # Get full MARC-XML record = ht.lookup_isbn("0140449264", full=True) marc = ht.get_marc_xml(record) # Check if digitized and accessible for item in ht.get_items(record): print(f"{item['orig']}: {item['usRightsString']} — {item['itemURL']}") # Summarize print(ht.summarize(record)) ``` ## Typical Workflow: Cross-Reference with Other Catalogs ```python # 1. Search Harvard for a title from harvard_api import HarvardLibraryAPI harvard = HarvardLibraryAPI() results = harvard.search(title="dream of the red chamber") isbn = harvard.get_identifiers(results[0]).get("isbn") # 2. Check HathiTrust for digital version from hathitrust_api import HathiTrustAPI ht = HathiTrustAPI() record = ht.lookup_isbn(isbn) if record and ht.has_full_view(record): print("Full text available:", ht.get_items(record)[0]["itemURL"]) ``` ## API Etiquette - No authentication required - No documented rate limit, but the API is meant for small-batch lookups (not bulk harvesting) - Use HathiFiles or OAI-PMH for bulk data - CORS is fully enabled (`access-control-allow-origin: *`) ## Related Skills - **harvard-library-catalog**: Search Harvard's catalog to find ISBNs/identifiers, then check HathiTrust for digital versions - **wikidata-search**: Cross-reference Wikidata identifiers (P243 = OCLC) with HathiTrust holdings ## Resources - `references/api_reference.md` — Complete API spec with all identifier types and response fields - `scripts/hathitrust_api.py` — Python client with batch lookups, MARC extraction, and access checking
Ver no GitHub