Trustpilot Scraper - Reviews, Companies & Monitor
Pricing
from $0.25 / 1,000 company profiles
Trustpilot Scraper - Reviews, Companies & Monitor
Scrape Trustpilot company profiles and reviews: TrustScore, stars, text, replies, language. Monitor mode for new reviews and score alerts. Filter splitting past the 200-review cap. Residential proxies recommended.
Pricing
from $0.25 / 1,000 company profiles
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Trustpilot Scraper — Reviews, Companies & Reputation Monitor
Unofficial tool for publicly accessible Trustpilot data. Trustpilot and related trademarks belong to their respective owners. Not affiliated with, sponsored by, or endorsed by Trustpilot A/S. Provided for informational and reputation-monitoring use only; users must comply with applicable terms and laws.
Trustpilot Scraper ◄── you are here
Scrape Trustpilot company profiles and reviews into structured JSON on Apify — TrustScore, star ratings, review text, language, consumer country, and company replies. Use it as a practical Trustpilot API alternative for Python or Node.js pipelines, scheduled reputation monitoring, and ORM / brand-intel workflows. Default monitor / incremental mode only emits new reviews and TrustScore deltas, so daily cron runs stay cheap instead of re-downloading full histories.
Best for: Trustpilot review mining, competitor reputation tracking, TrustScore drop alerts, star/language-filtered exports, and JSON/CSV datasets for BI or AI assistants via Apify MCP.
When to use this Actor
- Trustpilot reviews scraper jobs for one or many company domains
- Incremental monitoring — scheduled runs that stop early once known reviews appear
- TrustScore alerts via webhook or Telegram when the score moves
- Full company dumps past the public ~200-review page cap (star × language filter splitting)
- Star- or language-filtered review exports for sentiment / NLP pipelines
When not to use this Actor
- Private Trustpilot Business inbox / messaging — this Actor only reads public review pages
- Writing reviews, claiming profiles, or authenticated Business Portal actions
- Sites other than Trustpilot company review pages
Modes
| Mode | What it does |
|---|---|
monitor | Named KV watermarks + early-stop; emit only new reviews / meta deltas (default) |
company | Company profile row + reviews (optional recursive splitting) |
reviews | Reviews only |
Key features
- Hybrid WAF access — Playwright solves AWS WAF once (
aws-waf-token);curl_cffifetches pages with Chrome TLS; persistent browser fallback if needed - Monitor-first design — watermark + seen review IDs; early-stop after consecutive known / older reviews
- Recursive filter splitting — stars → languages when
numberOfReviews > 200on full scrapes - Typed dataset rows —
recordType:company,review,monitor_event - Alerts — optional
webhookUrl(Slack / Discord / custom) + Telegram bot - Residential proxies — recommended; datacenter IPs are usually blocked
Input parameters
| Parameter | Description |
|---|---|
mode | monitor / company / reviews |
startUrls / companyDomains | Review page URLs or domains (e.g. spotify.com) |
maxReviews | Per-company review cap (0 = unlimited within splitter / page limits) |
maxItems | Hard dataset row cap (0 = unlimited) |
stars / languages | Optional filters |
splitLargeCompanies | Auto star × language split when total > 200 (full scrape only) |
concurrency | Parallel page workers |
monitorStoreName / monitorBaselineOnly / resetMonitorState | Monitor KV controls |
monitorFetchReviews / monitorMaxPages / earlyStopAfterKnown | Incremental scan controls |
webhookUrl / telegramToken / telegramChatId | Alerts |
proxyConfiguration | Use Apify Residential proxies |
Example — monitor baseline then schedule
{"mode": "monitor","companyDomains": ["spotify.com", "notion.so"],"monitorStoreName": "trustpilot-monitor-store","monitorBaselineOnly": true,"monitorMaxPages": 3,"earlyStopAfterKnown": 5,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
After the baseline run, set monitorBaselineOnly to false (or omit it). Schedule every 15–60 minutes — later runs emit only deltas and stop early.
Example — full company scrape
{"mode": "company","companyDomains": ["spotify.com"],"maxReviews": 250,"splitLargeCompanies": true,"concurrency": 4,"includeCompanyProfile": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Output
recordType | Fields (highlights) |
|---|---|
company | companyDomain, companyName, trustScore, stars, numberOfReviews, url |
review | reviewId, reviewTitle, reviewText, reviewRating, publishedDate, consumerName, hasReply |
monitor_event | changeType (new_review, trustscore_drop, trustscore_rise, review_count_change, …) |
Output example — review
{"recordType": "review","companyDomain": "spotify.com","companyName": "Spotify","reviewId": "6a6b2fc33b6685498e30e738","reviewTitle": "It just became my default","reviewText": "Easy to use and great catalog.","reviewRating": 5,"reviewLanguage": "en","publishedDate": "2026-08-01T12:00:00.000Z","consumerName": "Alex","consumerCountry": "US","hasReply": false,"scrapedAt": "2026-08-03T10:05:20.000Z"}
Use cases
| Use case | What you get |
|---|---|
| ORM / brand monitoring | New reviews + TrustScore moves on a schedule |
| Competitor research | Structured review text, stars, and replies for rivals |
| Negative-review alerts | Webhook / Telegram only for 1–2★ reviews |
| Sentiment / NLP datasets | Clean JSON/CSV review corpora by language or star |
| AI assistant workflows | Run via Apify API, clients, or MCP and summarize results |
Integration examples
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('crawloop/trustpilot-scraper').call({mode: 'company',companyDomains: ['spotify.com'],maxReviews: 100,proxyConfiguration: {useApifyProxy: true,apifyProxyGroups: ['RESIDENTIAL'],},});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.slice(0, 5));
Python
from apify_client import ApifyClientclient = ApifyClient(token)run = client.actor("crawloop/trustpilot-scraper").call(run_input={"mode": "monitor","companyDomains": ["spotify.com"],"monitorStoreName": "trustpilot-monitor-store","monitorBaselineOnly": False,"proxyConfiguration": {"useApifyProxy": True,"apifyProxyGroups": ["RESIDENTIAL"],},})items = list(client.dataset(run["defaultDatasetId"]).iterate_items())print(len(items), items[:3])
cURL
curl "https://api.apify.com/v2/acts/crawloop~trustpilot-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"mode": "reviews","companyDomains": ["spotify.com"],"maxReviews": 50,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}'
MCP and AI assistants
Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call crawloop/trustpilot-scraper.
Example prompts:
- "Run the Trustpilot scraper for spotify.com in company mode, max 100 reviews, and return TrustScore plus the newest 10 reviews as JSON"
- "Scrape Trustpilot reviews for notion.so and summarize the top 1-star complaint themes"
- "Start a Trustpilot monitor baseline for my brand domains, then tell me how to schedule incremental runs"
Monitor workflow
- Seed with
mode=monitor+monitorBaselineOnly=true(writes KV watermarks, no deltas). - Schedule the same Actor with
monitorBaselineOnly=false. - Each run refreshes the company fingerprint, walks newest reviews, and stops after
earlyStopAfterKnownconsecutive already-seen / older reviews. - Optional webhook / Telegram fires for configured change types.
FAQ
Is this a Trustpilot API?
No official Trustpilot Business API key is required. The Actor reads publicly available company review pages and returns structured dataset rows — a common Trustpilot API alternative for scraping / monitoring use cases.
Why do I need residential proxies?
Trustpilot sits behind AWS WAF. Datacenter IPs usually get a challenge page. Use Apify Residential proxies for reliable runs.
How does monitor mode save cost?
It stores review watermarks in a named Key-Value Store. Later runs only emit new reviews / TrustScore changes and stop pagination early when they hit already-seen content.
Can I scrape more than 200 reviews per company?
Yes, in company / reviews mode with splitLargeCompanies=true. The Actor splits by stars and then languages to work around the public 10-page listing cap, then deduplicates by review ID.
Can I filter by stars or language?
Yes — set stars (e.g. ["1","2"]) and/or languages (e.g. ["en","de"]).
Does it export JSON / CSV?
Yes. Results land in the Apify dataset. Download JSON, CSV, or Excel from the run, or pipe via API / integrations / MCP.
Tips
- Prefer
monitorfor production schedules; usecompanyfor historical dumps. - Keep
concurrencymoderate (2–6) on shared residential pools. - Always enable Residential proxies for Store QA and production.