Goodreads Scraper - Search, Books, Genres & Authors avatar

Goodreads Scraper - Search, Books, Genres & Authors

Pricing

from $2.00 / 1,000 book details

Go to Apify Store
Goodreads Scraper - Search, Books, Genres & Authors

Goodreads Scraper - Search, Books, Genres & Authors

Scrape Goodreads book search results, book details (ratings, ISBN, genres, series, sample reviews), genre/shelf listings, and author profiles & bibliographies.

Pricing

from $2.00 / 1,000 book details

Rating

0.0

(0)

Developer

One House

One House

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Goodreads Scraper is an all-in-one Goodreads scraper that extracts book search results, full book details, genre/shelf listings, and author profiles & bibliographies — all from one Actor. Just paste any Goodreads URL, a search term, or a genre name and the Actor figures out what kind of page it is and scrapes the right data. Run it on demand, on a schedule, or through the API — with automatic proxy rotation and structured JSON/CSV/Excel output.

What does Goodreads Scraper do?

This Actor covers the five most common ways people browse Goodreads:

  • Search — book title, author, or ISBN → ranked list of matching books with ratings.
  • Book detail — full metadata for a single book: description, ISBN/ISBN-13, page count, publisher, genres, series, awards, characters, places, rating breakdown, and a sample of real reviews.
  • Genre / shelf — the top books Goodreads shelves under a genre tag (e.g. science-fiction, historical-romance).
  • Author profile — bio, birth/death dates, website, follower count, and aggregate rating across all their books.
  • Author bibliography — the author's full, paginated list of books.

You don't need to pick a "mode" — every URL you provide is automatically classified and routed to the right parser.

Why use Goodreads Scraper?

  • Market & competitive research — track how a book, genre, or author is trending in ratings and review volume.
  • Publishing & marketing — build catalogs, compare editions, or monitor a backlist author's bibliography.
  • Recommendation & content apps — bulk-import book metadata, genres, and series data.
  • Academic / NLP research — collect review text samples at scale for sentiment or literary analysis.

Running it on Apify gets you proxy rotation, scheduling, webhooks, and API access out of the box — no need to maintain your own scraping infrastructure or handle Goodreads' HTML changes yourself.

How to use Goodreads Scraper

  1. Click Try for free (or Start) on the Actor page.
  2. Under Goodreads URLs, paste one or more links — a search results page, a book page, an author page, an author's book-list page, or a genre/shelf page. You can also use the Search queries or Genres fields instead of building URLs by hand.
  3. Adjust the optional limits (pages per search, pages per bibliography, reviews per book) if needed.
  4. Click Start and watch the run — results stream into the Dataset tab as they're scraped.
  5. Export the dataset as JSON, CSV, Excel, HTML, or XML, or pull it via the API/integration of your choice.

Input

FieldTypeDescription
startUrlsarrayAny Goodreads URLs; page type is auto-detected.
searchQueriesarray of stringsPlain-text search terms, alternative to search URLs.
genresarray of stringsGenre/shelf slugs, e.g. science-fiction.
maxSearchPagesintegerMax result pages per search (0 = all). Default 3.
includeAuthorBooksbooleanAlso crawl an author's full bibliography. Default true.
maxAuthorBookPagesintegerMax bibliography pages per author (0 = all). Default 0.
maxReviewsintegerSample reviews to include per book (0–30). Default 10.
proxyConfigurationobjectOptional Apify Proxy.

See the Input tab for the full schema with defaults and examples.

Output

Every dataset item has a type field (search_result, book, genre_book, author, author_book) so you can filter or split the dataset by page type. Example — a book detail item:

{
"type": "book",
"bookId": 44767458,
"title": "Dune",
"titleComplete": "Dune (Dune, #1)",
"url": "https://www.goodreads.com/book/show/44767458-dune",
"description": "Set on the desert planet Arrakis, Dune is the story of...",
"author": "Frank Herbert",
"authorUrl": "https://www.goodreads.com/author/show/58.Frank_Herbert",
"isbn13": "9780593099322",
"format": "Hardcover",
"numPages": 658,
"publisher": "Ace",
"genres": ["Science Fiction", "Fiction", "Fantasy", "Classics"],
"series": [{ "name": "Dune", "url": "https://www.goodreads.com/series/45935-dune", "position": "1" }],
"averageRating": 4.29,
"ratingsCount": 1694671,
"textReviewsCount": 88168,
"reviewsSample": [
{
"reviewerName": "Rajat Ubhaykar",
"rating": 5,
"text": "In my head, the purpose of this review is...",
"likeCount": 3018
}
]
}

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Data table

FieldPresent onDescription
typeallsearch_result / book / genre_book / author / author_book
bookId / authorIdbook-related / author-relatedNumeric Goodreads ID
title, url, coverImageUrlsearch, genre, author booksBasic listing fields
averageRating, ratingsCountmost typesAggregate rating stats
isbn, isbn13, format, numPages, publisher, languagebookEdition metadata
genres, series, awards, characters, placesbookClassification & work metadata
reviewsSamplebookArray of { reviewerName, rating, text, likeCount, createdAt }
bio, birthDate, deathDate, website, followersCountauthorProfile fields

Pricing / cost estimation

Goodreads Scraper uses Pay-Per-Event pricing — you only pay for the records it actually returns, not for run time or compute. Lightweight list rows (search, genre, bibliography) are priced separately from the richer, more expensive-to-parse book and author records:

EventCharged forPrice / 1,000
search-resulteach book row in search results$0.50
genre-bookeach book row in a genre/shelf listing$0.50
author-bookeach book row in an author's bibliography$1.00
author-profileeach author profile scraped$2.00
book-detaileach full book record (metadata + sample reviews)$2.00
apify-actor-startrun start (infrequent, charged once per run)$0.00005

There's no separate compute-unit charge on top — it's HTTP-only (no headless browser), so runs are fast and the event price already covers it. For example, scraping 1 book detail page, 1 author profile, and a 50-book genre listing costs roughly $0.002 + $0.002 + 50 × $0.0005 = $0.03.

Tips / advanced options

  • Leave maxSearchPages and maxAuthorBookPages at their defaults for quick runs; raise them (or set 0) for exhaustive crawls.
  • Set maxReviews to 0 if you only need metadata — it skips review parsing entirely and slightly speeds up book requests.
  • Genre/shelf listings are capped at ~50 books by Goodreads itself for anonymous visitors — there is no page parameter or pagination control that unlocks more, with or without a proxy. If you need broader genre coverage, combine several related shelf slugs (e.g. science-fiction, sci-fi-fantasy, space-opera).
  • Turn on Apify Proxy for large, sustained runs to reduce the chance of rate limiting.

FAQ, disclaimers, and support

This Actor only reads publicly accessible Goodreads pages — it does not log in, does not access private shelves/lists, and does not modify any data on Goodreads. Scraping public data is generally permitted, but you are responsible for complying with Goodreads' Terms of Service and applicable law in your jurisdiction, especially for commercial use.

Found a page type this Actor doesn't handle correctly, or a field that's missing? Open an issue on the Actor's Issues tab. Need a custom variant (e.g. deeper review pagination, Listopia lists, quotes)? Reach out — custom development is available.