Alternatives to Amazon API

So the Amazon E-Commerce Service has changed it’s name to the Amazon Product Advertising API.  And it now requires an AWS account, and a cryptographic signature on requests.

There is a new terms of service, but according to the amazon email, “the terms are substantially the same,” and this is indeed true.  The requirement remains that applications using the API “have as their principal purpose advertising and marketing the Amazon Site and driving sales of products and services on the Amazon Site.”  This wasn’t a requirement Amazon seemed particularly interested in strictly enforcing before. I have no particular reason to think this will change, but the changes to the API in general give reason to be cautious.

Especially one new change: it looks like new requests for API keys will actually be manually reviewed and approved.

So, it’s prudent to start identifying what I’d do if I’m no longer able to use the Product API. There are actually three main things I currently use the Amazon API for in Umlaut (and therefore in any of my other software that uses Umlaut services, such as my OPAC).

Resolving ISBNs

It’s extremely useful for Umlaut to be able to take an ISBN, and look up author/title/etc metadata corresponding to that ISBN.  Umlaut historically used the Amazon API to do this. But there are other options which work quite well, although interestingly none of these services I’ve tested actually respond as quickly as Amazon, not even the Google one.

Google Books API

Quite usefully, the Google Books Data API will also allow you to accomplish this as a byproduct of it’s functionality. You can look up a record in GBS by ISBN, and you get back a nice Atom response with author/title/etc.  Nice.  Theoretically, the GBS documentation suggests that you might also get a corresponding LCCN or OCLCnum in there, but in fact the GBS Data service doesn’t seem to currently ever provide this. Maybe in the future, would be nice.

I have already enhanced the Umlaut GBS plug-in to make use of this information from GBS, done and done, backup plan in place. The GBS Data API is free for anyone, with no usage quantity limitations so far as I know.

Not sure how GBS’s coverage of all ISBN compares with Amazon’s, but I expect it compares pretty favorably, especially with the OCLC/Google cooperation to add many/most/all WorldCat records to GBS.

Worldcat APIs

The WorldCat API would also probably allow you to do this.  But it’s available for unlimited usage quantity only to OCLC members. (update 19 Aug 2009 — I believe that non-OCLC members are invited to ask permission for unlimited usage of WorldCat API, and I’ve been led to believe that permission will generally be granted, at least if they don’t think your app competes with OCLC services. It’s worth a try. Interested in hearing about anyone that does this and gets approved or not.)  It’s also a bit slow.  There is also some limitations on data fields returned if your app can’t guarantee the end-user is affiliated with your institution, which Umlaut is currently unable to do (Umlaut hasn’t needed to care before).  I’m not sure if those affiliation limitations would matter for this use though.  I’d also probably want to look at MARC records from the service, rather than DC or Atom records, to take full advantage of all the data WorldCat could give me, but dealing with MARC is kind of a pain.

So overall, not quite as convenient or easy to use as the GBS API for this purpose, but I’d still like Umlaut to make use of it at some point, when I or someone else has a chance.

WorldCat’s coverage of the ISBN universe is presumably pretty good.

Open Library API

I believe it should be possible to use the Open Library API for this too, but I haven’t had time to fully investigate. The Open Library recommended API keeps changing, hard to keep up with. Not sure what Open Libraries current coverage of the ISBN universe is, or if Open Library will actually reliably allow you to look up records it does have by ISBN.This would be good for Umlaut to explore at some point too.

Bowker Books In Print XML Service

Bowker Books in Print has a newish XML web service to allow you to do exactly this, look up an ISBN and get metadata back.  But I’m still confused about the pricing model for it. It may be that the web service is available at no additional charge to institutions already subscribing to an unlimited-seat license to BiP online.  But it may be an additional charge, not sure.

The Bowker database presumably would have as good coverage of the ISBN universe as is available anywhere, since Bowker is the US ISBN registrar (which is not to say that BiP only includes US titles; just that Bowker is pretty involved in ISBN infrastructure, so presumably has good coverage).

If it’s available to existing BiP subscribers at no additional cost, that’s enough potential users to justify someone spending time adding this to Umlaut, if someone has time. If it’s an additonal cost — well, there are other sources of this information available at no additional cost to anyone, or in one case to OCLC members.

Cover Images

Another thing many of us use the Amazon API for is cover images. Fortunately, there are now a variety of other sources for cover images, although none yet probably have the range of coverage of Amazon, they’re all getting better. And cover images are, to me, really just an extra bell/whistle, not really crucial.

  • LibraryThing: Umlaut already consults CoverThing for cover image availability. Not great coverage, but worth checking anyway.
  • Google Books Data API:  The Google Books Data API will also give you cover images.  And awesomely allows you to look up books by OCLCnum or LCCN too, not just ISBN; I don’t think any of the other services do this. It’s coverage is currently quite expansive,  but a significant portion of ‘covers’ it returns will actually be scans of title pages, and there’s no way to tell that’s so. But, hey, a scan of a title page is pretty good if you’ve got nothing else. Umlaut currently already uses cover images found from GBS.
  • OpenLibrary: Open Library’s got covers too. Not sure how expansive their coverage is. Umlaut kind of sort of uses OL covers, but it uses an outdated API (that was all that was available when it was written) that doesn’t actually find most OL covers. It needs to be updated.
  • Wikipedia/dbpedia.  Wikipedia’s got some covers, but the coverage is currently not very expansive. I expect it to keep getting better though. The dbpedia interface to wikipedia should, I think, make it possible to query for and find covers in an automated fashion. Would be interesting to experiment with.Interestingly, since  think most publishers are actually interested in providing their covers to anyone who wants to display them, it would be an interesting project to try and set up a regular automated feeds of covers from participating publishers into freebase. I think that’s probably the cover image source of the future, eventually.

Links to Amazon

Ironically, the most irreplaceable aspect of the Amazon API is the one that actually serves Amazon’s interests, and they wouldn’t want to see go away!  The ability to figure out the ASIN for a book knowing it’s ISBN or other characteristics, and thus make a reliable link to the Amazon page for the book.  (Umlaut also uses the ASIN to identify if a book has “search inside” or “limited preview” functions available, although Umlaut actually screen-scrapes (once it has the ASIN) to determine this, there’s actually no API support for it. This is an awfully useful thing to be able to tell my users, I hope Amazon doesn’t put anything in place to stop my screen-scraping).

Now, if you have an ISBN, you can guess that the ASIN is the same as the ISBN (converting to ISBN-10 first if necessary).  In 99% (100%?) of the cases, this seems to be a safe assumption. But it’s not actually guaranteed — and I expect that when 979 ISBNs come into force, this will no longer be true, as the ASIN is 10 digits, and formed from a 10-digit ISBN.

So, if the Amazon API becomes unavailable to me, this is the one thing I would not be able to do, at least not with books whose ISBN’s don’t correspond to ASINs.

That’s actually the reason I suspect Amazon won’t tell libraries to stop using the Amazon API. They want us to link to their pages,  don’t they?

19 thoughts on “Alternatives to Amazon API

  1. Ah, good point, thanks YS! I can’t believe I forgot that, I actually use it myself, although I don’t currently use it’s ISBN-resolving capabilities, I just use it to link to a vendor-agnostic list of online purchase availability and prices.

    The API response isbndb returns isn’t quite as structured as some of the other options — it jams publisher name, location, and date into one string field, instead of seperating them into seperate fields as most of the other options do. (having year in a seperate field is especially important, although I suppose if one needed to one could have reasonable success just pulling /\d\d\d\d/ out of the giant string). But it’s definitely another option.

  2. I have no idea how you find more information about the Bowker BiP API. I got my information from direct communication with Bowker, so I guess you could contact a Bowker representative.

    It’s definitely not freely available to the public though. It may be included in a BiP online subscription (which many libraries have; I work in a library), or may not be, I’m confused on that matter.

  3. cover images are problematic in wikipedia, because are copyrighted images used under fair use (rather than freely licensed). Although prevalent, there are ongoing arguments about whether these should be allowed or not (and they aren’t in commons).

  4. Thanks Phoebe.

    Interestingly, I believe OpenLibrary and LibraryThing both use cover image thumbnails without explicit permission under a fair use rationale too.

    Wikipedia has their own internal issues to discuss, but as long as they provide any cover thumbnails, I don’t personally have any hesitation in using them.

    I think it’s somewhat likely that attaching a cover image thumbnail to a (wikipedia or library) record for a work would be considered fair use — but I also think that publishers would generally smile upon the practice anyway. It would be interesting if Wikipedia tried contacting major publishers for blanket thumbnail permission, but I can see how that would be an added layer of overhead and tracking that wikipedia can’t really afford.

  5. What about DVDs and music ? What alternatives to Amazon exist ?

    I also heard last year about Amazon iPhone app beeing able to recognize books by the picture of their cover. This apparently hasn’t surfaced here in Europe yet (has it ??). I wish their would be a way to match a book, if not a DVD or CD with a picture of the cover.

  6. Marc, the App you want is called SnapTell, free rubbish basically. You can get it from iTunes in most countries. It claims to be able to recognize a book …by simply taking a picture of it. While it is possible to do in theory, I found SnapTell still very unreliable. The company was also bought by Amazon and so there are the only ones to my knowledge allowed to use the API from a mobile device. Anybody wanting to use the API for a mobile application, iPhone or otherwise will not be given permission.

  7. Would someone help me with a good way to search. I have a website BiblicalHistoricalFiction where I post all know books of that sub-genre. The only good website that allows me to do a keyword search for Moses, Fiction, Bible, Non juvenile, English is WorldCat. I don’t think I am elgible for their API, but I am trying.

    Would you have any other websites with API access that would allow me to do a similar search?

  8. Hi,

    Does anyone know the ballpark cost range for the Bowker BiP license? I can’t seem to get them to get back to us or find any info online. Just looking for a range.

    AJ

  9. Looks like Amazon is shutting down this API for uses that are non-commercial… You will now require an AssociateTag, which means telling them where your website resides that drives business to Amazon… oh well. Guess I’ll try to get book information from Google.

  10. Like the original post said, Amazon has been making it clearer that they intend this API only for sites who’s primary purpose is selling things on Amazon.

    However, even though they recently started requiring an associateID, there is nothing stopping you from simply registering for an associateID and passing it on API requests. You don’t need to set up account info to actually receive payments with that associateID, or to actually generate any user-facing links using the associateID.

    https://bibwild.wordpress.com/2011/10/18/amazon-product-advertising-api-requires-associatetag-now/

  11. Yes, I saw you wrote that, just wanted to give a heads up it’s becoming a reality :-). I did try to sign up for an Associate Tag, but they want a URL for my website. Well, the website I’m developing is on an Intranet (it’s a library of books in my company) and will never be public. It did not accept my intranet URL :-) but I wanted to abide by the rules, so I did contact them and ask whether an Intranet site is not a supported scenario. Haven’t heard back yet. My last resort is to screen scrape, but I’m not really looking forward to that.

  12. I’d just enter the public URL of the company that has the intranet. My impression is that these applicaitons don’t get much (or possibly any) actual human attention.

    But yes, I’d only develop against these API’s if I’m willing to accept that they could go away (or have permission for me to use them withdrawn) at any time. Really that can go for any free service you don’t have a contract for (as some Google users found out), but especially true when you start having reason to believe your use is not one the vendor really wants to support.

  13. (Disclaimer: I am one of the co-founders of Semantics3)

    If you are looking for structured data on products, along with pricing data that’s updated in realtime, you can check out Semantics3 (https://semantics3.com/)

    Here is the signup link: https://www.semantics3.com/signup?code=ramanujan

    You can query products by either ASIN, UPC or just the product name itself. Moreover, we also provide the affiliate purchase links for each of these products – you could start monetizing from day 1!

    We don’t have any of the restrictions that Amazon enforces. You are free to use the data in any way you wish. We have also paid plans for customers that need access to a large number of queries per day.

    [We are currently tracking 20 MM products across all of the major e-commerce websites.]

Leave a comment