/developers/api
Type: /type/page
body: value: ## <a name="getting-started">Getting Started</a>

Open Library provides APIs in JSON, YAML and RDF/XML formats to support public-good, open, human-centered book discovery and lookup services. If you are building an open source or mission-aligned application that helps people find and use books in real time, these APIs are for you.

- [Usage Guidelines](#usage)
- [Rate Limits](#rate-limits)
- [Bulk Access](#bulk-access)
- [Index of APIs](#api-index)

Try the interactive Open API Sandbox:
<a class="cta-btn cta-btn--available" href="https://openlibrary.org/swagger/docs">OpenAPI Sandbox</a>

## <a name="usage">Usage Guidelines</a>

Open Library’s APIs exist to support the open book ecosystem and human-centered discovery. Due to limited resources, they are not intended to serve as a data backend for third-party services.

We prioritize:
- Open-source and mission-aligned projects
- Library and education tools
- Human-facing discovery and lookup services
- Real-time, low-volume, high-value use

These APIs are **not** intended to serve as a bulk data backend or high-traffic commercial infrastructure. For bulk access, please download our free monthly [data dumps](https://openlibrary.org/developers/dumps) or contact us at openlibrary@archive.org.

**Please Do:**

1. Make useful, time-sensitive requests on behalf of human users
2. Cache responses whenever possible
3. Identify your application with a `User-Agent` header and `email`

**Please Do Not:**

- Scrape HTML pages (use API endpoints instead)
- Distribute traffic across 5+ IPs
- Harvest data in bulk
- Make hundreds of single-book requests (use search.json for batch results)
- Use Open Library as a backend for high-traffic services

Violations may result in aggressive rate limiting or blocking.

## <a name="rate-limits">Rate Limits</a>

If your application will make regular, frequent use of Open Library's APIs (e.g. multiple calls per minute), please add a HEADER that specifies a `User-Agent` string with (a) the name of your application and (b) your contact email or phone number, so we may contact you when we notice high request volume. In addition, identified requests will enjoy a 3x request limit.

Default (non-identified requests):
- 1 request per second

Identified requests (with `User-Agent` and `email`):
- 3 requests per second

`User-Agent: MyLibraryApp (contact@example.org)`

**Example Requests:**

- [JavaScript example request](https://gist.github.com/mekarpeles/0d308bfd8e75858d2266b8aa983cac07)
- [Python example request](https://gist.github.com/mekarpeles/a4f1b2b0414325b9958fdc8376f14d16)

## <a name="bulk-access">Bulk Access </a>

**Please do not use our APIs for bulk download** of Open Library data because this affects our ability to serve patrons. We make our data [publicly available](https://openlibrary.org/developers/dumps) each month for partners. If you want a dump of complete data, please read about our [Bulk Download][8] options, or email us at openlibrary@archive.org.

## <a name="api-index">Index of APIs</a>

 - [Book Search](/dev/docs/api/search) API - Search results for books, authors, and more
 - [Search inside](/dev/docs/api/search_inside) API - Search for matching text within millions of books
 - [Covers][7] API - Fetch book covers by ISBN or Open Library identifier
 - [Your Books](/dev/docs/api/mybooks) API - Retrieve books on a patron's public reading log
 - [Lists](/dev/docs/api/lists) API - Reading, modifying, or creating user lists
 -[**RESTful APIs**][4] 
   - [Work & Edition][6] APIs - Retrieve a specific work or edition by identifier
   - [Authors](/dev/docs/api/authors) API - Retrieve an author and their works by author identifier
   - [Subjects](/dev/docs/api/subjects) API - Fetch books by subject name 
   - [Recent Changes](/dev/docs/api/recentchanges) API - Programatic access to changes across Open Library

Legacy APIs:
 - [Legacy Partner API](https://openlibrary.org/dev/docs/api/read) API -- Formerly the "Read" API, fetch one or more books by library identifiers (ISBNs, OCLC, LCCNs)
- [Legacy JSON API][5] is deprecated and preserved for backward compatibility.

## More APIs

Nearly every item on Open Library has an API version. You can return structured bibliographic data for any Open Library page by adding a .rdf/.json/.yml extension to the end of any Open Library identifier.

For instance: [https://openlibrary.org/works/OL15626917W.json](https://openlibrary.org/works/OL15626917W.json) or [https://openlibrary.org/authors/OL33421A.json](https://openlibrary.org/authors/OL33421A.json). Many pages, such as the Books, Authors, and Lists, will include links to their RDF and JSON formats. 

The history of an item can be accessed by appending `?m=history` to the page like [this](https://openlibrary.org/authors/OL236414A.json?m=history).


## <a name="api-partners">Services using Open Library APIs</a>

Several developers are creating amazing things with the Open Library APIs:

 - [**Trove**][9] by *the National Library of Australia*<br />Trove is a new discovery experience focused on Australia and Australians. It supplements what search engines provide with reliable information from Australia's memory institutions. The system hits Open Library when public domain books turn up in searches, and displays links to Open Library.<br />&nbsp;
 - [**Koha**][10]<br />Koha is an open source library system for public libraries that includes catalog searches and member organizing. It uses Open Library covers, displays OL related subjects, and lendable eBooks using the Read API.<br />&nbsp;
 - [**Evergreen**][11]<br />Evergreen is highly-scalable software for libraries that helps library patrons find library materials, and helps libraries manage, catalog, and circulate those materials. It uses Open Library for covers, tables of contents, with plans to expand into other areas.<br />&nbsp;
 - [**read.gov**][12] by *the Library of Congress*<br />OK, this isn't exactly Open Library, but it's still awesome! The Library of Congress have modified the Internet Archive's Book Reader to sit perfectly within their Rare Books Collection site.<br />&nbsp;
 - [**OpenBook WordPress Plug-in**][13] by *John Miedema*<br />OpenBook is useful for anyone who wants to add book covers and other book data on a WordPress website. OpenBook links to detailed book information in Open Library, the main data source, as well as other book sites. Users have complete control over the display through templates. OpenBook can link to library records by configuring an OpenURL resolver or through a [WorldCat][14] link. OpenBook inserts [COinS][15] so that other applications like [Zotero][16] can pick up the book data.<br />&nbsp;
 - [**Umlaut**][19] by *Jason Ronallo*<br />Umlaut is a middle-tier OpenURL link resolver that adds functions and services to commercial link resolving software.<br />&nbsp;
 - [**Virtual Shelf**][20] by *Jonathan Breitbart and Devin Blong* (UC Berkeley School of Information)<br />The Virtual Shelf is a visualization created by two students at the UC Berkeley School of Information. The project includes the student's master thesis, with research into the searching and browsing patterns of library patrons. The Open Library RESTful API was utilized during the project as a source of metadata for the user interface.<br />&nbsp;
 - [**RDC UI Toolkit**][21] by *Rural Design Collective*<br />This group created a suite of tools that facilitates the creation of localized user interfaces for public domain books. The RDC used the Open Library Covers API and the Internet Archive Book Reader in their online demonstration customized for the OLPC XO.<br />&nbsp;
 - [**Dreambooks.club**][22] by *Bernat Fortet*<br />Dreambooks is a portal and community where parents and children can discover new books to read together. Think of it as the online equivalent of your library's children's corner. All the book data is powered by OpenLibary's API.<br />&nbsp;
 - [**MyBooks.Life**][24] by *Mark Webster*<br />MyBooks.Life is an android app and website designed primarily to manage TBR (to-be-read) lists. You can keep track of your reading progress, make notes, manage your wishlist, and rate your books. MyBooks.Life uses Open Library data to power its search.<br />&nbsp;
 - [**Bookmind**][25] <br/>Bookmind is now available at https://apps.apple.com/app/bookmind/id6593662584. It uses open library’s api exclusively for book data. You can even see the rough prototype source at https://github.com/dave-ruest/Bookmind. <br />&nbsp;
- [**Hobbyverse**][26] let's you track all your hobbies in one place. Users can add their books to their digital library and track their progress reading books, view what books their friends are reading, earn achievements, etc. <br />&nbsp;
- [**ReadOtter**][27] <br/>ReadOtter, a classroom library management app designed to help teachers organize their classroom libraries. <br />&nbsp;
- [**Chapter**][28]<br/> Chapter is an online reading library and reading organizer app.  <br />&nbsp;
- [**Land of Readers**][29]</br> is a free, easy-to-use book discovery tool designed to help readers find books that match their interests, age group, and reading level. <br />&nbsp;
- [**Austen**][30] </br>is a web app that uses the Open Library API to generate visual character relationship diagrams for books using AI. [Here][31] is a live demo of their work. <br />&nbsp;
- [**mcp-open-library**][32] by *Ben Smith* <br /> A Model Context Protocol (MCP) server for the Open Library API that enables AI assistants to search for book and author information. The source code can be found [here][32]. So far on a MCP server website its been called 5.2k times: [https://smithery.ai/server/@8enSmith/mcp-open-library][33]. It has also been published to npm: [https://www.npmjs.com/package/mcp-open-library][34].

Are you using the Open Library APIs? We'd love to hear about it! Please email us at openlibrary@archive.org.


  [1]: https://mail.archive.org/cgi-bin/mailman/listinfo/ol-tech
  [2]: https://github.com/internetarchive/openlibrary/issues
  [3]: https://github.com/internetarchive/openlibrary
  [4]: /dev/docs/restful_api
  [5]: /dev/docs/json_api
  [6]: /dev/docs/api/books
  [7]: /dev/docs/api/covers
  [8]: /data#downloads
  [9]: https://trove.nla.gov.au/
  [10]: https://koha-community.org/
  [11]: https://evergreen-ils.org
  [12]: https://read.gov/books/
  [13]: https://code.google.com/p/openbook4wordpress/
  [14]: https://www.worldcat.org/
  [15]: https://ocoins.info/
  [16]: https://www.zotero.org/
  [17]: https://addons.mozilla.org/en-US/firefox/addon/144222/
  [18]: /people/JeffKaplan
  [19]: https://wiki.code4lib.org/index.php/Umlaut
  [20]: https://www.ischool.berkeley.edu/projects/2009/virtual-shelf
  [21]: https://ruraldesigncollective.org/lab/ui
  [22]: https://www.dreambooks.club
  [23]: /dev/docs/api/read
  [24]: https://mybooks.life
  [25]: https://apps.apple.com/app/bookmind/id6593662584
  [26]: https://hobbyverse.app/
  [27]: https://readotter.com/
  [28]: https://www.clubchapter.com/
  [29]: https://www.landofreaders.com/
  [30]: https://github.com/herol3oy/austen
  [31]: https://austen.vercel.app/
  [32]: https://github.com/8enSmith/mcp-open-library
  [33]: https://smithery.ai/server/@8enSmith/mcp-open-library
  [34]: https://www.npmjs.com/package/mcp-open-library
title: APIs
m: edit