Goodreads Books Scraper
Pricing
from $0.90 / 1,000 results
Goodreads Books Scraper
Efficiently extract detailed book data with the Goodreads Books Scraper. Ideal for building reading lists or analyzing metadata. Note: For bulk scraping of more than 50 books, providing JSON cookies is essential to ensure seamless access and reliable results.
Pricing
from $0.90 / 1,000 results
Rating
5.0
(3)
Developer
Shahid Irfan
Maintained by CommunityActor stats
2
Bookmarked
24
Total users
2
Monthly active users
21 days ago
Last modified
Categories
Share
What does Goodreads Book Scraper do?
Goodreads Book Scraper collects structured book data from public Goodreads shelves and search results. Give it a shelf name such as "fantasy" or "science-fiction", or a list of shelf URLs, and it returns complete records with title, author, rating, rating count, review count, description, ISBN, publisher, publication date, genres, cover image, and book URL. It is built for researchers, analysts, content teams, and developers who need a clean, queryable book dataset without manual copy-paste.
Goodreads does not offer a public API for bulk book metadata collection. This Actor fills that gap by turning public Goodreads pages into structured data that you can download, search, analyze, and feed into other systems.
Why use Goodreads Book Scraper?
- Complete book records - Collect detailed fields for every book, not just titles and links.
- Shelf and search driven - Start from a single shelf name, multiple shelf URLs, or a Goodreads search query.
- Volume control - Set
results_wantedandmax_pagesto match your project size and budget. - Automation-ready output - Export results to JSON, CSV, Excel, XML, or send them to connected apps.
- Repeatable monitoring - Schedule runs to track ratings, popularity, and genre movement over time.
- No login required - Collect from publicly available Goodreads data without an account or cookies.
What data can you extract from Goodreads?
| Field | Description |
|---|---|
title | Book title |
author | Primary author |
rating | Average rating |
ratingCount | Total ratings count |
reviewCount | Total review count |
description | Book description |
isbn | ISBN-13 when available |
publisher | Publisher name |
publishDate | Publication date in YYYY-MM-DD |
format | Book format such as Hardcover or Paperback |
pages | Number of pages |
genres | Genre list |
image | Cover image URL |
url | Goodreads book URL |
How to use Goodreads Book Scraper
- Open the Actor on Apify Store.
- Enter a shelf name such as
fantasy, or add one or more Goodreads shelf URLs. - Set the maximum number of books you want and the page limit.
- Optionally configure proxy settings for long, high-volume runs.
- Run the Actor.
- Download the dataset or connect it to your workflow.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | Array | No | [{"url":"https://www.goodreads.com/shelf/show/fantasy"}] | List of Goodreads shelf URLs to collect from. Used as the seed when provided. |
shelf | String | No | fantasy | Name of the Goodreads shelf to scrape, such as fantasy, science-fiction, or romance. Used when no URL list is provided. |
results_wanted | Integer | No | 20 | Maximum number of books to save. Set a reasonable limit to control run time and cost. |
max_pages | Integer | No | 10 | Safety limit on the number of shelf or search pages to scan while discovering book URLs. |
proxyConfiguration | Object | No | {"useApifyProxy": false} | Proxy settings for the run. Residential proxies are recommended for stability on long runs but are not required for normal pagination. |
Output Data
Each dataset item contains:
| Field | Type | Description |
|---|---|---|
title | String | Book title |
author | String | Primary author |
rating | Number | Average rating |
ratingCount | Number | Total ratings count |
reviewCount | Number | Total review count |
description | String | Book description |
image | String | Cover image URL |
isbn | String | ISBN-13 when available |
publisher | String | Publisher name |
publishDate | String | Publication date in YYYY-MM-DD |
format | String | Book format when available |
pages | Number | Number of pages |
genres | Array | Genre list |
url | String | Goodreads book URL |
_source | String | Source marker for the collection method |
Usage Examples
Basic Shelf Run
Collect the first set of books from a shelf:
{"shelf": "fantasy","results_wanted": 100,"max_pages": 10}
Multiple Shelf URLs
Collect books from more than one shelf in a single run:
{"startUrls": [{ "url": "https://www.goodreads.com/shelf/show/science-fiction" },{ "url": "https://www.goodreads.com/shelf/show/romance" }],"results_wanted": 200,"max_pages": 20}
High-Volume Run with Proxy
Collect a larger dataset with residential proxy settings for improved stability:
{"shelf": "mystery","results_wanted": 500,"max_pages": 40,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Sample Output
{"title": "The Name of the Wind","author": "Patrick Rothfuss","rating": 4.52,"ratingCount": 985432,"reviewCount": 45678,"description": "Told in Kvothe's own voice, this is the tale of the magically gifted young man who grows to be the most notorious wizard his world has ever seen.","image": "https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1270352123l/186074.jpg","isbn": "9780756404741","publisher": "DAW Books","publishDate": "2007-03-27","format": "Hardcover","pages": 662,"genres": ["Fantasy", "Fiction", "Adventure"],"url": "https://www.goodreads.com/book/show/186074.The_Name_of_the_Wind","_source": "goodreads"}
Tips for Best Results
Start Small First
- Run with
results_wantedbetween20and100to validate output quickly. - Increase limits after confirming the target shelf returns the books you expect.
Match Page Limits to Volume
- Raise
max_pageswhen targeting larger collections. - Keep
max_pagesproportional toresults_wantedso discovery has enough pages to reach your target.
Use Proxies for Long Runs
- Enable residential proxy settings for large or repeated runs.
- Start with default retry behavior and focus on steady throughput.
Validate Output Early
- Check the first items for field completeness.
- Confirm titles, authors, ratings, and genres match your expectations before scheduling big runs.
Expect Source Data Limits
- Some books carry incomplete public metadata. The Actor saves the fields that are available and continues with the next record.
- Public pages can change over time. If a shelf no longer returns results, report the issue through the Issues tab.
Integrations
- Google Sheets - Send scraped books to spreadsheets for quick analysis.
- Airtable - Build searchable book intelligence tables.
- Looker Studio or Power BI - Visualize rating and genre trends.
- Zapier or Make - Trigger downstream automations with new datasets.
- Webhooks - Feed your own APIs and pipelines after each run.
- API - Access datasets programmatically from your own systems.
Export Formats
- JSON - Best for APIs and programmatic processing.
- CSV - Spreadsheet-friendly analysis.
- Excel - Business reporting workflows.
- XML - Legacy pipeline compatibility.
Frequently Asked Questions
Can I export the data to CSV or Excel?
Yes. Apify datasets can be downloaded in CSV, Excel, JSON, XML, and other supported formats.
Can I run this Actor on a schedule?
Yes. You can schedule the Actor in Apify Console to refresh data hourly, daily, weekly, or at another interval.
Is this Actor suitable for non-technical users?
Yes. The Actor can be run from Apify Console with form-based inputs, and the output can be downloaded without writing code.
Why do I see fewer books than requested?
Public Goodreads shelf pages can repeat a first-page set. The Actor continues discovery across additional public pages and related results to reach your requested volume. If the source does not expose enough unique books, the run stops and saves what it found.
Do I need a Goodreads account or cookies?
No. The Actor collects publicly available data without authentication.
How many books can I collect?
Use results_wanted and max_pages to control volume. Increase both for larger runs, and consider proxy settings for high-volume collection.
What should I do if some fields are missing?
Some books have incomplete public metadata. Check multiple results before assuming the Actor failed, and report persistent issues through the Issues tab.
Is it legal to scrape Goodreads?
Scraping public web data can be legal, but you are responsible for complying with applicable laws, website terms, and privacy rules.
Related Actors
- Goodreads Review Scraper - Collect reviews for Goodreads books.
- Goodreads Quotes - Collect popular quotes and attributed authors.
- Open Library Book Finder - Find book records from Open Library.
Support
For issues, feature requests, or custom Actor work, use the Issues tab on the Actor page or contact the developer through Apify.
Legal Notice
This Actor is designed for legitimate data collection from publicly available sources. Users are responsible for using the data responsibly and complying with applicable laws and website terms.