Goodreads Scraper — Books, ISBN, Reviews & Authors avatar

Goodreads Scraper — Books, ISBN, Reviews & Authors

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Goodreads Scraper — Books, ISBN, Reviews & Authors

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

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

22

Total users

3

Monthly active users

16 hours ago

Last modified

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. ratingsDistribution gives 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"
}
InputWhat it controls
targetsGoodreads book, author, list or series URLs, ISBN-10/ISBN-13 numbers, or search phrases
resultsPerTargetMost rows per target (default 50)
scrapeReviewsAdd review rows for book URLs (default on)
minRating, maxRatingStar range for reviews, 1 to 5
reviewsLanguageall (default) or a language code such as en, es, fr
responseFormatdetailed (default) or concise
proxyConfigurationProxy 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": []
}
FieldWhat it contains
itemTypebook, review, author, list_item, series_item or search_result
title, author, averageRating, ratingsCount, reviewsCountCore book facts
isbn, isbn13, asin, pages, publisher, publishedAt, format, languageEdition details
genres, series, awards, ratingsDistributionClassification and rating breakdown
rating, reviewText, reviewDate, likesCount, commentsCountReview content and engagement
reviewerName, reviewerUrlWho wrote the review
goodreadsId, urlGoodreads 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 resultsPerTarget 25 = 1 book event + up to 25 more row events + platform usage.
  • scrapeReviews: false saves the book row only.
  • resultsPerTarget caps 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:

  1. Put book URLs or search phrases in targets.
  2. Set minRating / maxRating for the review slice the user wants.
  3. Use responseFormat: "concise" for long review lists.
  4. Read rows with get-dataset-items and group them by itemType.

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}'
Your next stepUseWhy
When you compare reader reviews with buyer reviewsAmazon Reviews ScraperAmazon ratings and review text
When you research reviews of an app or reading platformGoogle Play Store ScraperApp details and user reviews

Best results

Starting situationHelpful actionExpected outcome
Only book metadata neededSet scrapeReviews to falseOne book row per URL
Sentiment researchUse minRating or maxRatingReviews from one end of the scale
Unknown exact titlePut the title and author in targets as a phraseMatching books from Goodreads search
A reading listPaste a Goodreads list or series URLEvery 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.