Trustpilot Scraper - Reviews, Companies & Monitor avatar

Trustpilot Scraper - Reviews, Companies & Monitor

Pricing

from $0.25 / 1,000 company profiles

Go to Apify Store
Trustpilot Scraper - Reviews, Companies & Monitor

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

Andrej Kiva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Trustpilot Scraper — Reviews, Companies & Reputation Monitor

Disclaimer: Unofficial tool — not affiliated with, sponsored by, or endorsed by Trustpilot A/S or its affiliates. Data is read from publicly accessible pages only. No login. You are responsible for complying with applicable law (including GDPR where personal data appears) and the site’s terms. No warranty on accuracy or availability. Provided for informational and research use.

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

ModeWhat it does
monitorNamed KV watermarks + early-stop; emit only new reviews / meta deltas (default)
companyCompany profile row + reviews (optional recursive splitting)
reviewsReviews only

Key features

  • Hybrid WAF access — Playwright solves AWS WAF once (aws-waf-token); curl_cffi fetches 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 > 200 on full scrapes
  • Typed dataset rowsrecordType: company, review, monitor_event
  • Alerts — optional webhookUrl (Slack / Discord / custom) + Telegram bot
  • Residential proxies — recommended; datacenter IPs are usually blocked

Input parameters

ParameterDescription
modemonitor / company / reviews
startUrls / companyDomainsReview page URLs or domains (e.g. spotify.com)
maxReviewsPer-company review cap (0 = unlimited within splitter / page limits)
maxItemsHard dataset row cap (0 = unlimited)
stars / languagesOptional filters
splitLargeCompaniesAuto star × language split when total > 200 (full scrape only)
concurrencyParallel page workers
monitorStoreName / monitorBaselineOnly / resetMonitorStateMonitor KV controls
monitorFetchReviews / monitorMaxPages / earlyStopAfterKnownIncremental scan controls
webhookUrl / telegramToken / telegramChatIdAlerts
proxyConfigurationUse 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

recordTypeFields (highlights)
companycompanyDomain, companyName, trustScore, stars, numberOfReviews, url
reviewreviewId, reviewTitle, reviewText, reviewRating, publishedDate, consumerName, hasReply
monitor_eventchangeType (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 caseWhat you get
ORM / brand monitoringNew reviews + TrustScore moves on a schedule
Competitor researchStructured review text, stars, and replies for rivals
Negative-review alertsWebhook / Telegram only for 1–2★ reviews
Sentiment / NLP datasetsClean JSON/CSV review corpora by language or star
AI assistant workflowsRun 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 ApifyClient
client = 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

  1. Seed with mode=monitor + monitorBaselineOnly=true (writes KV watermarks, no deltas).
  2. Schedule the same Actor with monitorBaselineOnly=false.
  3. Each run refreshes the company fingerprint, walks newest reviews, and stops after earlyStopAfterKnown consecutive already-seen / older reviews.
  4. 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 monitor for production schedules; use company for historical dumps.
  • Keep concurrency moderate (2–6) on shared residential pools.
  • Always enable Residential proxies for Store QA and production.