JSON Books API

A JSON-based API for book data

From blog post, ca. 2008

What is this for?

The API gives you Javascript access to your book data. The most obvious use of this was to create new, much better widgets. At first, we expect this to interest programmers, but as new widgets are developed, non-programmers will get cool things.

What’s great?

All our code for processing the JSON API has been and will be released as open source—available for use, reuse and modification. Better—since we’re not the best programmers, articularly in JavaScript!—we are requiring any software that builds upon the API to be released under similar terms, so everyone can take advantage of improvements and advances. 

What’s the catch?

The API is not intended for making backups or exporting your data to other programs. For that, use our CSV and TSV export functions, from the More tab. We are licensing the JSON API for browser-use only. This is about our data licenses. In-browser widgets have never drawn ire from our data providers.

Where can this go?

This is just getting started. Everything can be expanded and improved. As members want new or different data, I will be only too happy to add it to the API. But the most interesting development will probably come from members, not LibraryThing employees.

Possible uses:
  • New widget types, like widgets showing your most recent reviews.
  • Widgets that take you to libraries, and other places other than LibraryThing. (Libraries have been clamoring for this for ages. Many use LibraryThing to feature new books on the website, and want the links to go to their catalog, not LibraryThing.)
  • New result sets, for your tags or authors (separate from our books), your book’s works, series info, etc.
  • Integration with other JS-based APIs, like Google Book Search.

What if I’m not a programmer?

No problem. Come over to LibraryThing API Development and tell us what you want. We’ll help you, or maybe someone else will.

Examples

<script type="text/javascript" src="https://www.librarything.com/api_getdata.php?callback=nocallback&userid=timspalding&key=2652641547"></script> (link)
<script type="text/javascript" src="https://www.librarything.com/api_getdata.php?callback=nocallback&userid=timspalding&key=2652641547&resultsets=books,bookreviews&limit=reviews&max=10&reviewmax=100&booksort=title"></script> (link)

Notes

It should be noted that this API does not use the standard dev keys and identifiers as the other APIs. You should use the exact API arguments shown in the examples above.