Skip to content

A modern, RESTful API for accessing Goodreads data. Created as an alternative to the deprecated official Goodreads API.

License

Notifications You must be signed in to change notification settings

ekamid/goodreads-scraper-api

Repository files navigation

Goodreads Scraper API

API Status Version License

A modern, RESTful API for accessing Goodreads data. Created as an alternative to the deprecated official Goodreads API.

πŸ“š Overview

The Goodreads Scraper API provides developers with access to book data from Goodreads, including book details, author information, reviews, quotes, and more. This API is designed to be easy to use and integrate into your applications.

Base URL

https://gdscraper.bookishnearby.com

πŸ“‹ Available Endpoints

Endpoint Method Description
/api/lists GET Get book lists by category, genre, or popularity
/api/book/details/:slug GET Get detailed information about a specific book
/api/author/details/:slug GET Get detailed information about an author
/api/search GET Search for books by title, author, or ISBN
/api/users/:username/shelves GET Get a user's bookshelves and their books
/api/book/details/:slug/reviews GET Get reviews for a specific book
/api/quotes GET Get quotes from a book or by an author

πŸš€ Quick Start Examples

Get Book Details

// Using fetch
fetch('https://api.goodreads-scraper.com/api/books/58490567', {
  headers: {
    'X-API-Key': 'your_api_key_here'
  }
})
.then(response => response.json())
.then(data => {
  console.log(data);
  // Process the book details
})
.catch(error => console.error('Error fetching book details:', error));

Search for Books

// Using fetch
const searchQuery = 'fourth wing';
const searchType = 'all';
const limit = 20;

fetch(`https://api.goodreads-scraper.com/api/search?query=${encodeURIComponent(searchQuery)}&type=${searchType}&limit=${limit}`, {
  headers: {
    'X-API-Key': 'your_api_key_here'
  }
})
.then(response => response.json())
.then(data => {
  console.log(data);
  // Process the search results
})
.catch(error => console.error('Error searching books:', error));

Get Book Lists

// Using fetch
fetch('https://api.goodreads-scraper.com/api/lists?type=bestsellers&limit=10', {
  headers: {
    'X-API-Key': 'your_api_key_here'
  }
})
.then(response => response.json())
.then(data => {
  console.log(data);
  // Process the book list data
})
.catch(error => console.error('Error fetching book lists:', error));

πŸ“˜ Documentation

For complete documentation, visit our API Documentation.

πŸ“Š Rate Limits

This API is completely free to use with the following limitations:

  • 100 requests per day per endpoint
  • Rate limits are tracked per IP address
  • Each endpoint has its own independent counter

πŸš€ Need Unlimited Access?

Want unlimited requests? You can:

  1. Clone this repository
  2. Self-host the API on your own server
  3. Modify rate limits as needed
# Clone the repository
git clone https://github.com/ekamid/goodreads-scraper-api.git

# Install dependencies
cd goodreads-scraper-api
npm install

# Start the development server
npm run dev

``

## πŸ”„ Response Format

All API responses are returned in JSON format with the following structure:

```json
{
  "success": true,
  "data": { ... },
  "error": null
}

In case of an error:

{
  "success": false,
  "data": null,
  "error": {
    "code": "ERROR_CODE",
    "message": "Error message description"
  }
}

πŸ‘₯ Who Made This?

The Goodreads Scraper API was built during a caffeine-fueled coding sprint as part of the R&D project Nearby Bookish; a platform that connects local readers to share books, engage in discussions, and foster a sense of community around reading.
Since Goodreads shut down their API, one overwhelmed developer (hi πŸ‘‹) decided to make a new way to fetch book data β€” by scraping it.

Developer: Ebrahim Khalil (professional overthinker and sometimes pretends to be a book nerd)

πŸ‘₯ Who Made This?

The Goodreads Scraper API was built during a caffeine-fueled coding sprint as part of the R&D project Nearby Bookish; a platform that connects local readers to share books, engage in discussions, and foster a sense of community around reading.
Since Goodreads shut down their API, one overwhelmed developer (hi πŸ‘‹) decided to make a new way to fetch book data β€” by scraping it.

Developer: Ebrahim Khalil (professional overthinker and sometimes pretends to be a book nerd)

Why We Made This?

When Goodreads deprecated their public API in 2020, many book-related applications and services were left without a reliable source of book data. Although Nearby Bookishdidn't exist back then, while building it, we recognized the gap and the ongoing need for reliable book information. This API was created to fill that gap and to provide developers with easy access to the rich book data still available on Goodreads.

Why another scraper? Because most existing ones are either outdated, fragile after Goodreads' redesign, or only cover basic data. We built ours to be more reliable, more complete, and easier for developers to integrate and scale with.

πŸ™ Credits

Special thanks to the open-source community for providing invaluable tools and libraries. We're particularly grateful to Biblioreads for their pioneering work in making book data accessible. Their project has been a significant inspiration for this API.

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

🀝 Contributing

We welcome contributions! Please see our Contributing Guidelines for more information.

πŸ“ž Support

If you need help or have any questions, please create an issue or contact us at ebrahimkha@gmail.com.

If you find this project helpful, consider buying me a coffee:

Buy Me A Coffee

⚠️ Disclaimer

This API is not affiliated with or endorsed by Goodreads or Amazon. It is an independent project that scrapes publicly available data from Goodreads. Please use responsibly and in accordance with Goodreads' terms of service.

About

A modern, RESTful API for accessing Goodreads data. Created as an alternative to the deprecated official Goodreads API.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project