Open Library, from the Internet Archive, exposes its catalog as JSON: add .json to almost any page URL. A work is the book in the abstract; an edition is a specific printing with its own ISBN. Every example below runs as-is.
None. For heavy use, send a User-Agent with an app name and contact email — Open Library asks for it.
Full reference: https://openlibrary.org/developers/api
fields keeps the response small; without it each result carries dozens of fields.
curl "https://openlibrary.org/search.json?q=the+hobbit&limit=2&fields=key,title,author_name,first_publish_year,edition_count"
{
"numFound": 460,
"start": 0,
"numFoundExact": true,
"num_found": 460,
"documentation_url": "https://openlibrary.org/dev/docs/api/search",
"q": "the hobbit",
"offset": null,
"docs": [
{
"author_name": [
"J.R.R. Tolkien"
],
"edition_count": 481,
"first_publish_year": 1937,
"key": "/works/OL27482W",
"title": "The Hobbit"
},
{
"author_name": [
"Charles Dixon",
"Sean Deming",
"J.R.R. Tolkien"
],
"edition_count": 10,
"first_publish_year": 1990,
"key": "/works/OL219602W",
"title": "The Hobbit"
}
]
}
One specific printing. /isbn/<isbn>.json redirects to the same record by ISBN.
curl https://openlibrary.org/books/OL33891995M.json
{
"title": "The Hobbit",
"publishers": [
"Mariner Books"
],
"publish_date": "2012",
"number_of_pages": 300,
"isbn_13": [
"9780547928227"
],
"works": [
{
"key": "/works/OL27482W"
}
]
}
The book across all its editions: subjects, authors, covers (trimmed below). Cover images are at covers.openlibrary.org/b/id/<id>-M.jpg.
curl https://openlibrary.org/works/OL27482W.json
{
"key": "/works/OL27482W",
"title": "The Hobbit",
"first_publish_date": "January 1938",
"subjects": [
"Fantasy",
"Arkenstone",
"Battle of Five Armies",
"invisibility"
],
"authors": [
{
"author": {
"key": "/authors/OL26320A"
},
"type": {
"key": "/type/author_role"
}
}
],
"covers": [
14627509
]
}
Name, dates, best-known work, and work count.
curl "https://openlibrary.org/search/authors.json?q=tolkien&limit=1"
{
"numFound": 29,
"start": 0,
"numFoundExact": true,
"docs": [
{
"birth_date": "21 November 1924",
"death_date": "16 January 2020",
"key": "OL2623360A",
"name": "Christopher Tolkien",
"top_work": "The Silmarillion",
"type": "author",
"work_count": 41
}
]
}