Literal Club Books & Reviews Scraper avatar

Literal Club Books & Reviews Scraper

Pricing

from $0.99 / 1,000 results

Go to Apify Store
Literal Club Books & Reviews Scraper

Literal Club Books & Reviews Scraper

Collect public Literal Club book metadata and public profile reviews. Search books, look up ISBNs, and export real reviews and ratings. Uses free unauthenticated public read operations; no paid data API.

Pricing

from $0.99 / 1,000 results

Rating

0.0

(0)

Developer

Inus Grobler

Inus Grobler

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

0

Monthly active users

9 days ago

Last modified

Security

Limited permissions

Share

Scrape public Literal Club book metadata and recent public profile reviews into JSON, CSV or Excel. Get book titles, authors, ISBNs and publication details, or collect review text, ratings, dates and reviewer handles. The Actor uses Literal's free, unauthenticated public read endpoints; no paid data API, login, proxy or AI service is needed.

What can you use the data for?

  • Enrich a book catalog with Literal identifiers, ISBNs, descriptions and author details.
  • Export a public reader's recent reviews for research and rating analysis.
  • Monitor a selected public profile's reviews or compare exports over time using native review IDs.
  • Research books mentioned by readers while keeping source URLs and missing values clear.

Features

  • Book URLs, ISBN lookup, book/author search, public author catalogs and shelves.
  • Public profile reviews with book identity, reviewer, rating, date and text when present.
  • Offset pagination for author catalogs and profile activity feeds, with repeated-page protection.
  • Streaming delivery, native-ID deduplication, request pacing and bounded retries.
  • Three output formats for live public book metadata and reviews.

Review scope: a book URL retrieves book metadata. Literal's supported public route does not list every review of a book. Use a public profile's /reviews URL to collect that reader's recent reviews. Grouped activity can omit older reviews, so this is not a complete historical archive.

Quick start

  1. Open the Actor's Input tab and paste public Literal URLs.
  2. For books, set Maximum books. For a profile /reviews URL, set Maximum reviews above zero.
  3. Click Start, then download the default dataset as JSON, CSV or Excel.

The three common controls are Literal URLs, Maximum books and Maximum reviews. The optional Advanced options section contains only Output format, Book searches and ISBNs. All collection uses the live public website.

Pressing Start with the prefilled example collects one book and its author:

{
"startUrls": ["https://literal.club/book/sapiens-98ruh"],
"maxBooks": 1,
"maxReviews": 0
}

For a review-only dataset, paste a public profile's Reviews URL, set the review limit, and select Reviews only under advanced output settings:

{
"startUrls": ["https://literal.club/tangaroo/reviews"],
"maxBooks": 0,
"maxReviews": 10,
"outputMode": "reviews_flat"
}

A /reviews URL selects review collection without another toggle. The advanced includeReviews toggle is needed when using profileHandles or a plain profile URL instead. Set a positive maxReviews in either case. Clear the prefilled book URL when switching to searches, ISBNs or profile handles.

Sample review output

This excerpt comes from a live public review; current reviews and ratings may change:

{
"entityType": "review",
"source": "literal.club",
"sourceReviewId": "cmvspjzd793651957q6g6fgf5k7",
"bookId": "ckp5lzkxa885771gjs6j4vj4w7",
"bookTitle": "Disrupted",
"bookIsbn13": "9780316306089",
"reviewerHandle": "tangaroo",
"rating": 4,
"reviewText": "Incredibly eye-opening, funny and relatable.",
"createdAt": "2026-10-28T22:50:38.155Z",
"spoiler": false,
"sourceUrl": "https://literal.club/book/disrupted-zz9m5",
"dataInputSource": "web",
"sourceVerified": true
}

Output fields and formats

FieldMeaning
entityTypebook, author, profile or review.
sourceBookId / sourceReviewIdNative Literal identifiers, useful for joins and deduplication. Authors and profiles have their own native ID fields.
title, authors, ISBNs, publisher, publishedDateBook metadata, when the source supplies it.
bookTitle, bookId, reviewerHandleThe reviewed book and public reviewer.
ratingPublic review rating on Literal's 0–5 scale; zero is preserved.
reviewText, createdAt, spoiler, tagsSource review text, review creation time and attributes, when available. A rating can exist without written text.
sourceUrlBook page for books and reviews; author/profile page for those entity types. This is not a direct review permalink.
scrapedAt, dataProcessedAtCollection/processing timestamps, distinct from the source review date.
dataInputSource, sourceVerifiedAlways web / true: the record was collected from Literal during this run.

normalized output streams separate entity rows. Book and review limits count their respective primary entities; related author/profile rows can make the total dataset larger. Duplicate native entities are emitted once per run. Choose reviews_flat for only review rows, or books_with_nested_reviews to group reviews inside their books. Nested output is buffered until collection finishes and has a lower review ceiling.

Absent source values are omitted rather than invented. Book-wide rating averages, review totals, follower counts and complete review histories are not promised when the public source does not return them.

RUN-STATS contains delivery counts, page/request/retry/error counts, stop reason and coverage warnings. EVIDENCE_ANALYSIS contains deterministic rating coverage and phrase matches from delivered reviews; it does not use a model. Limited native-response fragments are retained separately in SOURCE-SAMPLES for source comparison, outside the customer dataset.

Inputs

InputPurpose
startUrlsPublic book, author, shelf, profile, /reviews, or supported search URLs.
maxBooksMaximum book records, default 1. Normalized output can also include related authors and profiles.
maxReviewsMaximum public profile reviews, default 0. Use a /reviews URL and a positive limit.
outputModeOptional: normalized, reviews_flat or books_with_nested_reviews.
searchQueriesOptional: book titles or author names. Clear prefilled URLs before searching. The books considered per search follow maxBooks, up to 50 and subject to source availability.
isbnsOptional: valid ISBN-10 or ISBN-13 values. Clear prefilled URLs before ISBN lookup.

Empty API input uses the same one-book example as Console. Request budgets are calculated automatically and remain bounded. Existing web-scraping API overrides remain accepted for integrations, including profile handles, explicit review selection, search/request caps, ISBN fallback and phrase matching; these do not clutter the input form.

Upgrading from version 0.6

Record uploads and Apify dataset imports have been removed. Requests containing providedRecords, providedDatasetId or providedRecordLimit fail with UPLOADS_NOT_SUPPORTED before source or dataset reads. Replace those inputs with public Literal URLs, book searches or ISBNs. Existing live-source input names and output formats remain supported. An explicit per-search limit is preserved; an omitted limit now follows the requested book limit.

Pagination, performance and limitations

Author catalogs and public profile activity advance through offset pages until the requested limit, an empty/repeated page or a safety budget is reached. Searches return a bounded source result list. Shelf books are limited to the list returned by the shelf endpoint; no unsupported shelf pagination is advertised.

Public collection has a 150-second deadline, a 15-second timeout per request and at most three attempts for transient failures. Requests are paced and concurrency is capped at two. No browser, images or cover files are downloaded. Partial results remain available when a request, charging or time budget is reached; inspect RUN-STATS before treating a partial run as complete. A run with no valid requested data fails clearly, except an intentional zero charging allowance.

The verified workloads include 10 and 100 public reviews. A 1,000-review result or complete history is not guaranteed: activity grouping, source availability and the collection deadline can limit coverage. Private data, source authentication, arbitrary GraphQL queries and write operations are unsupported. See Literal's public API documentation.

Troubleshooting

I get book data but no reviews. A book URL collects metadata. Use a public profile /reviews URL and a positive maxReviews. For review-only delivery choose reviews_flat.

My run returned fewer results. Check source availability, grouped-feed warnings and the stop reason in RUN-STATS. An explicit low maxRequests can stop the run early. Increase the requested result limit only when the source has sufficient data; time and charging limits still apply.

Searches or ISBNs are rejected when requesting reviews. Book-wide review listing is unavailable. Run metadata collection separately from profile review collection.

Why are there more rows than the book limit? Normalized output includes related authors and profiles. Select reviews_flat when you need exactly a review-focused dataset.

Can I upload records or import an Apify dataset? No. This Actor only scrapes live public Literal data. Upload and dataset-import parameters are rejected, including through the API.

Pricing and API use

No paid third-party API is used. Standard Actor result/start charges and applicable Apify platform usage appear in the Store pricing panel. Normalized author/profile rows count as results, so select the output format that matches your workflow. See the Store pricing panel for current rates.

Use Apify Client for Python to collect public reviews:

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("thescrapelab/literal-club-book-reviews-scraper").call(
run_input={
"startUrls": ["https://literal.club/tangaroo/reviews"],
"maxBooks": 0,
"maxReviews": 10,
"outputMode": "reviews_flat",
}
)
if run is None:
raise RuntimeError("Actor run did not return run details")
for item in client.dataset(run["default_dataset_id"]).iterate_items():
print(item)

For source changes or unexpected failures, open an issue on the Actor's Apify Store page with a run link and the public source URL. Do not post credentials.