npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

isbndb-client

v1.0.0

Published

A TypeScript client library for the ISBNdb API

Readme

ISBNdb Client

npm version release-please

⚠️ Disclaimer: This is an unofficial TypeScript client for the ISBNdb API. It is not affiliated with, endorsed by, or connected to isbndb.com. This library is maintained independently and is not officially supported by ISBNdb.

A TypeScript client for the ISBNdb API, providing type-safe access to book metadata, author information, publisher details, and subject classifications.

Features

  • Full TypeScript support with comprehensive type definitions
  • Support for all ISBNdb API endpoints
  • Automatic error handling and response formatting
  • Support for all subscription plans (Basic, Premium, Pro)
  • Built-in rate limiting based on your subscription plan
  • Comprehensive test suite

Installation

npm install isbndb-client
# or
yarn add isbndb-client

Quick Start

import { createIsbndbClient, IsbndbService } from 'isbndb-client';

// Create a client with your API key
const client = createIsbndbClient('YOUR_API_KEY', 'PRO'); // 'BASIC', 'PREMIUM', or 'PRO'
const isbndb = new IsbndbService(client);

// Search for books
const searchResults = await isbndb.searchBooks('javascript');
console.log(searchResults.data.books);

// Get book details by ISBN
const bookDetails = await isbndb.getBook('9780131103627');
console.log(bookDetails.data.book);

// Search for authors
const authorResults = await isbndb.searchAuthors('Martin Fowler');
console.log(authorResults.data.authors);

API Reference

Book Operations

  • getBook(isbn: string, withPrices?: boolean): Get book details by ISBN
  • searchBooks(query: string, options?: BookSearchOptions): Search for books by keyword

Author Operations

  • getAuthor(name: string, options?: AuthorDetailOptions): Get author details and their books
  • searchAuthors(query: string, options?: AuthorSearchOptions): Search for authors by name

Publisher Operations

  • getPublisher(name: string, options?: PublisherDetailOptions): Get publisher details and their books
  • searchPublishers(query: string, options?: PublisherSearchOptions): Search for publishers

Subject Operations

  • getSubject(name: string): Get subject details
  • searchSubjects(query: string, options?: SubjectSearchOptions): Search for subjects

General Operations

  • searchIndex(index: "subjects" | "publishers" | "authors" | "books", options?: IndexSearchOptions): General search across indexes
  • getStats(): Get database statistics

Subscription Plans

The client supports all ISBNdb subscription plans:

  • Basic: 1 request per second
  • Premium: 3 requests per second
  • Pro: 5 requests per second

The appropriate API endpoint is automatically selected based on your plan.

Error Handling

The client provides standardized error handling with detailed error messages:

try {
  await isbndb.getBook('invalid-isbn');
} catch (error) {
  console.error(error);
  // {
  //   status: 404,
  //   statusText: 'Not Found',
  //   message: 'Book not found',
  //   url: '/book/invalid-isbn'
  // }
}

Testing

The project includes a comprehensive test suite. To run the tests:

# Run all tests
npm test

# Run tests with coverage
npm run test:coverage

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License - see the LICENSE file for details.