worldcat.org APIworldcat.org ↗
Search millions of library items, retrieve detailed metadata by OCLC number, check library availability near any location, and get reading lists and reviews via the WorldCat API.
curl -X GET 'https://api.parse.bot/scraper/ae20a0f3-8b30-441c-82ea-4d91b529f5a3/search_items?limit=3&query=Harry+Potter' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for items in the WorldCat catalog with optional filters. Returns paginated results sorted by relevance. Requires Cloudflare Turnstile verification which is handled automatically.
| Param | Type | Description |
|---|---|---|
| limit | integer | Number of results to return per page |
| queryrequired | string | Search keyword or phrase |
| author | string | Filter by author name |
| offset | integer | Offset for pagination (1-based) |
| itemType | string | Filter by item type (e.g., Book, PrintBook, Digital) |
| datePublished | string | Filter by publication year range (e.g., 2020-2024) |
{
"type": "object",
"fields": {
"briefRecords": "array of item records with oclcNumber, title, creator, publicationDate, publisher, generalFormat, specificFormat, isbns, subjects, summary, and more",
"numberOfRecords": "integer total count of matching records"
},
"sample": {
"data": {
"briefRecords": [
{
"title": "Harry Potter. Years 1-3",
"isbn13": "9781526680068",
"creator": "J. K. Rowling",
"publisher": "Bloomsbury Children's Books",
"oclcNumber": "1554511699",
"generalFormat": "Book",
"specificFormat": "PrintBook",
"publicationDate": "2024",
"publicationPlace": "London"
}
],
"numberOfRecords": 31944
},
"status": "success"
}
}About the worldcat.org API
The WorldCat API provides 8 endpoints covering the global union catalog of library materials, returning fields like OCLC numbers, ISBNs, subjects, contributors, and publisher details. The search_items endpoint lets you query the full catalog with filters for author, item type, publication year range, and pagination. get_item_library_availability maps holdings to real libraries by latitude and longitude, giving developers a direct path from catalog record to physical access point.
Catalog Search and Item Metadata
The search_items endpoint accepts a query string plus optional filters: author, itemType (e.g., Book, PrintBook, Digital), and datePublished for year-range filtering like 2020-2024. Results are paginated via limit and offset and return briefRecords — each containing oclcNumber, title, creator, publicationDate, publisher, generalFormat, specificFormat, isbns, and subjects — plus a numberOfRecords total count. The oclcNumber from any brief record is the key used to call get_item_details, which returns a full metadata object including contributors, summary, edition details, other available formats, and a secureOclcToken.
Library Availability and Discovery
get_item_library_availability takes an OCLC number and optional lat/lon coordinates to return a holdings array showing which libraries near that location hold the item, alongside a totalHoldingCount. The companion search_libraries endpoint accepts required lat and lon and returns libraries sorted by distance, with fields including institutionName, distance, distanceUnit, street address components, and geographic coordinates — useful for building "find a library near me" features independent of a specific title.
Lists, Suggestions, and Reviews
get_search_suggestions takes a partial query and returns up to 8 autocomplete strings, suitable for typeahead UI components. search_lists and get_list_details expose WorldCat's public curated reading lists: search_lists queries by keyword and returns an entries array, while get_list_details takes a list_id to retrieve full list contents. get_item_reviews accepts an isbn and returns a reviews object and a summary object with aggregated rating data.
- Build a library locator that shows nearby branches holding a specific book using
get_item_library_availabilitywith lat/lon coordinates. - Enrich a book database with full bibliographic metadata — ISBNs, subjects, contributors, and publisher — via
get_item_detailskeyed on OCLC numbers. - Implement a catalog search interface with typeahead using
get_search_suggestionsfor partial query completion. - Filter WorldCat results to digital-only formats using the
itemTypeparameter insearch_itemsfor an ebook discovery tool. - Aggregate user reviews and rating summaries for a reading app by calling
get_item_reviewswith an ISBN. - Surface curated reading lists in an educational platform by querying
search_listsand hydrating results withget_list_details. - Find all libraries within a geographic area using
search_librarieswith pagination to build a regional library directory.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does WorldCat have an official developer API?+
What does `get_item_details` return beyond what `search_items` provides?+
search_items returns brief records with fields like title, creator, isbns, generalFormat, and publicationDate. get_item_details returns the full record for a single OCLC number, adding contributors, summary, edition details, links to other formats, and a secureOclcToken. Use the oclcNumber from a brief record as the input.Is full-text content or table-of-contents data available through this API?+
How does pagination work across the search and library endpoints?+
search_items and get_item_library_availability both use 1-based offset plus limit for pagination; numberOfRecords and totalHoldingCount respectively give the total match counts so you can calculate page ranges. search_libraries also uses the same offset/limit pattern.Can I retrieve the holdings count for multiple OCLC numbers in a single call?+
get_item_library_availability accepts one oclc_number per request. Batch lookups across multiple OCLC numbers are not supported in a single call. You can fork this API on Parse and revise it to add a batched availability endpoint if your use case requires checking multiple items at once.