Goodreads Scraper - Search, Books, Genres & Authors
Pricing
from $2.00 / 1,000 book details
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
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
- Click Try for free (or Start) on the Actor page.
- 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.
- Adjust the optional limits (pages per search, pages per bibliography, reviews per book) if needed.
- Click Start and watch the run — results stream into the Dataset tab as they're scraped.
- Export the dataset as JSON, CSV, Excel, HTML, or XML, or pull it via the API/integration of your choice.
Input
| Field | Type | Description |
|---|---|---|
startUrls | array | Any Goodreads URLs; page type is auto-detected. |
searchQueries | array of strings | Plain-text search terms, alternative to search URLs. |
genres | array of strings | Genre/shelf slugs, e.g. science-fiction. |
maxSearchPages | integer | Max result pages per search (0 = all). Default 3. |
includeAuthorBooks | boolean | Also crawl an author's full bibliography. Default true. |
maxAuthorBookPages | integer | Max bibliography pages per author (0 = all). Default 0. |
maxReviews | integer | Sample reviews to include per book (0–30). Default 10. |
proxyConfiguration | object | Optional 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
| Field | Present on | Description |
|---|---|---|
type | all | search_result / book / genre_book / author / author_book |
bookId / authorId | book-related / author-related | Numeric Goodreads ID |
title, url, coverImageUrl | search, genre, author books | Basic listing fields |
averageRating, ratingsCount | most types | Aggregate rating stats |
isbn, isbn13, format, numPages, publisher, language | book | Edition metadata |
genres, series, awards, characters, places | book | Classification & work metadata |
reviewsSample | book | Array of { reviewerName, rating, text, likeCount, createdAt } |
bio, birthDate, deathDate, website, followersCount | author | Profile 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:
| Event | Charged for | Price / 1,000 |
|---|---|---|
search-result | each book row in search results | $0.50 |
genre-book | each book row in a genre/shelf listing | $0.50 |
author-book | each book row in an author's bibliography | $1.00 |
author-profile | each author profile scraped | $2.00 |
book-detail | each full book record (metadata + sample reviews) | $2.00 |
apify-actor-start | run 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
maxSearchPagesandmaxAuthorBookPagesat their defaults for quick runs; raise them (or set0) for exhaustive crawls. - Set
maxReviewsto0if 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
pageparameter 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.