Goodreads Book Metadata Scraper
Pricing
from $1.00 / 1,000 goodreads book returneds
Goodreads Book Metadata Scraper
Search public Goodreads books or scrape book URLs to return titles, authors, ratings, review counts, pages, shelves, and optional descriptions.
Pricing
from $1.00 / 1,000 goodreads book returneds
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
9 days ago
Last modified
Categories
Share
Goodreads Scraper
Extract structured metadata from public Goodreads book pages. Search by title, author, ISBN, or keyword, or provide direct Goodreads book URLs.
What it returns
Each dataset item contains the book title, canonical Goodreads URL, authors, ISBN when exposed, average rating, ratings and review counts, page count, publication date, popular shelves, and the originating search term. Set includeDescription to also fetch public book pages and collect descriptions and richer publication metadata.
Input
searchTerms— one title, author, or keyword per line. Defaults toThe Hobbit. UsebookUrlsfor ISBN-specific lookups.bookUrls— optional direct public URLs such ashttps://www.goodreads.com/book/show/5907.The_Hobbit.maxResultsPerSearch— 1–50 books per search, default 10.includeDescription— fetch detail pages for descriptions and richer metadata, defaultfalse.requestDelayMs— 500–10,000 ms between requests, default 1,200 ms.
Example:
{"searchTerms": ["The Hobbit", "Ursula Le Guin"],"bookUrls": ["https://www.goodreads.com/book/show/5907.The_Hobbit"],"maxResultsPerSearch": 10,"includeDescription": true,"requestDelayMs": 1200}
Respectful-use and limitations
This Actor accesses publicly available Goodreads pages only. It does not log in, bypass CAPTCHAs, access private shelves, or use Goodreads API credentials. Goodreads can change its HTML, rate-limit automated requests, or return no results; those cases are recorded in the SUMMARY key-value record rather than represented as fabricated book data. Use conservative limits and respect Goodreads terms and applicable law.
For AI agents
Use this Actor for public book discovery, catalog enrichment, reading-list research, and rating/shelf analysis. Do not use it for private user data or as a substitute for authoritative bibliographic verification. Each result has a stable bookUrl for source review.
Pricing
Pay Per Event: $0.001 per unique Goodreads book record returned. Apify platform usage is charged separately according to the run's memory and proxy usage. Empty or blocked runs do not charge result events.
Use cases
- Schedule repeatable collection and export results to downstream workflows.
- Add a repeatable structured-data step to applications, agents, and automation pipelines.
- Run a one-off research job and export the structured result as JSON, CSV, Excel, XML, or RSS from Apify.
- Schedule the same input to monitor changes over time and send completed datasets to a webhook or integration.
- Feed schema-shaped records into a database, spreadsheet, BI tool, or AI workflow with the source URL retained for verification.
Output example
{"title": "The Hobbit","bookUrl": "https://www.goodreads.com/book/show/5907.The_Hobbit","authors": ["J.R.R. Tolkien"],"isbn": "Example ISBN","rating": 4.29,"ratingsCount": 1,"reviewsCount": 1,"pages": 1,"publicationDate": "Example Publication date","description": "Example Description","shelves": [],"sourceQuery": "Example Source query"}
The exact fields depend on the selected input and what the public source exposes. Use the dataset schema as the machine-readable contract and retain source URLs for verification.
Run Goodreads Scraper with the Apify API
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/goodreads-scraper').call({"searchTerms": ["The Hobbit"],"maxResultsPerSearch": 10,"includeDescription": false,"requestDelayMs": 1200});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
You can also run the Actor from Apify Console, schedules, webhooks, the REST API, Make, Zapier, n8n, or the hosted Apify MCP server.
Responsible use
Use this Actor only for data you are authorized to access. Follow the target website's terms, robots and access policies, and applicable privacy, database, copyright, anti-spam, and data-protection laws. Do not use it to bypass authentication or other access controls, collect private data, harass people, or make high-impact decisions without independent verification.
Support
When reporting a problem, include the Actor run ID, a redacted input, the expected result, and a small public example URL when applicable. Do not post API tokens, cookies, credentials, or personal data in an issue.
Frequently asked questions
Can I schedule Goodreads Scraper?
Yes. Use an Apify schedule to run the same saved input at a chosen interval, then connect a webhook or integration to process the dataset when the run finishes.
How should I test a new input?
Begin with the prefilled example or a small limit. Confirm that the output fields, source coverage, runtime, and live charges match your workflow before increasing the scope.
How do I export the results?
Open the run's default dataset in Apify Console and export JSON, CSV, Excel, XML, or RSS. Applications can retrieve the same records through the Apify API client or REST dataset endpoint.
Can an AI agent call this Actor?
Yes. Add muhammadafzal/goodreads-scraper through the hosted Apify MCP server or call it through the API. The Actor's input and dataset schemas help agents construct valid requests and interpret returned records.