VOOZH about

URL: https://apify.com/thescrapelab/apify-goodreads-scraper

โ‡ฑ Goodreads Books, ISBN & Reviews Scraper API ยท Apify


๐Ÿ‘ Goodreads Books, ISBN & Reviews Scraper API avatar

Goodreads Books, ISBN & Reviews Scraper API

Pricing

from $1.20 / 1,000 results

Go to Apify Store

Goodreads Books, ISBN & Reviews Scraper API

Scrape Goodreads books, ISBN lookups, reviews, ratings, authors, series, genres, and book metadata from URLs or searches into clean JSON datasets.

Pricing

from $1.20 / 1,000 results

Rating

0.0

(0)

Developer

๐Ÿ‘ Inus Grobler

Inus Grobler

Maintained by Community

Actor stats

4

Bookmarked

48

Total users

22

Monthly active users

15 days

Issues response

a day ago

Last modified

Share

At a glance: what it does is extract public Goodreads book, author, series, search, and review data; input examples include Goodreads URLs, ISBNs, titles, authors, and series pages; output examples are structured dataset rows; use cases include catalog enrichment and reader sentiment research; limitations, troubleshooting, and pricing/cost notes are covered below.

Goodreads Books, ISBN & Reviews Scraper API extracts public data from Goodreads into clean JSON datasets. Use it as a Goodreads scraper, Goodreads API alternative, ISBN lookup tool, book metadata extractor, and public Goodreads reviews scraper for publishing, catalog enrichment, reader sentiment, and book market research.

This Actor can start from Goodreads URLs, ISBN-10 or ISBN-13 values, book titles, author names, series URLs, search URLs, or mixed text queries such as The Hobbit J.R.R. Tolkien.

What does this Goodreads scraper do?

The Actor scrapes public Goodreads pages and search results, then returns structured records for books, authors, series, search matches, and reviews. It is built for workflows that need Goodreads book metadata, ratings, review counts, ISBN data, book covers, genres, shelves, page counts, authors, publication details, and public review text without maintaining a custom scraper.

It does not require Goodreads login credentials and does not scrape private account data.

Why scrape Goodreads?

  • Build book recommendation datasets with Goodreads ratings, reviews, genres, and authors.
  • Enrich book catalogs with covers, ISBN/ISBN13, ASIN, page count, language, format, publication data, and Goodreads IDs.
  • Monitor book ratings and review counts for authors, publishers, literary agencies, and competitors.
  • Analyze reader sentiment from public Goodreads reviews and star ratings.
  • Discover books, authors, series, and related editions from title, author, or ISBN searches.
  • Feed Goodreads data into BI tools, spreadsheets, databases, CRM systems, Make, n8n, Zapier, or LLM workflows.

Goodreads data you can extract

  • Book metadata: title, full title, subtitle, description, cover image, Goodreads ID, ISBN, ISBN13, ASIN, page count, language, format, publication date, and first published date.
  • Ratings and review metrics: average rating, ratings count, reviews count, star rating, likes, comments, and review dates when visible.
  • Public reviews: reviewer name, reviewer profile URL, review text, star rating, spoiler marker, likes, comments, and timestamps when available.
  • Author data: author name, Goodreads ID, biography, photo, website links, ratings, reviews, and bibliography summaries.
  • Series data: series title, description, linked books, book order, and visible authors.
  • Discovery data: Goodreads search results for book titles, ISBNs, author names, and mixed queries.

How to scrape Goodreads

  1. Open the Goodreads Scraper on Apify.
  2. Add one or more targets such as a Goodreads book URL, ISBN, book title, author name, or series URL.
  3. Choose books mode for metadata and search results, or reviews mode to collect public reviews from matched books.
  4. Select a crawl depth: shallow, standard, or deep.
  5. Set maxItems, maxSearchResultsPerQuery, or maxReviewsPerBook when you need predictable cost and runtime.
  6. Keep Apify Proxy enabled for more reliable production runs.
  7. Start the Actor and download the dataset as JSON, JSONL, CSV, HTML, XML, RSS, or Excel.

Input

FieldTypeDescription
targetsArray of stringsGoodreads URLs, ISBN-10 or ISBN-13 values, book titles, author names, series URLs, search URLs, or mixed text queries.
depthStringControls how much related Goodreads data is followed. Use shallow, standard, or deep.
searchModeStringUse books for Goodreads book search, ISBN lookup, and metadata. Use reviews to collect public reviews from matched books.
maxReviewsPerBookIntegerOptional cap for public reviews collected from each opened book.
maxSearchResultsPerQueryIntegerOptional cap for Goodreads search matches opened per query. Lower values reduce runtime and cost.
maxItemsIntegerOptional cap for total dataset rows produced by the run.
proxyConfigurationObjectStandard Apify proxy settings. Apify Proxy is recommended for reliable production scraping.

Example inputs

ISBN lookup and book metadata

{
"targets":["9780743273565"],
"searchMode":"books",
"depth":"standard",
"maxSearchResultsPerQuery":3,
"maxItems":10,
"proxyConfiguration":{
"useApifyProxy":true
}
}

Search Goodreads by book title

{
"targets":["Dune"],
"searchMode":"books",
"depth":"standard",
"maxSearchResultsPerQuery":5,
"maxItems":25,
"proxyConfiguration":{
"useApifyProxy":true
}
}

Scrape a Goodreads book URL with reviews

{
"targets":[
"https://www.goodreads.com/book/show/11588.The_Shining"
],
"searchMode":"reviews",
"depth":"standard",
"maxReviewsPerBook":100,
"maxItems":125,
"proxyConfiguration":{
"useApifyProxy":true
}
}

Run multiple Goodreads targets at once

{
"targets":[
"9780441172719",
"Frank Herbert",
"https://www.goodreads.com/book/show/44767458-dune"
],
"searchMode":"books",
"depth":"deep",
"maxSearchResultsPerQuery":10,
"maxItems":100,
"proxyConfiguration":{
"useApifyProxy":true
}
}

Output

Results are saved to the default Apify dataset as structured JSON. In the default entities output mode, new records are pushed to the dataset while the Actor is still running, so you can inspect or integrate results before the crawl finishes. You can download the dataset extracted by this Goodreads Scraper in formats such as JSON, JSONL, CSV, HTML, XML, RSS, or Excel.

The Actor can return these record types:

  • search_result - matched Goodreads search result.
  • book - Goodreads book details and metadata.
  • author - Goodreads author profile details.
  • series - Goodreads series details.
  • review - public Goodreads review item.

Common output fields include recordType, title, fullTitle, name, author, description, reviewText, goodreadsId, isbn, isbn13, averageRating, ratingsCount, reviewsCount, starRating, pageCount, firstPublishedDate, sourceUrl, canonicalUrl, and scrapedAt.

Example dataset item

{
"recordType":"book",
"title":"The Great Gatsby",
"fullTitle":"The Great Gatsby",
"authors":[
{
"name":"F. Scott Fitzgerald",
"profileUrl":"https://www.goodreads.com/author/show/3190.F_Scott_Fitzgerald"
}
],
"averageRating":3.93,
"ratingsCount":6030303,
"reviewsCount":134725,
"pageCount":180,
"goodreadsId":"41733839",
"workId":"245494",
"canonicalUrl":"https://www.goodreads.com/en/book/show/41733839-the-great-gatsby",
"sourceUrl":"https://www.goodreads.com/book/show/4671.The_Great_Gatsby",
"scrapedAt":"2026-05-20T15:38:44.926Z"
}

The Actor also writes a run summary to the default key-value store, including scraped item totals, failed URL count, blocked request count, crawl mode, and output mode.

Use this Goodreads scraper with the Apify API

You can run this Goodreads Scraper from Apify Console, the REST API, or the official Apify API clients. The examples below start the Actor, wait for the run to finish, and read the default dataset.

Python API example

import os
from apify_client import ApifyClient
ACTOR_ID ="thescrapelab/Apify-Goodreads-Scraper"
client = ApifyClient(os.environ["APIFY_TOKEN"])
run_input ={
"targets":["9780743273565","The Great Gatsby"],
"searchMode":"books",
"depth":"standard",
"maxSearchResultsPerQuery":5,
"maxReviewsPerBook":25,
"maxItems":50,
"proxyConfiguration":{
"useApifyProxy":True,
},
}
run = client.actor(ACTOR_ID).call(run_input=run_input)
if run isNone:
raise RuntimeError("Actor run failed")
dataset_id = run["defaultDatasetId"]
for item in client.dataset(dataset_id).iterate_items():
print(item)

JavaScript API example

import{ ApifyClient }from'apify-client';
constACTOR_ID='thescrapelab/Apify-Goodreads-Scraper';
const client =newApifyClient({
token: process.env.APIFY_TOKEN,
});
const runInput ={
targets:['9780743273565','The Great Gatsby'],
searchMode:'books',
depth:'standard',
maxSearchResultsPerQuery:5,
maxReviewsPerBook:25,
maxItems:50,
proxyConfiguration:{
useApifyProxy:true,
},
};
const run =await client.actor(ACTOR_ID).call(runInput);
const datasetId = run.defaultDatasetId;
const{ items }=await client.dataset(datasetId).listItems({clean:true});
for(const item of items){
console.log(item);
}

Tips for better Goodreads scraping results

  • Use ISBNs when you need exact book lookup or catalog enrichment.
  • Use direct Goodreads URLs when you already know the exact book, author, or series page.
  • Use standard depth for most metadata extraction and review workflows.
  • Use deep depth when you need richer related data or more linked entities.
  • Set maxReviewsPerBook when you need predictable run size, cost, and runtime.
  • Keep Apify Proxy enabled for production runs.

Pricing and cost control

This Actor is designed to keep small Goodreads lookups inexpensive while still supporting deeper book and review extraction. Runs that only search by title or ISBN usually finish quickly. Runs that open many Goodreads book pages, use deep depth, or collect many reviews can take longer because Goodreads may require browser fallback for some pages.

To control cost:

  • Start with shallow depth and a low maxSearchResultsPerQuery when you only need discovery results.
  • Use standard depth for book metadata and public review workflows.
  • Set maxItems for a hard cap on dataset rows.
  • Set maxReviewsPerBook for review runs so a popular book does not produce a larger run than expected.
  • Prefer exact ISBNs or direct Goodreads URLs when possible.

For the best client experience, test with a small input first, then increase limits once the output matches your workflow.

Troubleshooting common problems

The run returned no results

Check that the target is a public Goodreads URL, valid ISBN, book title, author name, or series URL. Very rare titles, misspellings, or pages unavailable in your region can return no matches.

The run is slower than expected

Goodreads sometimes blocks lightweight HTTP requests for detail pages. When that happens, the Actor falls back to a browser-based crawl so it can still return useful data. Reduce maxSearchResultsPerQuery, maxReviewsPerBook, or maxItems for faster, cheaper runs.

Some review fields are missing

Goodreads does not expose every review field for every book or region. The Actor returns the fields that are publicly visible at crawl time.

Duplicate targets produced fewer rows than expected

The Actor deduplicates repeated Goodreads URLs and repeated output records so you do not pay for the same useful row multiple times.

FAQ

Can I scrape Goodreads by ISBN?

Yes. Add an ISBN-10 or ISBN-13 value to targets, for example 9780743273565. The Actor searches Goodreads and follows the matched book page when available.

Can I scrape Goodreads reviews?

Yes. Use searchMode: "reviews" or start from a Goodreads book URL and set maxReviewsPerBook to control how many public reviews are collected.

Can I use this as a Goodreads API?

Yes. The Actor works well as a Goodreads data API for public book metadata, ISBN lookup, author research, rating data, and review extraction. You can run it from Apify Console, the Apify API, Python, JavaScript, Make, n8n, Zapier, or scheduled tasks.

Is it legal to scrape Goodreads?

This Actor extracts public Goodreads data only. You should use the results responsibly and make sure your use case complies with applicable laws, Goodreads terms, and privacy rules. If your workflow involves personal data, consult qualified legal advice.

Limitations

  • The Actor extracts public Goodreads data only.
  • Direct Goodreads review pages can be login-gated; public reviews visible from book pages are the recommended review source.
  • Goodreads page availability, visible fields, and review access can vary by book, region, or Goodreads interface changes.
  • Very broad searches, deep crawling, and high review caps can produce larger runs and require more time.

You might also like

Goodreads Book Scraper

crawlerbros/goodreads-scraper

Extract book data from Goodreads: titles, authors, ratings, reviews, genres, ISBN, publisher, and more. HTTP-based, no proxy required.

29

Goodreads Scraper

automation-lab/goodreads-scraper

Scrape Goodreads books โ€” titles, authors, ratings, reviews, genres, and covers. Search any topic and get structured book data.

๐Ÿ‘ User avatar

Stas Persiianenko

10

๐Ÿ“š Goodreads Book Scraper

easyapi/goodreads-book-scraper

Extract comprehensive book data from Goodreads search results. Get detailed information about books, authors, ratings, and more. Perfect for market research, data analysis, and building book recommendation systems. ๐Ÿ”๐Ÿ“š

Goodreads Scraper

epctex/goodreads-scraper

Scrape goodreads.com for data on millions of books. Crawl book details for images, ISBN, author, description, title, buy links, number of reviews, page number, language, and all other details. You can specify search terms, filters, and much more.

Goodreads Review Scraper ๐Ÿ“š

easyapi/goodreads-review-scraper

A powerful scraper that extracts detailed book reviews from Goodreads, including review text, ratings, user information, and engagement metrics. Perfect for book analysis, reader sentiment research, and literary trend tracking.

Goodreads Scraper - Books, Authors, Ratings, ISBN & Reviews

makework36/goodreads-scraper

Scrape Goodreads books, authors and lists. Title, ISBN, pages, format, language, rating, ratings count, reviews count, author. HTTP only, $5/1K.

๐Ÿ‘ User avatar

deusex machine

3

Goodreads Books Scraper

gio21/goodreads-scraper

Search and scrape books from Goodreads by keyword or list URL. Extract title, author, rating, review count, pages, ISBN, genres, and description. Pay per result.

Goodreads Reviews Scraper

scraped/goodreads-review-scraper

Scrape reviews for books on Goodreads

Goodreads Scraper

lulzasaur/goodreads-scraper

Scrape Goodreads book data. Search by title, author, or ISBN. Returns ratings, reviews, genres, page counts, and publication info.

Related articles

How to scrape Goodreads books and reviews without using Goodreads API
Read more