Goodreads Scraper - Books, Ratings & Listopia Lists avatar

Goodreads Scraper - Books, Ratings & Listopia Lists

Pricing

from $2.10 / 1,000 results

Go to Apify Store
Goodreads Scraper - Books, Ratings & Listopia Lists

Goodreads Scraper - Books, Ratings & Listopia Lists

Export Goodreads books in bulk from any search term or Listopia list: title, author, average rating, number of ratings, list score, votes, cover image and book URL. Pull thousands of rows and download as JSON, CSV or Excel.

Pricing

from $2.10 / 1,000 results

Rating

0.0

(0)

Developer

Logiover

Logiover

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Share

Goodreads Scraper — Books, Ratings & Listopia Lists

Goodreads in rows: title, author, average rating, number of ratings, Listopia score and votes, cover image and a direct book link — from any search term or reader-voted list.

What does the Goodreads Scraper do?

This Actor collects books from Goodreads, the largest reading community on the web, and returns one row per book with the average rating and the number of ratings behind it — the two numbers that separate a book 40,000 readers rated 4.3 from one four readers rated 5.0.

It reads two kinds of page, and they answer different questions:

  • Listopia lists — reader-voted rankings like Best Books Ever or Best Fantasy of the Decade. These return 100 books per page and carry a community score and vote count you cannot get anywhere else. This is the interesting half, which is why a list URL is the prefilled input.
  • Search — whatever Goodreads thinks matches a phrase, 20 books per page. Useful for pulling everything by one author or on one subject.

Both page types share the same row markup, so one export can mix lists and searches, and a source column tells you which slice each row came from.

Who is it for?

  • Publishers and literary agents sizing reader reception before acquiring or reissuing.
  • Booksellers and librarians building curated shelves from what readers actually rank highly.
  • Book marketers benchmarking a title against its genre's leaders.
  • Recommendation platforms seeding a catalogue with ratings-weighted titles.
  • Researchers and data scientists studying reading trends, genre popularity or rating distributions.
  • Book bloggers and BookTok creators sourcing list content with real numbers attached.
  • Authors tracking how a title sits against comparable books.

Use cases

  • Export an entire Listopia list with scores and vote counts.
  • Rank a genre by rating weighted by how many people rated it.
  • Build a comparable-titles set for a book you are about to publish.
  • Track an author's full catalogue and its reception.
  • Find highly rated books with few ratings — the underexposed backlist.
  • Seed a recommendation engine with community-ranked titles.
  • Study how Listopia votes correlate with average rating.
  • Assemble cover-art catalogues for a shop or reading app.

Why use this Goodreads Scraper?

  • Listopia scores and votes, which are the community signal no other book dataset carries.
  • 100 books per page on lists — a full 1,000-book list is ten requests, not fifty.
  • Ratings count alongside average rating, so you can weight properly instead of trusting a bare average.
  • Full-size cover images, widened from the thumbnail the listing serves.
  • Lists and searches in one run, tagged by source.
  • Runs on shared datacenter proxy, which keeps large jobs inexpensive.

What data can you extract?

FieldDescription
bookIdGoodreads' own book identifier
titleBook title, including series and number where shown
authorPrimary author
avgRatingAverage rating out of 5
ratingsCountHow many readers rated it
listScoreListopia score — list pages only
listVotesHow many people voted — list pages only
sourceWhich list URL or search term produced the row
coverImageCover image, widened to full size
urlDirect link to the book page

Sample output

{
"bookId": "2767052",
"title": "The Hunger Games (The Hunger Games, #1)",
"author": "Suzanne Collins",
"avgRating": 4.35,
"ratingsCount": 10248362,
"listScore": 4524348,
"listVotes": 45977,
"source": "https://www.goodreads.com/list/show/1.Best_Books_Ever",
"coverImage": "https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1586722975i/2767052.jpg",
"url": "https://www.goodreads.com/book/show/2767052-the-hunger-games"
}

How to use the Goodreads Scraper

Option A — a Listopia list

Open any list on Goodreads, copy the URL, and paste it into Listopia list URLs. Set Maximum books to how deep you want to go. A 1,000-book list needs ten pages.

Option B — a search term

Put a title, author or subject in Search termsdune, Ursula K. Le Guin, climate fiction. Search pages return 20 books each and have no list score.

Option C — several lists at once

Paste multiple list URLs, one per line. The budget is shared across them and every row is tagged with its source.

Input parameters

ParameterTypeDescription
listUrlsarrayListopia list URLs, one per line
searchQueriesarrayGoodreads search phrases, one per line
maxItemsintegerHow many books to collect in total
proxyConfigurationobjectShared datacenter proxy by default

Tips for best results

  • Prefer lists over search when you want ranking. Search has no score; a list tells you what readers actually voted for.
  • Always weight by ratingsCount. A 4.8 average from 30 readers is not comparable to a 4.3 from 300,000.
  • Combine lists and searches in one run and split them afterwards on the source column.
  • listScore and listVotes are empty on search rows. That is the page type, not a failure — search results carry no list ranking.
  • Deep lists page cleanly, so a 5,000-book export is just a larger maxItems.

Integrations

Push results to Google Sheets, Airtable, Slack, Zapier, Make or your own service through Apify's integrations, or schedule a run so a list is re-exported as its ranking shifts.

API usage

curl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~goodreads-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"listUrls": ["https://www.goodreads.com/list/show/1.Best_Books_Ever"],
"maxItems": 1000
}'

Results export as JSON, CSV, Excel, XML or RSS.

Use with AI agents (MCP)

Exposed as a tool through Apify's MCP server, so an agent can pull comparable titles, rank a genre or answer questions about reader reception on demand.

FAQ

Do I need a Goodreads account or API key?

No. Goodreads retired its public API, but list and search pages remain open to any visitor, which is what this Actor reads.

How many books can one run return?

As many as the lists and searches contain. Listopia lists commonly run to several thousand titles and page cleanly all the way down.

Why are listScore and listVotes empty on some rows?

Those two columns exist only on Listopia pages. Rows that came from a search have no list ranking attached, and the source column tells you which is which.

Where do I find a Listopia list URL?

Open Goodreads, go to Lists, pick one, and copy the address bar. Anything of the form goodreads.com/list/show/... works.

Does it collect reviews, quotes or genres?

No. This Actor exports the listing row — title, author, rating, ratings count and, on lists, score and votes. Review text is not part of it.

Are cover images full size?

Yes. The listing serves a thumbnail and the Actor widens the URL to the full jacket.

Can I export to CSV or Excel?

Yes — JSON, CSV, Excel, XML and RSS are all available.

How fresh is the data?

Every run reads Goodreads live. Ratings and vote counts are whatever they were at the moment of the run.

Why did my run return zero books?

Usually a mistyped list URL. Open it in a browser first — if the page loads a list of books, the Actor will read it.

This Actor reads only public pages that any visitor can open, and collecting publicly available data is generally lawful. You remain responsible for how you use it — check Goodreads' terms, respect copyright in descriptions and cover art, and do not republish content wholesale.

Pair this with the other media and catalogue Actors in the store for film, music and podcast metadata alongside your book data.


*Maintained: last verified 2026-09-01 — checked end-to-end against live run history (reliability, output fields and types, and time/memory budgets).