Book Database

FREE
By ISBNdb | Updated a month ago | Database
Popularity

0.4 / 10

Latency

361ms

Service Level

100%

Health Check

N/A

README

ISBN Database

The ISBNdb database includes over 36 million unique ISBNs with up to 19 data points per book and is searchable via our custom API. Choose one of the plans on isbndb.com to access the API for a free 7-day trial.

  • Live database with over 36 million unique books
  • Up to 19 data points per book, including ISBN10, ISBN13, title, author, publication date, publisher, binding, pages, list price, cover image, language, edition, format, synopsis, and dimensions. Other data points for some books are overview, Dewey decimal, weight, and subject.
  • Searchable by title, author, ISBN with multiple endpoint options
  • New books and data points added daily
  • Multiple languages available
  • Used, rare, out-of-print books and every book in print
  • No Long Term Contracts
  • Customizable API functionality
  • Higher API Requests per second for Premium and Pro Plans
  • Bulk Data: get up to 1000 results per call (Premium and Pro only)

ISBNdb API Documentation v2

Authentication

Welcome to the ISBNdb API Documentation. Our REST API allows you to retrieve information about millions of books.

Authentication
In order to interact with the API youโ€™ll need to use an HTTP header on every request.

Authorization: YOUR_REST_KEY
Please note the difference as passing your key via GET parameters wonโ€™t work. e.g.,

Incorrect: https://api2.isbndb.com/book/9780134093413?Authorization=YOUR_REST_KEY

Correct:

GET /book/9780134093413 HTTP/1.1
Host: api2.isbndb.com
User-Agent: insomnia/5.12.4
Authorization: YOUR_REST_KEY
Accept: */*

Error Messages

If the key reaches the request limit the response will be

Status code: 404 Not found

Response: {"errorMessage": "Not Found"}

Status code: 429 Too Many Requests

Response :  { "message": "Limit Exceeded" }

If you need further information on HTTP Headers please see our API Code Examples

ISBNDB API has a default limit of 1 request per second. across all endpoints.

If you are a PREMIUM subscriber you are entitled to 3 requests per second limit. To access this benefit use the following [ Base URL: api.premium.isbndb.com ]

Please note that the above is only available for PREMIUM subscribers. Attempting to use your API key if you are in a different subscription plan will result in access being denied.

If you are a PRO subscriber you are entitled to 5 requests per second limit. To access this benefit use the following [ Base URL: api.pro.isbndb.com ]

Please note that the above is only available for PRO subscribers. Attempting to use your API key if you are in a different subscription plan will result in access being denied.

APIv2 code samples

PHP books

 $url = 'https://api2.isbndb.com/book/9780134093413';  
 $restKey = 'YOUR_REST_KEY';  
 
 $headers = array(  
   "Content-Type: application/json",  
   "Authorization: " . $restKey  
 );  
 
 $rest = curl_init();  
 curl_setopt($rest,CURLOPT_URL,$url);  
 curl_setopt($rest,CURLOPT_HTTPHEADER,$headers);  
 curl_setopt($rest,CURLOPT_RETURNTRANSFER, true);  
 
 $response = curl_exec($rest);  
 
 echo $response;  

PHP author

 $author = rawurlencode('James Hadley Chase');
 $url = "https://api2.isbndb.com/author/{$author}";  
 $restKey = 'YOUR_REST_KEY';  
 
 $headers = array(  
   "Content-Type: application/json",  
   "Authorization: " . $restKey  
 );  
 
 $rest = curl_init();  
 curl_setopt($rest,CURLOPT_URL,$url);  
 curl_setopt($rest,CURLOPT_HTTPHEADER,$headers);  
 curl_setopt($rest,CURLOPT_RETURNTRANSFER, true);  
 
 $response = curl_exec($rest);  
 
 echo $response;  
 print_r($response);  
 curl_close($rest);

.NET C# Book

using System; 
using System.IO; 
using System.Net; 
 
namespace ConsoleApp1 { 
    public class Program { 
 
        public static void Main(string[] args) { 
 
            const string WEBSERVICE_URL = "https://api2.isbndb.com/book/9781934759486"; 
 
            try { 
                var webRequest = WebRequest.Create(WEBSERVICE_URL); 
 
                if (webRequest != null) { 
                    webRequest.Method = "GET"; 
                    webRequest.ContentType = "application/json"; 
                    webRequest.Headers["Authorization"] = "YOUR_REST_KEY"; 
 
                    //Get the response 
                    WebResponse wr = webRequest.GetResponseAsync().Result; 
                    Stream receiveStream = wr.GetResponseStream(); 
                    StreamReader reader = new StreamReader(receiveStream); 
 
                    string content = reader.ReadToEnd(); 
 
                    Console.Write(content); 
                } 
            } catch (Exception ex) { 
                Console.WriteLine(ex.ToString()); 
            } 
        } 
    } 
} 

.NET C# Book Multiple

using System.Text;
 
namespace ConsoleApp1 { 
    public class Program { 
 
        public static async Task Main(string[] args) { 
            try {
                HttpClient client = new HttpClient();
                client.BaseAddress = new Uri("https://api2.isbndb.com");
                client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "<key>");
 
                HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Post, "/books");
 
                string[] isbns = {"9781492666868", "9781616555719"};
                message.Content = new StringContent("isbns=" + String.Join(',', isbns), Encoding.UTF8, "application/json");
 
                HttpResponseMessage response = await client.SendAsync(message);
 
                var jsonResponse = await response.Content.ReadAsStringAsync();
 
                Console.Write(jsonResponse); 
            } catch (Exception ex) { 
                Console.WriteLine(ex.ToString()); 
            } 
        } 
    }
}

Python Book

import requests as req
 
h = {'Authorization': 'YOUR_REST_KEY'}
resp = req.get("https://api2.isbndb.com/book/9781934759486", headers=h)
print(resp.json())

Python Book Multiple

import requests
 
headers = {
    'accept': 'application/json',
    'Authorization': 'key',
    'Content-Type': 'application/json',
}
 
data = 'isbns=' + ','.join(['9781492666868', '9781616555719'])
 
response = requests.post('https://api2.isbndb.com/books',
headers=headers, data=(data))
 
print(response.json())

Java

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
 
public class JavaGetRequest {
 
    private static HttpURLConnection con;
 
    public static void main(String[] args) throws MalformedURLException,
            ProtocolException, IOException {
 
        String url = "https://api2.isbndb.com/book/9781934759486";
 
        try {
 
            URL myurl = new URL(url);
            con = (HttpURLConnection) myurl.openConnection();
            con.setRequestProperty("Content-Type", "application/json");
            con.setRequestProperty("Authorization": "YOUR_REST_KEY");
            con.setRequestMethod("GET");
 
            StringBuilder content;
 
            try (BufferedReader in = new BufferedReader(
                    new InputStreamReader(con.getInputStream()))) {
 
                String line;
                content = new StringBuilder();
 
                while ((line = in.readLine()) != null) {
                    content.append(line);
                    content.append(System.lineSeparator());
                }
            }
 
            System.out.println(content.toString());
 
        } finally {
 
            con.disconnect();
        }
    }
}

NodeJS Book

let headers = {
    "Content-Type": 'application/json',
    "Authorization": 'YOUR_REST_KEY'
}
 
fetch('https://api2.isbndb.com/book/9781934759486', {headers: headers})
    .then(response => {
        return response.json();
    })
    .then(json => {
        console.log(json)
    })
    .catch(error => {
        console.error('Error:', error)
    });

NodeJS Book Multiple

const axios = require('axios').default;
 
let headers = {
    "Content-Type": 'application/json',
    "Authorization": 'key'
}
 
const instance = axios.create({
    baseURL: 'https://api2.isbndb.com',
    headers: headers
});
 
instance.post(
    '/books',
    'isbns=0452284236,2266154117,2842281500',
).then(function (response) {
    console.log(response.data);
})
.catch(function (error) {
    console.log(error);
});
Followers: 1
Resources:
Product Website Terms of use
API Creator:
I
ISBNdb
ISBNdb
Log In to Rate API
Rating: 5 - Votes: 1