ISBNdb.com Home | Categories | Subjects | Authors | Publishers | Your Account (A)
ISBN or Keywords:
Account Home
Developer Area
 - Manage Keys
 - Keys Usage
 - API Docs
Change Password
Log out
Statistics (01/05/2009):
 • Books:4,066,620
 • Subjects:1,654,296
 • Authors:1,188,776
 • Publishers:  296,458
 • Sources:10,263,275
Contents | Previous | Next
API Description: Request & Response

Communication Concepts

The ISBNdb.com remote access API uses sessionless client-server architecture in much the same way as do most websites.

Your application, a client in this case, sends a request to the ISBNdb.com server asking to return some data. The request is self consistent and does not rely on any previous history, it includes everything required for the server to produce a response. After the server processes the request and sends out a response the session ends -- in fact the next response may be handled by a different server behind the scenes (as a side note, technically, your application can use keep-alive mechanism to keep the communication channel up between sessions -- but each message exchange in such channel is nonetheless completely independent).

Each request sent to the server includes a couple of variables that you set to various values depending on the task at hand. Variables can be classified into three major groups:

  1. Identification variables -- these identify your account and/or application to the server. The server implies some limits on how much requests a given account or application can send. Typically, this sets a daily limit on the number of requests that gets reset every night (although custom agreements can override such limits or impose their own).

  2. Data set definition variables -- these specify to the server what data elements your application is interested in. These can include keywords, collection names, IDs, relations between data, etc. The end result could be one of more books satisfying some given criteria.

  3. Response formatting variables -- these define what parts of the data should be delivered in the response. For instance, for a book this can specify whether your application is interested in price history, library data, subject IDs, similar books, etc.

A typical application will almost always supply variables from 1-st and 2-nd groups above.

Access Protocol Specifics

The basics described above stay the same regardless of the actual protocol used. ISBNdb.com supports or plans to support the following protocols:
Web request protocol
In this protocol you specify your request by fetching a document from a specific URL and provide variable as a standard CGI parameters. Here is what the URL usually looks like:
http://isbndb.com/api/books.xml?access_key=12345678&index1=isbn&value1=0596002068

The response is an XML formatted message similar in essense to this example:

<?xml version="1.0" encoding="UTF-8"?>
<ISBNdb server_time="2005-02-25T23:03:41">
 <BookList total_results="1" page_size="10" page_number="1" shown_results="1">
  <BookData book_id="somebook" isbn="0123456789">
   <Title>Interesting Book</Title>
   <TitleLong>Interesting Book: Read it or else..</TitleLong>
   <AuthorsText>John Doe</AuthorsText>
   <PublisherText>Acme Publishing</PublisherText>
  </BookData>
 </BookList>
</ISBNdb>

Unless otherwise mentioned, examples and descriptions below are using this access protocol as the only one publically available at the moment.

XML-RPC
Not yet implemented, see below if you are interested in having this protocol available.

Formal web services with SOAP and WSDL
Not yet implemented, see below if you are interested in having this protocol available.

Note:
If you are interested in having access to the ISBNdb.com's data using some other access protocols or if you have some other comments or suggestions -- please contact us. Especially appreciated are use cases and specific scenarios where a different approach or protocol would have worked better.

Contents | Previous | Next

Copyright © 2002-2009 ISBNdb.com FAQ | Privacy Policy | Contact ISBNdb.com