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.

Zur Installation springen

Quellinformationen

Repository
kltng/humanities-skills
Letzte Quellaktivität
6. März 2026 um 21:27
Erkannte Sprache von SKILL.md
Englisch
Sterne
7
Forks
4

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
4 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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
Auf GitHub ansehen