BookWyrm Public Reviews & Export Cleaner
Pricing
from $1.19 / 1,000 results
BookWyrm Public Reviews & Export Cleaner
Collect supported public BookWyrm RSS and HTML pages or clean supplied review exports, with explicit source coverage. ActivityPub and Literal API routes are unavailable.
Pricing
from $1.19 / 1,000 results
Rating
0.0
(0)
Developer
Inus Grobler
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Security
Limited permissionsShare
BookWyrm Public Reviews & Review Export Cleaner
Clean, validate and deduplicate your book review exports into an Apify dataset. Provide JSON records or an Apify dataset ID. This workflow processes evidence you already have and labels its provenance clearly.
Quick start
- Replace the demonstration JSON with your records.
- Set maxReviews to a small processing limit.
- Start the Actor and open the default dataset.
For a dataset, clear providedRecords to [] and enter providedDatasetId instead. Use one source at a time. Only records you are authorized to process should be supplied.
{"providedRecords": [{"reviewUrl": "https://example.com/owned-review/1","reviewText": "This customer-authored demonstration review explains the sample book clearly and is not a collected website review.","title": "Owned sample review","entityType": "review","source": "bookwyrm","sourceInstance": "example.com","scrapedAt": "2026-10-01T00:00:00Z"}],"maxReviews": 1}
What you receive
One row per accepted record, using the established output fields. Text is cleaned, records are checked against the output field types, and duplicates are excluded. Missing values are not filled with invented counters, dates or native website identifiers. An observed zero stays zero.
Rows include dataInputSource="provided", sourceVerified=false, sourceRecordHash and dataProcessedAt. The hash identifies processed content; it is not a website ID. Processing does not verify the original source, ownership claims, freshness or factual accuracy.
PROVIDED_DATA_SUMMARY in the run key-value store reports accepted, rejected, duplicate and confirmed delivered counts. Dataset read limits and incomplete scans are disclosed. Diagnostics are not paid dataset rows.
Collection availability
RSS and public HTML collection remain supported. Live API-backed collection is unavailable. Existing input fields remain accepted for integrations, but they do not trigger a source API or another Actor. Without supplied data, existing page and feed fields select live HTML/RSS collection. Unsupported API-only adapters report source failures without creating replacement result rows. Public RSS and HTML collection remain available when those pages expose usable records. ActivityPub JSON, unknown JSON discovery and Literal GraphQL providers are disabled.
Pricing and limits
Check the Actor Pricing tab for current charges. Each delivered primary record uses the existing result event. Start fees and platform usage may still apply to empty or failed runs. Start with one record; the input limit bounds records scanned, including rejected records and duplicates.
Python API example
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("thescrapelab/bookwyrm-book-reviews-scraper").call(run_input={"providedDatasetId": "YOUR_DATASET_ID","maxReviews": 1,})if run is None:raise RuntimeError("Actor did not return run metadata")dataset_id = run["defaultDatasetId"] if isinstance(run, dict) else run.default_dataset_idfor record in client.dataset(dataset_id).iterate_items():print(record)
Troubleshooting
- No valid rows: inspect rejection codes and check the documented fields and types.
- Only part of a dataset read: increase the processing limit and review sourceDatasetLimited in the summary.
- Inaccessible dataset: use a 17-character ID and an Apify token with read access.
- Unsupported live mode: supply your existing records; adding source credentials does not enable collection.
Open the Issues tab with a run ID and a sanitized example for support.
The supplied demonstration is authored example data, not a website observation. Replace all identifiers, source labels, timestamps, scores and monitoring flags with your own complete export. These values remain customer assertions and are not independently verified.
Output example
Illustrative output; replace source values with your own authorized evidence.
{"reviewUrl": "https://example.com/owned-review/1","reviewText": "This customer-authored demonstration review explains the sample book clearly and is not a collected website review.","title": "Owned sample review","entityType": "review","source": "bookwyrm","sourceInstance": "example.com","scrapedAt": "2026-10-01T00:00:00Z","dataInputSource": "provided","sourceVerified": false}