ComplaintsBoard Reviews Scraper
Pricing
from $0.02 / 1,000 item extracteds
ComplaintsBoard Reviews Scraper
Scrape public ComplaintsBoard complaints, reviews, ratings, dates, authors, statuses, and company complaint counts for brand monitoring.
Pricing
from $0.02 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Automation Lab
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
2
Monthly active users
12 days ago
Last modified
Share
Scrape public company complaint pages from ComplaintsBoard and export complaint text, ratings, dates, authors, statuses, recommendations, and company-level review metrics.
What does ComplaintsBoard Reviews Scraper do?
ComplaintsBoard Reviews Scraper collects public complaint and review records from complaintsboard.com company pages.
It is built for reputation-monitoring workflows where teams need structured complaint data instead of manual copy-and-paste from the website.
The actor uses HTTP requests and server-rendered HTML parsing.
No browser automation is required for the default workflow.
No login is required for public complaint pages.
You provide one or more ComplaintsBoard URLs.
The actor follows pagination.
It saves each complaint or review as one dataset item.
Who is it for?
Reputation agencies
Track public complaints about brands, marketplaces, banks, airlines, telecoms, retailers, and service providers.
Customer support teams
Find recurring issues that customers publish outside your owned support channels.
Compliance teams
Monitor complaint volume, unresolved problems, and potentially risky language.
Market researchers
Compare complaint themes across competitors in the same industry.
Data teams
Feed complaint records into BI, warehouses, dashboards, or alerting systems.
Why use this actor?
✅ Export complaint pages into structured JSON, CSV, Excel, XML, or RSS.
✅ Capture company-level metrics and per-complaint fields in the same row.
✅ Crawl multiple company pages in one run, while preserving useful output if another source fails.
✅ Limit pages and records to control costs, or use fromDate for incremental monitoring.
✅ Receive ISO publication timestamps, stable complaint IDs, and verified-customer flags.
✅ Optionally fetch complaint detail pages for fuller text and category enrichment.
✅ Use Apify integrations, API, webhooks, and schedules.
What data can I extract?
| Field | Description |
|---|---|
companyName | Company/profile name from the ComplaintsBoard page |
companyUrl | Canonical company URL |
companyRating | Aggregate rating when displayed |
reviewCount | Public review count from page metadata |
complaintCount | Public complaint count from page metadata |
itemType | Review/complaint label visible on the card |
title | Complaint or review title |
body | Complaint/review text |
date | Published date exactly as displayed |
time | Published time exactly as displayed |
publishedAt | ISO 8601 UTC publication timestamp when the displayed date/time is parseable |
complaintId | Stable complaint ID derived from the detail URL |
author | Public author name |
authorLocation | Public author location |
isVerifiedCustomer | Whether ComplaintsBoard shows a verified-customer badge |
status | Visible status labels |
rating | Per-item rating when available |
category | Category when visible |
recommendation | Customer recommendation text when present |
sourceUrl | Page where the item was found |
detailUrl | Complaint detail URL |
pageNumber | Paginated list page number |
How much does it cost to scrape ComplaintsBoard complaints?
The actor uses pay-per-event pricing.
There is a small $0.005 run-start event.
Each saved complaint/review is charged as one result event.
| Apify plan tier | Price per complaint/review | Approx. 1,000 records |
|---|---|---|
| Free | $0.000044635 | $0.0446 |
| Bronze | $0.000038813 | $0.0388 |
| Silver | $0.000030274 | $0.0303 |
| Gold | $0.000023288 | $0.0233 |
| Platinum | $0.000015525 | $0.0155 |
| Diamond | $0.000010868 | $0.0109 |
Because the default scraper is HTTP-only, it is designed to be inexpensive for typical monitoring workloads.
Use low maxItems and maxPagesPerCompany values for test runs.
Increase limits after checking the first dataset output.
Input configuration
startUrls
Add ComplaintsBoard company URLs such as:
https://www.complaintsboard.com/amazon-b109438
You can add more than one URL. Equivalent URLs are normalized and deduplicated.
Only HTTP(S) URLs on complaintsboard.com or its subdomains are accepted. The actor also accepts complaint detail URLs, although company pages are the recommended starting point.
fromDate
Optional UTC calendar date in YYYY-MM-DD format. Records with a parseable publication date before the cutoff are skipped and are not charged as items. Records whose displayed date cannot be parsed are retained to avoid silently losing data. When a paginated page contains only parseable records older than the cutoff, the actor stops paging that source.
maxItems
Maximum number of complaint/review records to save across all URLs.
The default is intentionally small for a cheap first run.
maxPagesPerCompany
Maximum number of paginated pages to crawl per start URL.
Use this to control crawl depth.
includeComplaintDetails
When enabled, the actor fetches individual complaint detail pages to enrich or expand text.
This produces more complete records but requires more requests.
Example input
{"startUrls": [{ "url": "https://www.complaintsboard.com/amazon-b109438" }],"fromDate": "2026-09-01","maxItems": 20,"maxPagesPerCompany": 3,"includeComplaintDetails": false}
Example output
{"companyName": "Amazon Shoppers","companyUrl": "https://www.complaintsboard.com/amazon-b109438","companyRating": 1.2,"reviewCount": 15,"complaintCount": 2102,"itemType": "New review","title": "Amazon slow ships","body": "Customer complaint text...","date": "Sep 12, 2026","time": "4:46 pm UTC","publishedAt": "2026-09-12T16:46:00.000Z","complaintId": "c2014214","author": "Sample Customer","authorLocation": "Thomasville, US","isVerifiedCustomer": true,"status": "New review, Featured review","rating": 1,"category": null,"recommendation": null,"sourceUrl": "https://www.complaintsboard.com/amazon-b109438","detailUrl": "https://www.complaintsboard.com/amazoncom-amazon-slow-ships-c2014214","pageNumber": 1}
How to scrape ComplaintsBoard in 5 steps
-
Open the actor on Apify.
-
Paste one or more ComplaintsBoard company URLs.
-
Set
maxItemsandmaxPagesPerCompany. -
Run the actor.
-
Download the dataset or connect it to your workflow.
Tips for best results
Start with one company URL.
Keep maxItems low for the first run.
Review the output fields.
Then increase pagination and record limits.
Enable detail-page fetching only when you need fuller complaint text.
Use Apify schedules for recurring monitoring.
Use webhooks to notify your team when new data is ready.
Integrations
You can connect this actor to Google Sheets.
You can send results to Slack through a webhook.
You can store output in S3, BigQuery, Snowflake, or your own API.
You can run it on a daily or weekly Apify schedule.
You can combine it with sentiment analysis, deduplication, or alerting actors.
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/complaintsboard-reviews-scraper').call({startUrls: [{ url: 'https://www.complaintsboard.com/amazon-b109438' }],maxItems: 20,maxPagesPerCompany: 3});console.log(run.defaultDatasetId);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/complaintsboard-reviews-scraper').call(run_input={'startUrls': [{'url': 'https://www.complaintsboard.com/amazon-b109438'}],'maxItems': 20,'maxPagesPerCompany': 3,})print(run['defaultDatasetId'])
cURL
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~complaintsboard-reviews-scraper/runs?token=YOUR_APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"startUrls":[{"url":"https://www.complaintsboard.com/amazon-b109438"}],"maxItems":20,"maxPagesPerCompany":3}'
MCP usage
Use this actor from MCP-compatible tools through Apify MCP Server.
MCP URL:
https://mcp.apify.com/?tools=automation-lab/complaintsboard-reviews-scraper
Claude Code setup
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/complaintsboard-reviews-scraper"
Claude Desktop, Cursor, and VS Code setup
Claude Desktop, Cursor, VS Code, and other MCP-capable clients can use:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/complaintsboard-reviews-scraper"}}}
MCP example prompts:
-
"Run the ComplaintsBoard Reviews Scraper through MCP for this company URL and summarize the top recurring customer issues."
-
"Use MCP to collect the latest 50 ComplaintsBoard complaints for this brand and group them by complaint theme."
-
"Use the Apify ComplaintsBoard MCP tool to scrape this brand, then create a table with complaint title, date, status, rating, and a one-sentence issue theme."
Scheduling
For brand monitoring, schedule the actor to run daily or weekly.
Use a fixed list of company URLs.
Use fromDate to limit each run to a monitoring window, then deduplicate downstream on complaintId (or detailUrl for older exports).
Data quality notes
ComplaintsBoard pages are public web pages.
Some fields may be missing when the website does not display them.
Author names and locations are captured only when publicly visible.
Dates remain available as the text displayed by the website. publishedAt is also emitted when that text can be parsed reliably; otherwise it is null.
The actor does not infer or rewrite complaint content.
Limits
The actor only scrapes publicly accessible pages.
It does not log in.
It does not post comments.
It does not submit complaints.
It does not bypass paywalls, CAPTCHAs, or private data restrictions.
FAQ
Does this actor require a ComplaintsBoard account?
No. It reads public company and complaint pages only.
Can I monitor several brands in one run?
Yes. Add multiple company URLs to startUrls and set a combined maxItems limit.
Troubleshooting
Why did I get fewer items than requested?
The company may have fewer visible records within your maxPagesPerCompany limit.
Increase maxPagesPerCompany or add more company URLs.
Why is body shorter than expected?
Enable includeComplaintDetails to fetch individual detail pages for fuller text.
Why are some fields null?
ComplaintsBoard does not display every field on every complaint card.
Null values mean the field was not visible in public HTML or, for publishedAt, the displayed timestamp could not be parsed reliably.
Why did the run fail with no extracted complaints?
Verify that the URL opens as a public ComplaintsBoard page and still contains complaint records. A clear zero-output failure can also indicate that ComplaintsBoard changed its page selectors; include the input URL and run ID in a support issue.
What happens if one of several URLs fails?
The actor logs the failed source and continues with the remaining valid ComplaintsBoard URLs. The run fails only when no complaint can be extracted at all.
Data handling, AI, and retention
This actor uses deterministic HTTP extraction and does not call an AI model or send input or scraped data to an AI provider.
It processes only fields displayed on public ComplaintsBoard pages. Results and logs use the Apify run's storage and retention settings; the actor creates no separate external copy or cache. You can delete datasets and run storage through Apify Console or API controls.
Public complaint records can contain names, locations, and other personal data. Collect and retain only what your workflow lawfully needs.
Legality and responsible use
This actor extracts publicly available web data.
You are responsible for using the results in compliance with applicable law, platform terms, and privacy rules.
Avoid collecting or processing personal data unless you have a valid legal basis.
Respect takedown, deletion, and retention requirements in your jurisdiction.
ComplaintsBoard is named only to identify the public data source. This actor is independent and is not affiliated with, endorsed by, or sponsored by ComplaintsBoard.
Related scrapers
Try other automation-lab review and reputation scrapers on Apify:
-
Trustpilot Scraper
-
BBB Scraper
-
Reviews.io Scraper
-
Sitejabber Scraper
-
Google Maps review and lead actors
Changelog
0.2
Added date-window monitoring, machine-readable timestamps, stable complaint IDs, verified-customer flags, safer URL handling, category fixes, and partial-failure resilience.
0.1
Initial HTTP-only ComplaintsBoard company complaint scraper.
Support
If a page layout changes or a public company page stops working, open an Apify issue with the input URL and run ID.
Development
npm installnpm run buildtimeout 120 apify run
Storage
Results are saved to the default Apify dataset.
You can download results from the Apify Console or access them through the Dataset API.
Performance
The actor uses lightweight HTTP requests.
It is designed for low memory usage.
The default memory is 256 MB.
Version
Current development version: 0.1.