Goodreads API v1
Public Goodreads data — books, reader reviews and their comments, editions, authors, quotes, series and Listopia lists — as JSON, from https://api.fetchlayer.dev/goodreads. Everything returned is public on Goodreads, and no Goodreads account is needed. FetchLayer is not affiliated with, endorsed by, or sponsored by Goodreads or Amazon.
Available endpoints
/book-detail POST Read a book’s reviews /book-reviews POST Read the comments under a review /review-comments POST List every edition of a book /book-editions POST Search books /search-books POST Search authors /search-authors POST Get an author’s profile /author-profile POST List every book by an author /author-books POST Read quotes /quotes POST Get a series in reading order /series POST Read a Listopia list /list POST Resolve a Goodreads link /resolve-url Ids, links and ISBNs
Ids are the numbers in Goodreads links: book 5907 in /book/show/5907.The_Hobbit, author 656983, series 66175, list 1. Anywhere an id is accepted the full link works too, and a book can also be given by ISBN-10 or ISBN-13. Not sure what a link is? /resolve-url tells you, with the route and arguments that read it, for free.
Paging and billing
Listings take limit and return nextCursor and hasNextPage; pass nextCursor back as cursor, with the same other parameters, to continue. A large limit is served in one response, up to each route's ceiling.
Each listing costs 1 credit per page of results it covers, reported as pagesScraped: 20 editions, 50 search results, 20 authors, 30 of an author's books, 30 quotes, 10 review comments, 100 list books or 30 tagged lists to a page. Reviews are billed on what you receive instead: 1 credit per 30 reviews (reviewCount), up to 300 in a request. A book, an author profile and a series are 1 credit each, and /resolve-url is free.
Reviews
/book-reviews reads reviews across every edition in Goodreads' popular order, or newest or oldest first. Narrow them by stars (rating), by language — /book-detail lists the languages a book has reviews in — or by words in the text (search). totalCount is how many reviews match. Pass a review's id to /review-comments for its thread.
What this API does not return
- Private data. Readers' shelves, private profiles and anything behind a Goodreads sign-in are not available.
- Book text.
previewUrllinks to the publisher's free sample when there is one; the sample itself is not returned. - Fields Goodreads does not publish. They are
null, never guessed: many editions have no ISBN, and authors who manage their own profile often list no birth date. - Historical snapshots. Ratings and counts are as at the time of the request.