British National Bibliography API

Free to Use Varies (check documentation)

Overview

The British National Bibliography API exposes Linked Data about books published in the UK and Ireland, including titles, authors, ISBNs, and subject classifications. Use it to build library tools or enrich book metadata.

💡

Beginner Tip

This is a Linked Data API — add the header 'Accept: application/json' to get JSON-LD instead of RDF/XML. Query by BNB record ID in the URL path, or use the SPARQL endpoint at bnb.data.bl.uk/sparql to search by ISBN or title.

Available Data

book title and author
ISBN and publisher
cover image URL
page count
publication date
country name and code

Example Response

JSON Response
{
  "title": "The Great Gatsby",
  "authors": [
    "F. Scott Fitzgerald"
  ],
  "publishedDate": "1925-04-10",
  "pageCount": 218,
  "categories": [
    "Fiction"
  ],
  "imageLinks": {
    "thumbnail": "https://books.google.com/..."
  },
  "averageRating": 4
}

Field Reference

@id Linked Data URI uniquely identifying this bibliographic resource
title Full title of the book or resource
creator Author or authors of the work; may be a URI or a literal name string
isbn ISBN-10 or ISBN-13 identifier for the publication
publisher Name of the publishing company
date Publication year or full date in ISO 8601 format

Implementation Example

const url = "http://bnb.data.bl.uk/";
const response = await fetch(url);
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();
console.log(data);

What Can You Build?

Note: These code examples are AI-generated and unverified. Always refer to the official API documentation for accurate usage.

Common Errors & Troubleshooting

RDF/XML returned instead of JSON Missing Accept header; the API defaults to RDF/XML format
Add '-H "Accept: application/json"' to your curl command or set the Accept header in your HTTP client
404 on resource lookup Using an ISBN-13 directly instead of the BNB record identifier
Search first via the SPARQL endpoint to find the BNB ID, then fetch that resource URL directly
Connection uses HTTP not HTTPS The base URL is http:// which some environments may block
The API works over HTTP only; if your environment requires HTTPS, relay requests through a proxy

Matrix Score Breakdown

🌐 Reachability 0/30
⚡ Speed 2/20
🔒 Security 0/15
🛠 Developer XP 15/20
✓ Reliability 7/15
Response Time 3070ms

Fully tested on Apr 5, 2026

Technical Specifications

Auth No Auth
HTTPS NO
CORS UNKNOWN
Category Books
Difficulty Beginner
Verified: 2026-04-04

Similar APIs

View All →