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.
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);
});