{"id":27998672,"url":"https://github.com/ekamid/goodreads-scraper-api","last_synced_at":"2025-09-13T07:26:56.542Z","repository":{"id":290103386,"uuid":"973334574","full_name":"ekamid/goodreads-scraper-api","owner":"ekamid","description":"A modern, RESTful API for accessing Goodreads data. Created as an alternative to the deprecated official Goodreads API.","archived":false,"fork":false,"pushed_at":"2025-04-28T12:28:27.000Z","size":258,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-08T22:54:31.703Z","etag":null,"topics":["book-apps","book-community","data-scraping","goodreads","goodreads-api-alternative","goodreads-scraper","goodreads-scraper-api"],"latest_commit_sha":null,"homepage":"https://grscraper.bookishnearby.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ekamid.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-26T19:05:38.000Z","updated_at":"2025-04-28T12:28:31.000Z","dependencies_parsed_at":"2025-04-26T22:37:22.716Z","dependency_job_id":null,"html_url":"https://github.com/ekamid/goodreads-scraper-api","commit_stats":null,"previous_names":["ekamid/goodreads-scraper-api"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekamid%2Fgoodreads-scraper-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekamid%2Fgoodreads-scraper-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekamid%2Fgoodreads-scraper-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekamid%2Fgoodreads-scraper-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ekamid","download_url":"https://codeload.github.com/ekamid/goodreads-scraper-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253160811,"owners_count":21863625,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["book-apps","book-community","data-scraping","goodreads","goodreads-api-alternative","goodreads-scraper","goodreads-scraper-api"],"created_at":"2025-05-08T22:54:36.871Z","updated_at":"2025-05-08T22:54:37.997Z","avatar_url":"https://github.com/ekamid.png","language":"TypeScript","funding_links":["https://www.buymeacoffee.com/ebrahimkhalil"],"categories":[],"sub_categories":[],"readme":"# Goodreads Scraper API\n\n![API Status](https://img.shields.io/badge/status-operational-brightgreen)\n![Version](https://img.shields.io/badge/version-1.0.0-blue)\n![License](https://img.shields.io/badge/license-MIT-green)\n\nA modern, RESTful API for accessing Goodreads data. Created as an alternative to the deprecated official Goodreads API.\n\n## 📚 Overview\n\nThe 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.\n\n### Base URL\n\n```\nhttps://gdscraper.bookishnearby.com\n```\n\n## 📋 Available Endpoints\n\n| Endpoint | Method | Description |\n|----------|--------|-------------|\n| `/api/lists` | GET | Get book lists by category, genre, or popularity |\n| `/api/book/details/:slug` | GET | Get detailed information about a specific book |\n| `/api/author/details/:slug` | GET | Get detailed information about an author |\n| `/api/search` | GET | Search for books by title, author, or ISBN |\n| `/api/users/:username/shelves` | GET | Get a user's bookshelves and their books |\n| `/api/book/details/:slug/reviews` | GET | Get reviews for a specific book |\n| `/api/quotes` | GET | Get quotes from a book or by an author |\n\n## 🚀 Quick Start Examples\n\n### Get Book Details\n\n```javascript\n// Using fetch\nfetch('https://api.goodreads-scraper.com/api/books/58490567', {\n  headers: {\n    'X-API-Key': 'your_api_key_here'\n  }\n})\n.then(response =\u003e response.json())\n.then(data =\u003e {\n  console.log(data);\n  // Process the book details\n})\n.catch(error =\u003e console.error('Error fetching book details:', error));\n```\n\n### Search for Books\n\n```javascript\n// Using fetch\nconst searchQuery = 'fourth wing';\nconst searchType = 'all';\nconst limit = 20;\n\nfetch(`https://api.goodreads-scraper.com/api/search?query=${encodeURIComponent(searchQuery)}\u0026type=${searchType}\u0026limit=${limit}`, {\n  headers: {\n    'X-API-Key': 'your_api_key_here'\n  }\n})\n.then(response =\u003e response.json())\n.then(data =\u003e {\n  console.log(data);\n  // Process the search results\n})\n.catch(error =\u003e console.error('Error searching books:', error));\n```\n\n### Get Book Lists\n\n```javascript\n// Using fetch\nfetch('https://api.goodreads-scraper.com/api/lists?type=bestsellers\u0026limit=10', {\n  headers: {\n    'X-API-Key': 'your_api_key_here'\n  }\n})\n.then(response =\u003e response.json())\n.then(data =\u003e {\n  console.log(data);\n  // Process the book list data\n})\n.catch(error =\u003e console.error('Error fetching book lists:', error));\n```\n\n## 📘 Documentation\n\nFor complete documentation, visit our [API Documentation](https://api.goodreads-scraper.com/docs).\n\n## 📊 Rate Limits\n\nThis API is completely free to use with the following limitations:\n- 100 requests per day per endpoint\n- Rate limits are tracked per IP address\n- Each endpoint has its own independent counter\n\n### 🚀 Need Unlimited Access?\n\nWant unlimited requests? You can:\n1. Clone this repository\n2. Self-host the API on your own server\n3. Modify rate limits as needed\n\n```bash\n# Clone the repository\ngit clone https://github.com/ekamid/goodreads-scraper-api.git\n\n# Install dependencies\ncd goodreads-scraper-api\nnpm install\n\n# Start the development server\nnpm run dev\n\n``\n\n## 🔄 Response Format\n\nAll API responses are returned in JSON format with the following structure:\n\n```json\n{\n  \"success\": true,\n  \"data\": { ... },\n  \"error\": null\n}\n```\n\nIn case of an error:\n\n```json\n{\n  \"success\": false,\n  \"data\": null,\n  \"error\": {\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"Error message description\"\n  }\n}\n```\n\n## 👥 Who Made This?\n\nThe Goodreads Scraper API was built during a caffeine-fueled coding sprint as part of the R\u0026D project [Nearby Bookish](https://bookishnearby.com); a platform that connects local readers to share books, engage in discussions, and foster a sense of community around reading.  \nSince Goodreads shut down their API, one overwhelmed developer (hi 👋) decided to make a new way to fetch book data — by scraping it.\n\n**Developer**: [Ebrahim Khalil](https://github.com/ekamid) (professional overthinker and sometimes pretends to be a book nerd)\n\n## 👥 Who Made This?\n\nThe Goodreads Scraper API was built during a caffeine-fueled coding sprint as part of the R\u0026D project [Nearby Bookish](https://bookishnearby.com); a platform that connects local readers to share books, engage in discussions, and foster a sense of community around reading.  \nSince Goodreads shut down their API, one overwhelmed developer (hi 👋) decided to make a new way to fetch book data — by scraping it.\n\n**Developer**: [Ebrahim Khalil](https://github.com/ekamid) (professional overthinker and sometimes pretends to be a book nerd)\n\n## Why We Made This?\n\nWhen Goodreads deprecated their public API in 2020, many book-related applications and services were left without a reliable source of book data. Although [Nearby Bookish](https://bookishnearby.com)didn'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.\n\n**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.\n\n\n## 🙏 Credits\n\nSpecial thanks to the open-source community for providing invaluable tools and libraries. We're particularly grateful to [Biblioreads](https://biblioreads.eu.org) for their pioneering work in making book data accessible. Their project has been a significant inspiration for this API.\n\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🤝 Contributing\n\nWe welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for more information.\n\n## 📞 Support\n\nIf you need help or have any questions, please [create an issue](https://github.com/ekamid/goodreads-scraper-api/issues/new) or contact us at [ebrahimkha@gmail.com](mailto:ebrahimkha71@gmail.com).\n\nIf you find this project helpful, consider buying me a coffee:\n\n\u003ca href=\"https://www.buymeacoffee.com/ebrahimkhalil\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" height=\"50\"\u003e\n\u003c/a\u003e\n\n## ⚠️ Disclaimer\n\nThis 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fekamid%2Fgoodreads-scraper-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fekamid%2Fgoodreads-scraper-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fekamid%2Fgoodreads-scraper-api/lists"}