Goodreads Scraper — Books, ISBN, Reviews & Authors
Pricing
from $2.00 / 1,000 results
Goodreads Scraper — Books, ISBN, Reviews & Authors
Scrape Goodreads books, reviews, authors, lists, series and search results from any URL, ISBN-10/13 or text query. Book rows include ratings with a 1-5 star distribution, genres, ISBN, pages and series; reviews can be filtered by star range and language. Works with Apify MCP and the API.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
22
Total users
3
Monthly active users
16 hours ago
Last modified
Categories
Share
What is Goodreads Scraper?
Goodreads Scraper returns Goodreads book data as dataset rows from any book, author, list or series URL, an ISBN-10 or ISBN-13, or a plain search phrase. A book URL gives one book row (title, author, average rating, rating counts, ISBN, pages, publisher, genres, rating distribution) plus rows for its top public reviews. Search phrases, authors, lists and series give book rows you can follow up on. Publishers, authors, marketers and researchers use it for reader-sentiment research, comp titles and catalog data, with no Goodreads account.
Why readers and publishers use it
- One input box for everything. Paste book, author, list or series URLs, ISBNs and search phrases together; each is detected automatically.
- Book metadata. ISBN, ISBN-13, ASIN, pages, publisher, publish date, format, language, genres and series.
- Rating breakdown.
ratingsDistributiongives the count of ratings for each star level, keyed"1"(one star) to"5"(five stars). - Review text with filters. Keep only five-star or only low-star reviews, and pick a review language.
- Concise or detailed rows.
responseFormat: "concise"keeps rows small for AI agents.
How to use it
A book with its top reviews, plus a search:
{"targets": ["https://www.goodreads.com/book/show/40097951-the-silent-patient","sapiens yuval noah harari"],"resultsPerTarget": 25}
Enrich a list of ISBNs with Goodreads ratings (no reviews):
{"targets": ["9781250301697", "978-0-06-231609-7"],"scrapeReviews": false,"responseFormat": "concise"}
Only critical reviews for a competitor title:
{"targets": ["https://www.goodreads.com/book/show/4671.The_Great_Gatsby"],"resultsPerTarget": 30,"maxRating": 2,"reviewsLanguage": "en"}
| Input | What it controls |
|---|---|
targets | Goodreads book, author, list or series URLs, ISBN-10/ISBN-13 numbers, or search phrases |
resultsPerTarget | Most rows per target (default 50) |
scrapeReviews | Add review rows for book URLs (default on) |
minRating, maxRating | Star range for reviews, 1 to 5 |
reviewsLanguage | all (default) or a language code such as en, es, fr |
responseFormat | detailed (default) or concise |
proxyConfiguration | Proxy for Goodreads; Apify Residential by default |
Output: Goodreads data you receive
A real book row (description shortened):
{"itemType": "book","goodreadsId": "40097951","title": "The Silent Patient","author": "Alex Michaelides","authorUrl": "https://www.goodreads.com/author/show/17621440.Alex_Michaelides","averageRating": 4.16,"ratingsCount": 3636151,"reviewsCount": 313960,"isbn": "1250301696","isbn13": "9781250301697","pages": 336,"publisher": "Celadon Books","publishedAt": "2019-02-05","language": "English","format": "Hardcover","genres": ["Thriller", "Mystery", "Fiction", "Book Club", "Psychological Thriller"],"description": "Alicia Berenson's life is seemingly perfect...","imageUrl": "https://m.media-amazon.com/images/S/compressed.photo.goodreads.com/books/1668782119i/40097951.jpg","series": null,"ratingsDistribution": { "1": 39043, "2": 132953, "3": 578084, "4": 1339109, "5": 1546962 },"url": "https://www.goodreads.com/book/show/40097951-the-silent-patient","scrapedAt": "2026-10-02T11:30:04.033Z"}
A review row from the same book (reviewer shown with example values):
{"itemType": "review","goodreadsId": "2672409529","url": "https://www.goodreads.com/review/show/2672409529","title": "The Silent Patient","author": "Alex Michaelides","reviewerName": "Sam Example","reviewerUrl": "https://www.goodreads.com/user/show/1234567-sam-example","rating": 1,"reviewText": "I've been a bit hesitant about writing this review since the majority of readers really enjoyed this debut...","reviewDate": "2019-01-13","likesCount": 3058,"commentsCount": 96,"shelves": []}
| Field | What it contains |
|---|---|
itemType | book, review, author, list_item, series_item or search_result |
title, author, averageRating, ratingsCount, reviewsCount | Core book facts |
isbn, isbn13, asin, pages, publisher, publishedAt, format, language | Edition details |
genres, series, awards, ratingsDistribution | Classification and rating breakdown |
rating, reviewText, reviewDate, likesCount, commentsCount | Review content and engagement |
reviewerName, reviewerUrl | Who wrote the review |
goodreadsId, url | Goodreads identifiers and page |
Example workflow: reader research for a new thriller
A publisher's marketing team is positioning a new psychological thriller. They paste three comparable titles with maxRating at 2 to read what readers disliked, then run them again with minRating at 5 to collect the phrases readers loved. The genres and ratingsDistribution fields go into the comp-title sheet. They continue with Amazon Reviews Scraper on the same titles to compare buyer reviews.
Pricing
This Actor uses Pay per event plus Apify platform usage. You pay a small start event and one event per row saved, whether it is a book, review or search result, plus the platform usage of the job. The live Pricing tab on this page shows the current price.
- 1 book URL with
resultsPerTarget25 = 1 book event + up to 25 more row events + platform usage. scrapeReviews: falsesaves the book row only.resultsPerTargetcaps each target, so it doubles as a cost ceiling.
Goodreads data with AI agents (MCP)
Connect this Actor to an AI agent through Apify MCP and ask in plain language:
Look up "Project Hail Mary" on Goodreads and summarise what readers who gave it 1 or 2 stars complained about.
Agent checklist:
- Put book URLs or search phrases in
targets. - Set
minRating/maxRatingfor the review slice the user wants. - Use
responseFormat: "concise"for long review lists. - Read rows with
get-dataset-itemsand group them byitemType.
API example
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~goodreads-all-in-one-scraper/run-sync-get-dataset-items" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"targets": ["https://www.goodreads.com/book/show/5907.The_Hobbit"], "resultsPerTarget": 10}'
Related review tools from the same developer
| Your next step | Use | Why |
|---|---|---|
| When you compare reader reviews with buyer reviews | Amazon Reviews Scraper | Amazon ratings and review text |
| When you research reviews of an app or reading platform | Google Play Store Scraper | App details and user reviews |
Best results
| Starting situation | Helpful action | Expected outcome |
|---|---|---|
| Only book metadata needed | Set scrapeReviews to false | One book row per URL |
| Sentiment research | Use minRating or maxRating | Reviews from one end of the scale |
| Unknown exact title | Put the title and author in targets as a phrase | Matching books from Goodreads search |
| A reading list | Paste a Goodreads list or series URL | Every book on it in order |
Builder's note
I found that people asking for Goodreads data usually start from a mix of titles and links, so one targets box accepts all of them. I learned that Goodreads shows the first page of top reviews on each public book page, so the Actor collects those reviews with their review links and stops paging once Goodreads repeats the same batch.
FAQ
Do I need a Goodreads account?
No. The Actor reads public Goodreads pages.
How many reviews does a book give?
The top reviews Goodreads shows on the public book page, usually around thirty per book. The Actor stops paging when Goodreads repeats the same batch, so a book can return fewer reviews than resultsPerTarget. resultsPerTarget caps the number saved.
Can I search by title instead of URL?
Yes. Put a phrase such as dune frank herbert in targets.
Can I look up books by ISBN?
Yes. Put an ISBN-10 or ISBN-13 in targets (hyphens are fine). The Actor opens the matching Goodreads book page and returns its book row, plus reviews when scrapeReviews is on. An ISBN that Goodreads does not know returns no row and is not charged.
Which languages can I filter reviews by?
en, es, fr, de, it, pt, nl, ru, ja, zh and ko, or all.
Does it return reviewer profiles?
Each review carries reviewerName and reviewerUrl.
Responsible use
This Actor collects public Goodreads book data and reviews. Use it for research, respect reviewers' privacy and follow Goodreads' terms and the laws that apply to you, such as GDPR. Read Apify's guide on whether web scraping is legal for more context. Goodreads is a trademark of Goodreads LLC. This independent Actor is not affiliated with, associated with, or endorsed by Goodreads. For questions or bugs, open a ticket in the Issues tab.