A few days ago, just before hitting thirty million books, we hit one million user-uploaded covers. So, we’ve decided to give them away—to libraries, to bookstores, to everyone.
The basics. The process, patterned after the Amazon.com cover service, is simplicity itself:
- Take an ISBN, like 0545010225
- Put your Developer Key and the ISBN into a URL, like so:
http://covers.librarything.com/devkey/KEY
/medium/isbn/0545010225 - Put that in an image tag, like so:
<img src="http://covers.librarything.com/devkey/KEY/medium/isbn/0545010225"> - And your website, library catalog or bookstore has a cover.
Easy details. Each cover comes in three sizes. Just replace “medium” with “small” or “large.”
As with Amazon, if we don’t have a cover for the book, we return a transparent 1×1 pixel GIF image. So you can put the cover-image on OPAC pages without knowing if we have the image. If we have it, it shows; if we don’t, it doesn’t.
The Catch? To get covers, you’ll need a LibraryThing Developer Key—any member can get one. This puts a top limit on the number of covers you can retrieve per day—currently 1,000 covers. In fact, we only count it when a cover is made from the original, o our actual limit will be much higher. We encourage you to cache the files locally.
You also agree to some very limited terms:
- You do not make LibraryThing cover images available to others in bulk. But you may cache bulk quantities of covers.
- Use does not involve or promote a LibraryThing competitor.
- If covers are fetched through an automatic process (eg., not by people hitting a web page), you may not fetch more than one cover per second.
You will note that unlike the new API to our Common Knowledge data, you are not required to link back to LibraryThing. But we would certainly appreciate it.
Caveats. Some caveats:
- At present only about 913,000 covers are accessible, the others being non-ISBN covers.
- Accuracy isn’t guaranteed–this is user data–and coverage varies.
- Some covers are blurrier than we’d like, particularly at the “large” size. This is sometimes about original files and sometimes about our resizing routines. We’re working on the latter.
Why are you doing this? The goal is half promotional and half humanitarian.
First, some background. This service “competes” with Amazons cover service, now part of Amazon Web Services. Amazon’s service is, quite simply, better. They have far more covers, and no limit on the number of requests. By changing the URL you can do amazing things to Amazon covers.
The catch is that Amazon’s Terms of Service require a link-back. If you’re trying to make money from Amazon Affiliates, this is a good thing. But libraries and small bookstores have been understandably wary about linking to Amazon. Recent changes in Amazon’s Terms of Service have deepened this worry.
Meanwhile, there are a number of commercial cover providers. They too are probably, on average, better. But they cost money. Not surprisingly many libraries and bookstores skip covers, or paste them in manually from publisher sites.
That’s too bad. Publishers and authors want libraries and bookstores to show their covers. Under U.S. law showing covers to show off books for sale, rental or commentary falls under Fair Use in most circumstances. (We are not lawyers and make no warrant that your use will be legal.) We’ve felt for years that selling covers was a fading business. Serving the files is cheap and getting cheaper. It was time for someone to step up.*
So we’re stepping up. We’re hoping that by encouraging caching and limiting requests, we can keep our bandwidth charges under control. (If it really spikes, we’ll limit new developer keys for a while; if you submit this to Slashdot, we will be Slashdotted for sure!) And it will be good for LibraryThing—another example of our open approach to data. Although none of our competitors do anything like this—indeed our Facebook competitors don’t even allow export although, of course, they import LibraryThing files!—we think LibraryThing has always grown, in part, because we were the good guys—more “Do occasional good” than “Do no evil.”
If we build it, they will come. If the service really pick up, we’re going to add a way for publishers, bookstores and authors to get in on it. We’d be happy to trade some bandwidth out for what publishers know—high-quality covers, author photos, release dates and so forth. We’ve already worked with some publisher data, but we’d love to do more with it.
*In the past, we had been talking to the Open Libary project about a joint effort. We even sent them all our covers and a key to the identifiers that linked them. But nothing came of it. To some extent that was our fault, and to some extent not. (I think them and us would differ on the blame here.) In any case, I was tired of the time and transactional friction, and wanted to try a different approach.
Labels: apis, book covers, covers, open data


There is an error when I was trying to get bookcover. It keeps redirecting to an coverthing404.php page.
Is there something wrong with LT book cover?
The URL starting with http://covers.librarything.com … doesn't work. Changing it to http://www.librarything.com … fixes the problem.
I still can't get the covers to show up even using the address change and all the covers that I had, have disappeared!
I have the same problem..
"There is an error when I was trying to get bookcover. It keeps redirecting to an coverthing404.php page"
Someone please help…
I am a church librarian and want to pirnt book covers so that I can put them on a bulletin board outside the libary. What is a devkey? How do I obtain one?
Hai,
I need to get the number of images i have downloded today and what is limit remaining today using API ,
How can i get that , Please help me !!
Hey, the only cover I can retrieve is the harry potter one (the example). None of the other ISBNs I’ve tried return an image. What’s up? Is this API for real?
I hadn’t read or heard about this story. Thanks for sharing. How cool!
Is there any way to make it return a 404 if the cover doesn’t exist instead of a blank 1px image? The Open Library covers API has this feature (http://openlibrary.org/dev/docs/api/covers), but I’d rather use LibraryThing since it lets us cache the images.
If all else fails I’m cool with checking the images in my code, just rather take the easy route if there is one.
I’ve got the same problem as Chuck mentioned on July the 1st last year. There’s only one cover that I can retrieve through the API (the one from the example). No other ISBN seems to work.
Doesn’t work for me either. The book page says the cover image I am looking for is available in 1128×1718, but the only image I can call up with this method is the thumbnail 140×213 size. I tried using each of the “small” “medium” and “large” descriptors in the URL. All three returned the thumbnail. What am I doing wrong?
As sarahbee says, The high resolution,i.e.1128×1718, images shown will only display when clicked on as large, i.e. ~140×213 size images. If the intention is not to allow their downloading, why post their resolution? I assume they are to be available in the high res. size so how is this to be accomplished?
Just asking for status update: 4 years ago you had 1 million cover, howabout now? Is this API still available? Is there any way to access the non-ISBN covers i.e. have you figured out a way to map them to some other unique identifiers (oh, forgot ISBN isn’t unique either)?
If I want to add covers (so they display via the API) what is the best way to do so? I can go into my LibraryThing account, add the book and change the cover to one I upload – but I am not seeing the cover via the API.
Is there a lag time? An approval process? How long does it take my user-uploaded cover to be accessible via API?
thanks.
Any chance we can get some ssl support? We would love to use this in our campus portal but it needs to be over https.
Is this still supported? I can only get very few ISBN to return a cover image. It appears that librarything is using amazon’s cover image services now? Is that true?
I just want to get 4 to 8 images a month and cache them. Is this API the best way to do that?