In the process of creating a new project, I had to look up for databases to access basic book information. I found various articles, but mostly incomplete or outdated. I hope this 2020 summary will help you!
In short: if you want quality data, you better have one of these three 1/ be a recognized organization acting in the good of books 2/ have some money 3/ have some time (scrapping and merging).
It’s likely that, due to recurrent abuses, public APIs had to restrict accesses over time.
Let’s start with a quick comparison between main actors. Read details whenever a
* is mentioned.
|Amazon Product Advertising||?||Free
🗄️ Open Library
Open Library is an initiative from « Internet Archive » (e.g. archive.org), it allows you to freely browse and read books. As a consequence, it offers a free API to dig inside the content.
« The ultimate goal of the Open Library is to make all the published works of humankind available to everyone in the world. »
- API : https://openlibrary.org/developers/api
- GET example : https://openlibrary.org/api/books?bibkeys=ISBN:1931498717&jscmd=details&format=json
In addition to accessing the library by the API, you can download the entire database. One dump seems to be exported every month.
Summary: 20M+ entries with free access. Has cover API.
🐱 WorldCat (OCLC)
WorldCat, owned by OCLC (Online Computer Library Center), is a global library cooperative. It possesses a huge database.
However, access is restricted by a whitelist (for recognized organizations acting in the good of books).
- WorldCat API : https://platform.worldcat.org/api-explorer/apis/wcapi
- OCLC API : https://developer.api.oclc.org/wcv1
BUT there still exists an unrestricted access to the « classify » API in XML.
- API : http://classify.oclc.org/classify2/api_docs/index.html
- GET example : http://classify.oclc.org/classify2/Classify?isbn=978-0-465-05373-5&summary=true
Summary: 91M+ entries with free but restricted access. Has cover API.
ISBNDB is a paid API to access book information.
It’s the easiest way to go if paying $10 per month isn’t an issue.
Summary: 26.8+ entries with paid access ($10-50 / month). Has cover API. Has price information (for $50 plan).
GoogleBooks allows you to access the Google Books repository. In our case, it let you fetch book information via the “volumes” route.
The free access should be limited to a fair use (probably by IP). If at some point restricted, you should activate the API from your Google console, and access it via OAuth2.
The price information seems unreliable (compared to other solutions). I recommend to only use this API as a fallback.
- API : https://developers.google.com/books/docs/v1/using + https://developers.google.com/books/docs/v1/reference/?apix=true
- GET example : https://www.googleapis.com/books/v1/volumes?q=9782259206006+isbn&maxResults=1
Summary: unknown number of entries. Free access (probably with some fair use). Has cover API. Has price information, but seems unreliable.
🧛♂️ AWS ECommerceService
Amazon started as a book seller… so you can hope they possess a large database about it. However, in order to access their database, you’re required to register as an affiliate partner (and thus, in theory, help to sell Amazon products). While it’s far from impossible, it can quickly become overkill to just access few information.
- Product Advertising API : https://webservices.amazon.com/paapi5/documentation/
- Join the affiliation program : https://affiliate-program.amazon.com/welcome/topic/tools
Keywords: AWSECommerceService, Product Advertising API, ItemLookup + ISBN.
Summary: unknown number of entries. Free access (when approved by Amazon). Has price information.
🌟 Last but not least
To specifically get book prices, take a look at specialized merchants:
- BetterWorldBooks: get title and description of a book, plus its price if available on the website. Some documentation for the lookup service is available. Here is an example of the XML output.
- AbeBooks: the affiliate program allows you to access a lot of price data. Check the user guide for API access. You have to register before using it.
More APIs exist, but won’t give you basic information about a book:
- GoodReads: mostly useful to get reviews about a book.
- LibraryThing: offers multiple APIs for book lovers. Unfortunately, they’re being abused, so the cover API is down for a few months already. The ThingISBN is still available and returns similar books (output example here). If you can’t access a link, try with webarchive.
LastMod 10 November, 2020