Book Search API

Book Search API

Book Search API Details

The Book Search API finds books by title, subtitle or author keyword. It returns one result per book, not one per edition: printings of the same book are collapsed into the best-matching edition, so limit=10 gives you ten different books. Searching for an ISBN returns that exact edition.

Available on the Pro plan. See Pricing.

To try out the Book Search API, see the API Documentation

To learn more about the API and how it works, see the API Information

API Documentation API Information

Endpoint

  • GET /api/search/book/{query} — search by title, subtitle, author keyword or ISBN.

Query Parameters

FieldTypeDescription
limitintegerBooks per page, 1–100. Default 10. Values outside the range are clamped, not rejected.
pageintegerPage number, starting at 1. Default 1. A page past the end returns an empty list, not an error.
max_resultsintegerHow deep you can page, counted in results across all pages. Default 100.

Book Search API Request CURL Example

curl -X 'GET' \
  'https://www.isbnlab.com/api/search/book/gathering%20storm?limit=10&page=1' \
  -H 'accept: application/ld+json' \
  -H 'Authorization: Bearer {API_TOKEN}'

Book Search API Response Example

Each entry in member is a full Book record. This example is an ISBN search, which returns exactly one book; the entry is shortened to a few fields. A keyword search returns up to limit books and a view object with first, previous, next and last page links.

{
    "@context": "/api/contexts/Book",
    "@id": "/api/search/book/9780765302304",
    "@type": "Collection",
    "totalItems": 1,
    "member": [
        {
            "@id": "/api/book/15596406",
            "@type": "Book",
            "isbn10": "0765302306",
            "isbn13": "9780765302304",
            "workId": 17473680,
            "title": "The Gathering Storm",
            "subtitle": "Book Twelve of the Wheel of Time",
            "authors": [
                {
                    "slug": "robert-jordan",
                    "name": "Robert Jordan"
                },
                {
                    "slug": "brandon-sanderson",
                    "name": "Brandon Sanderson"
                }
            ],
            "publishDate": "2009-01-01T00:00:00+00:00",
            "physicalFormat": "Hardcover",
            "covers": [
                "https://covers.isbnlab.com/9780765302304.jpg"
            ]
        }
    ]
}

Paging Headers

Every search response includes these headers, so you can page through results without reading the body:

FieldTypeDescription
X-PageintegerThe page this response is.
X-Per-PageintegerThe page size used.
X-Has-Next-Page1 or 0Whether another page follows. Always sent.
X-Total-CountintegerTotal number of matching books. Only sent when the total is known; if it's missing, the total is unknown, not zero. Also in totalItems for JSON-LD responses.

If search is temporarily unavailable the API returns 503 with a Retry-After header; retry after that many seconds.