24

I am working on an iOS app and I have a list of ISBNs. I want to pull up book cover image, title, author, and other nice-to-haves if available, like reviews, price, etc. I tried using the Google Books API, but newer books are not listed in their service. I need a service that has up-to-date ISBNs, particularly for University textbooks in the United States.

For example, the following ISBN returns 0 results via the Google Books API (and others I tried): https://www.googleapis.com/books/v1/volumes?q=isbn:9780134092669

But a book does exist with that ISBN: http://www.isbnsearch.org/isbn/9780134092669

My question is: are there any good APIs that I can use, free or otherwise, to search for books via ISBN? The only thing I can find is the Amazon Product Advertising API, which is complete overkill.

RommelTJ
  • 701
  • 1
  • 7
  • 20
  • 3
    You can try `manubot cite isbn:9780134092669 --log-level CRITICAL`. It is a python utility that will attempt several APIs to find an ISBN. Check https://github.com/manubot/manubot. It retrieves bibliographic information. – Evgeny Oct 24 '19 at 07:10
  • Did you figure it out? Because I am having trouble also finding a good API. Google returns unrelated books. – djamaile Dec 18 '19 at 21:50

2 Answers2

6

ISBN query will work. You are not encoding the query string.

Use encodeURIComponent to encode your search string. Or just use %3D equivalent for =

Try this. Notice there is no : character and no = for the value of the q

https://www.googleapis.com/books/v1/volumes?q=isbn%3D9780134092669&key={YOUR_API_KEY}

I am getting

 "volumeInfo": {
    "title": "Computer Systems",
    "subtitle": "A Programmer's Perspective",
    "authors": [
     "Randal E. Bryant",
     "David R. O'Hallaron"
    ],

Source https://developers.google.com/books/docs/v1/reference/volumes/list

User Try Me link and you will get the URL.

bhantol
  • 9,368
  • 7
  • 44
  • 81
  • I don't need to encode the search string as I don't need to use the '=' sign after the isbn keyword. See: https://developers.google.com/books/docs/v1/using#PerformingSearch Regardless, it doesn't work. The example you provide returns 657 results, none of which are the book I want. The top result is for the 2nd Edition of the book, not the 3rd Edition. – RommelTJ Nov 23 '16 at 18:32
  • You are right. isbn is not a field - I changed isbn to identifier but getting 2nd edition and an unrellated book `https://www.googleapis.com/books/v1/volumes?q=identifier%3D9780134092669` – bhantol Nov 23 '16 at 18:51
0

Try Worldcat. For instance this url "http://xisbn.worldcat.org/webservices/xid/isbn/0596002815?method=getMetadata&format=xml&fl=*" returns this xml:

<?xml version="1.0" encoding="UTF-8"?>  
<rsp xmlns="http://worldcat.org/xid/isbn/" stat="ok">
    <isbn   oclcnum="177669176 222927677 249274099 253402825 301161087  
438280230 442197411 464709193 492988633 54619668 55847258
614957020 644729085 760707144 772683553 802989466 850841661 851226517
875412584" lccn="2004273129" form="BA DA" year="2003" lang="eng"
ed="2nd ed." title="Learning Python"  author="by Mark Lutz and David
Ascher."  publisher="O&#39;Reilly"  city="Sebastopol, CA"   
url="http://www.worldcat.org/oclc/177669176?referer=xid">0596002815</isbn>
</rsp>

Replace 0596002815 with the ISBN you are looking for. See http://xisbn.worldcat.org/xisbnadmin/doc/api.htm for details.

Kevin Whitefoot
  • 414
  • 3
  • 15
  • 16
    Deactivated on 2018-Jul-01: https://www.oclc.org/developer/news/2018/xid-decommission.en.html – Adobe Sep 25 '18 at 21:23