Goodreads Books Scraper avatar

Goodreads Books Scraper

Pricing

from $0.90 / 1,000 results

Go to Apify Store
Goodreads Books Scraper

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

Shahid Irfan

Maintained by Community

Actor stats

2

Bookmarked

24

Total users

2

Monthly active users

21 days ago

Last modified

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_wanted and max_pages to 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?

FieldDescription
titleBook title
authorPrimary author
ratingAverage rating
ratingCountTotal ratings count
reviewCountTotal review count
descriptionBook description
isbnISBN-13 when available
publisherPublisher name
publishDatePublication date in YYYY-MM-DD
formatBook format such as Hardcover or Paperback
pagesNumber of pages
genresGenre list
imageCover image URL
urlGoodreads book URL

How to use Goodreads Book Scraper

  1. Open the Actor on Apify Store.
  2. Enter a shelf name such as fantasy, or add one or more Goodreads shelf URLs.
  3. Set the maximum number of books you want and the page limit.
  4. Optionally configure proxy settings for long, high-volume runs.
  5. Run the Actor.
  6. Download the dataset or connect it to your workflow.

Input Parameters

ParameterTypeRequiredDefaultDescription
startUrlsArrayNo[{"url":"https://www.goodreads.com/shelf/show/fantasy"}]List of Goodreads shelf URLs to collect from. Used as the seed when provided.
shelfStringNofantasyName of the Goodreads shelf to scrape, such as fantasy, science-fiction, or romance. Used when no URL list is provided.
results_wantedIntegerNo20Maximum number of books to save. Set a reasonable limit to control run time and cost.
max_pagesIntegerNo10Safety limit on the number of shelf or search pages to scan while discovering book URLs.
proxyConfigurationObjectNo{"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:

FieldTypeDescription
titleStringBook title
authorStringPrimary author
ratingNumberAverage rating
ratingCountNumberTotal ratings count
reviewCountNumberTotal review count
descriptionStringBook description
imageStringCover image URL
isbnStringISBN-13 when available
publisherStringPublisher name
publishDateStringPublication date in YYYY-MM-DD
formatStringBook format when available
pagesNumberNumber of pages
genresArrayGenre list
urlStringGoodreads book URL
_sourceStringSource 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_wanted between 20 and 100 to validate output quickly.
  • Increase limits after confirming the target shelf returns the books you expect.

Match Page Limits to Volume

  • Raise max_pages when targeting larger collections.
  • Keep max_pages proportional to results_wanted so 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.

Scraping public web data can be legal, but you are responsible for complying with applicable laws, website terms, and privacy rules.

Support

For issues, feature requests, or custom Actor work, use the Issues tab on the Actor page or contact the developer through Apify.

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.