Goodreads Book, Author & Listopia List Scraper

Look up Goodreads books by URL, search query, or ISBN, or pull every book by an author, in a series, on a Listopia list, shelf, or genre page. Filter by rating, ratings count, publish year, language, genre, or author.

Open in Apify Store$0.99 / 1K on Free

Short answer

Goodreads Book, Author & Listopia List Scraper is an Apify Store Actor for Goodreads data that returns 13 published output fields, including title, averageRating, url, rating. It lists $0.99 per 1,000 results on the Free plan (pay per event), $0.49 on the Business plan. It takes 35 input settings; one is required (mode). It covers 5 of the 7 core Goodreads fields this site tracks. Last updated Oct 28, 2026.

From the public Store listing and published build schema, synced 2026-11-12.
Goodreads AutomationSocial mediaEcommerce

What it returns

13 fields from the published dataset schema. Export as JSON, CSV or Excel, or read the dataset through the Apify API.

  • recordType
  • title
  • primaryAuthor
  • averageRating
  • ratingsCount
  • publishedYear
  • url
  • bookId
  • rating
  • reviewer.name
  • createdAt
  • likesCount
  • reviewText

Not in the schema among the core Goodreads fields: published, reviewer. The field matrix shows which other tools return them.

Input

Input settings for Goodreads Book, Author & Listopia List Scraper
SettingTypeRequiredDefaultWhat it does
mode string Yes auto What to scrape. Auto runs every non-empty input you provide.
bookUrls array No [] Goodreads book URLs, bare book IDs, or ISBNs. Used by books, reviews, editions, similar, and bookLists. (mode=books, reviews, editions, similar, bookLists, auto)
searchQueries array No [] Titles, authors, or keywords to search for. (mode=search, auto)
isbns array No [] ISBN-10 or ISBN-13 values. Hyphens and spaces are accepted. (mode=isbns, auto)
authorUrls array No [] Goodreads author URLs or bare author IDs. (mode=authors, auto)
seriesUrls array No [] Goodreads series URLs or bare series IDs. (mode=series, auto)
listUrls array No [] Listopia /list/show/ URLs or bare list IDs. (mode=lists, auto)
shelfNames array No [] Popular shelf names such as mystery, fantasy, or historical-fiction. (mode=shelves, auto)
genreNames array No [] Genre slugs such as fantasy, romance, or science-fiction. (mode=genres, auto)
maxItems integer No 50 Hard cap on every record emitted in the run, including review, edition, quote, list, and summary records.
Show the other 25 settings
More input settings for Goodreads Book, Author & Listopia List Scraper
SettingTypeRequiredDefaultWhat it does
detailLevel string No full Full returns complete book records. Listing returns lighter row records for search, author, series, list, shelf, and genre results.
includeMetadata boolean No false Also emit one author, series, or Listopia summary record alongside the books.
includeRelated boolean No false In auto mode, also collect reviews, editions, similar books, and lists for each book URL.
minRating number No – Drop books rated below this value. Decimals such as 4.5 are supported.
minRatingsCount integer No – Drop books with fewer ratings than this.
publishYearMin integer No – Drop books first published before this year.
publishYearMax integer No – Drop books first published after this year.
language string No – Keep books whose language starts with this text, for example en, English, or fre.
containsGenre string No – Keep books with a genre containing this text.
containsAuthor string No – Keep books with an author name containing this text.
maxReviewsPerBook integer No 30 Reviews to collect for each book. (mode=reviews)
reviewSort string No DEFAULT Order reviews by Goodreads default, newest first, or oldest first. (mode=reviews)
reviewLanguage string No all Only collect reviews written in this language. (mode=reviews)
reviewRatingMin integer No – Only collect reviews with at least this star rating. (mode=reviews)
reviewRatingMax integer No – Only collect reviews with at most this star rating. (mode=reviews)
excludeSpoilers boolean No false Skip reviews Goodreads marks as containing spoilers. (mode=reviews)
maxEditionsPerBook integer No 20 Editions to collect for each book. (mode=editions)
quoteTags array No [] Quote tag pages to scrape, such as love, life, or wisdom. (mode=quotes)
quoteAuthorUrls array No [] Author quote pages as Goodreads URLs or bare author IDs. (mode=quotes)
quoteWorkUrls array No [] Work quote pages as Goodreads URLs or bare work IDs. (mode=quotes)
maxQuotesPerSource integer No 30 Quotes to collect from each tag, author, or work. (mode=quotes)
maxSimilarPerBook integer No 20 Similar books to collect for each input book. (mode=similar)
maxListsPerBook integer No 20 Listopia lists to collect for each input book. (mode=bookLists)
releaseYear integer No 2026 Year of the new-releases chart. (mode=newReleases)
releaseMonth string No all Month of the new-releases chart, or all for the yearly chart. (mode=newReleases)

Example input

Built from the input form's published example values and defaults.

{
  "mode": "isbns",
  "bookUrls": [
    "https://www.goodreads.com/book/show/4671.The_Great_Gatsby"
  ],
  "searchQueries": [],
  "isbns": [
    "9780743273565"
  ],
  "authorUrls": [],
  "seriesUrls": [],
  "listUrls": [],
  "shelfNames": [],
  "genreNames": [],
  "maxItems": 1,
  "detailLevel": "full",
  "includeMetadata": false,
  "includeRelated": false,
  "maxReviewsPerBook": 3,
  "reviewSort": "DEFAULT",
  "reviewLanguage": "all",
  "excludeSpoilers": false,
  "maxEditionsPerBook": 3,
  "quoteTags": [
    "love"
  ],
  "quoteAuthorUrls": [],
  "quoteWorkUrls": [],
  "maxQuotesPerSource": 3,
  "maxSimilarPerBook": 5,
  "maxListsPerBook": 5,
  "releaseYear": 2026,
  "releaseMonth": "all"
}

Run it from code or an AI agent

The same run through the Apify API, with the example input. You need an Apify API token; the run is billed to your account at the Store price.

Python

from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
    "mode": "isbns",
    "bookUrls": [
        "https://www.goodreads.com/book/show/4671.The_Great_Gatsby"
    ],
    "searchQueries": [],
    "isbns": [
        "9780743273565"
    ],
    "authorUrls": [],
    "seriesUrls": [],
    "listUrls": [],
    "shelfNames": [],
    "genreNames": [],
    "maxItems": 1,
    "detailLevel": "full",
    "includeMetadata": False,
    "includeRelated": False,
    "maxReviewsPerBook": 3,
    "reviewSort": "DEFAULT",
    "reviewLanguage": "all",
    "excludeSpoilers": False,
    "maxEditionsPerBook": 3,
    "quoteTags": [
        "love"
    ],
    "quoteAuthorUrls": [],
    "quoteWorkUrls": [],
    "maxQuotesPerSource": 3,
    "maxSimilarPerBook": 5,
    "maxListsPerBook": 5,
    "releaseYear": 2026,
    "releaseMonth": "all"
}

run = client.actor("dataspryva/goodreads-book-author-and-listopia-list-scraper").call(run_input=run_input)
if run is None:
    raise RuntimeError("The Actor run was not found.")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

pip install apify-client

JavaScript

import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "<YOUR_APIFY_TOKEN>" });
const input = {
    "mode": "isbns",
    "bookUrls": [
        "https://www.goodreads.com/book/show/4671.The_Great_Gatsby"
    ],
    "searchQueries": [],
    "isbns": [
        "9780743273565"
    ],
    "authorUrls": [],
    "seriesUrls": [],
    "listUrls": [],
    "shelfNames": [],
    "genreNames": [],
    "maxItems": 1,
    "detailLevel": "full",
    "includeMetadata": false,
    "includeRelated": false,
    "maxReviewsPerBook": 3,
    "reviewSort": "DEFAULT",
    "reviewLanguage": "all",
    "excludeSpoilers": false,
    "maxEditionsPerBook": 3,
    "quoteTags": [
        "love"
    ],
    "quoteAuthorUrls": [],
    "quoteWorkUrls": [],
    "maxQuotesPerSource": 3,
    "maxSimilarPerBook": 5,
    "maxListsPerBook": 5,
    "releaseYear": 2026,
    "releaseMonth": "all"
};

const run = await client.actor("dataspryva/goodreads-book-author-and-listopia-list-scraper").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

npm install apify-client

cURL

curl -X POST "https://api.apify.com/v2/actors/dataspryva~goodreads-book-author-and-listopia-list-scraper/run-sync-get-dataset-items"   -H "Authorization: Bearer $APIFY_TOKEN"   -H "Content-Type: application/json"   -d '{"mode":"isbns","bookUrls":["https://www.goodreads.com/book/show/4671.The_Great_Gatsby"],"searchQueries":[],"isbns":["9780743273565"],"authorUrls":[],"seriesUrls":[],"listUrls":[],"shelfNames":[],"genreNames":[],"maxItems":1,"detailLevel":"full","includeMetadata":false,"includeRelated":false,"maxReviewsPerBook":3,"reviewSort":"DEFAULT","reviewLanguage":"all","excludeSpoilers":false,"maxEditionsPerBook":3,"quoteTags":["love"],"quoteAuthorUrls":[],"quoteWorkUrls":[],"maxQuotesPerSource":3,"maxSimilarPerBook":5,"maxListsPerBook":5,"releaseYear":2026,"releaseMonth":"all"}'

Waits for the run and returns the dataset items (runs over 300 seconds return HTTP 408; start an async run instead).

MCP (AI agents)

{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=dataspryva/goodreads-book-author-and-listopia-list-scraper",
      "headers": {
        "Authorization": "Bearer <YOUR_APIFY_TOKEN>"
      }
    }
  }
}

Adds this Actor as a tool in an MCP client that takes a remote server URL (Cursor, VS Code, Claude Code) through Apify's hosted MCP server. OAuth sign-in also works without the header. Clients that only start local servers can wrap the URL with npx mcp-remote.

What a run costs

The result rate falls on higher Apify plans. Each figure is the published per-result rate times the number of results.

Cost of Goodreads Book, Author & Listopia List Scraper results by Apify plan
Apify planPer 1,00010,000 results100,000 results
Free plan$0.99$9.90$99
Starter plan$0.82$8.20$82
Scale plan$0.66$6.60$66
Business plan$0.49$4.90$49
  • Every run also has a start event, charged per GB of memory (minimum one): $0.10 on Free, $0.03 on Business. At its default memory of 4 GB a run starts at $0.40 on Free. Fewer, larger runs keep this small.
  • The Free plan includes $5 of monthly usage (Apify pricing, checked 2026-11-11); at the Free rate that covers at most about 5,050 results, less start events and platform usage.
  • Worked example: 10,000 results in one run on the Free plan cost $10.30 ($9.90 for results + $0.40 start), plus Apify platform usage (compute), billed separately by Apify.
  • Pay per event. Platform usage (compute) is billed by Apify on top of the event prices. Compare other tools in the cost estimator.

Where it fits among Goodreads routes

It ranks 1 of 1 catalogue Actors for Goodreads on the published formula (fields, price, reliability, freshness). Its line is highlighted on the map.

Route diagram for Goodreads dataGoodreads Book, Author & Listopia List Scraper: stops at 4 of the 10 fields shown; Other Store tools (5): stops at 10 of the 10 fields shown; Goodreads public developer API: retired, field coverage not compared.Goodreadspublishedreviewertitleurlratingratingsbook titleauthorNamehelpful countlikes1+API

Stops are fields. A ring means the field is in that route's published output schema; no ring means the line passes without it. Bold labels are the core fields for this website, the rest are fields that differ between routes. A white capsule means every data line stops there. The red line is the official API; its field coverage is not compared. A crossed red line means there is no open official API.

Official route: Goodreads public developer API

Retired. As of December 8, 2020, Goodreads stopped issuing new developer keys for its public developer API and said it plans to retire these tools. No replacement public API is offered.

No new API keys are issued.

Official documentation

Other Store tools for Goodreads

Reference only, from their public listings.

Other Store tools for Goodreads
ToolFieldsPrice / 1K
Goodreads Review Scraper12$1.00
Goodreads Scraper18$1.90
Goodreads Scraper42$3.00
Goodreads Review Scraper14$0.05
Goodreads Reviews Scraper14$12

What people use it for

  • search books and authors
  • browse book lists
  • review reader ratings

Product Hunt Launch & Topic Data Exporter

Export Product Hunt launches with votes, comments, makers, hunter and topics from the daily leaderboard, a topic, a maker's history, or specific…

11 output fields $0.99 per 1K

App Store Search, Lookup & Reviews Scraper

Search the Apple App Store by keyword or look up apps by ID or URL, with pricing, ratings, screenshots, developer info, and optional customer…

55 output fields $0.99 per 1K

Capterra Software Pricing & Feature Extractor

Look up Capterra software products by direct URL or by name and get pricing plans, feature and integration lists, ratings, pros/cons summaries,…

6 output fields $0.99 per 1K

Google Maps Popular Times & Live Busyness Scraper

Scrape Google Maps Popular Times: hourly busy hours, live busyness vs usual, open/closed status, newest reviews with closure mentions and…

46 output fields $0.99 per 1K

Google Maps Review & Contributor Activity Scraper

Get reviews for any Google Maps business or place, or switch to author mode to pull everything one Google reviewer has written. Includes ratings,…

96 output fields $0.99 per 1K

Google Play App Search, Lookup & Reviews Scraper

Search Google Play by keyword or look up apps directly by package ID, with ratings, installs, pricing, developer contact details, and optional…

87 output fields $0.99 per 1K

Questions people ask

How much does Goodreads Book, Author & Listopia List Scraper cost?

The published result rate depends on your Apify plan: $0.99 per 1,000 on Free, $0.82 per 1,000 on Starter, $0.66 per 1,000 on Scale, $0.49 per 1,000 on Business. So 10,000 results cost about $9.90 on the Free plan and $4.90 on Business, plus a start fee of $0.10 per run per GB of memory on Free. Platform usage is billed separately.

What data does Goodreads Book, Author & Listopia List Scraper return?

Its published output schema lists 13 fields: recordType, title, primaryAuthor, averageRating, ratingsCount, publishedYear, url, bookId, rating, reviewer.name, createdAt, likesCount, and 1 more. A listed field is not guaranteed to be filled in every row.

What input does Goodreads Book, Author & Listopia List Scraper need?

Required: mode. Optional settings include bookUrls, searchQueries, isbns, authorUrls, seriesUrls, listUrls.

How do I run Goodreads Book, Author & Listopia List Scraper from Python or the API?

Use the Apify API client: in Python, ApifyClient(token).actor("dataspryva/goodreads-book-author-and-listopia-list-scraper").call(run_input=...), then read the run's default dataset (run.default_dataset_id); in JavaScript the same call is client.actor("dataspryva/goodreads-book-author-and-listopia-list-scraper").call(input). Without a client, POST the input JSON to https://api.apify.com/v2/actors/dataspryva~goodreads-book-author-and-listopia-list-scraper/run-sync-get-dataset-items with your API token. Ready-to-paste code with the example input is on this page.

Sources

Actor updated 2026-10-28 Data synced 2026-11-12
Cite this page

Scraper Finder. "Goodreads Book, Author & Listopia List Scraper." https://scraperfinder.com/catalogue/goodreads-book-author-and-listopia-list-scraper/ (data checked 2026-11-12).

Run Goodreads Book, Author & Listopia List Scraper

$0.99 per 1,000 results. Paste the example input above, set your Goodreads query, then export the dataset. Still choosing? Compare every Goodreads route.

Open in Apify Store