Trustpilot Reviews Scraper: Score, Text & Replies
Pricing
from $0.30 / 1,000 review returneds
Trustpilot Reviews Scraper: Score, Text & Replies
Trustpilot reviews for any company domain: stars, title, text, date, language, the company's reply and its TrustScore. Alerts for new and low-star reviews. No reviewer names.
Pricing
from $0.30 / 1,000 review returneds
Rating
0.0
(0)
Developer
Adriana Voss
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Pull the newest Trustpilot reviews for any company domain, with the company's TrustScore, each review's stars, title, text, date, language and the company's public reply. Run it on a schedule to see only the reviews that are new since the last run, and send new low-star reviews to Slack, Discord, Telegram or any webhook. Reviewer names, profiles and countries are never returned.
Who uses this
- Brands and agencies that watch their own or a client's reviews.
- Customer-experience and support teams that want a daily "new one-star review" alert.
- Analysts who compare the TrustScore and complaint themes of competitors.
What you get
One row per review: reviewId, domain, businessName, businessTrustScore, businessReviewCount, rating, title, text, publishedAt, experiencedAt, likes, language, isVerified, replyText, replyAt, plus changeType and previousTrustScore when monitoring is on.
Not returned, on purpose: the reviewer's name, id, profile link, avatar and country. They describe private people.
3 steps to a new one-star review alert
- Put the company domains in
domains, turn on Track reviews across runs and paste a Slack, Discord or Telegram link into Send alerts to. - Run it once with Seed silently on. The first run only remembers the reviews it sees.
- Save it as a Task and add a daily Schedule. From the second run on, every new review with 2 stars or fewer is posted as one message (change Low-star means at most to move the line).
Example runs
- Trustpilot reviews of a company:
domains: ["stripe.com"],maxReviewsPerDomain: 40. - Only the complaints:
domains: ["wise.com"],maxStars: 2,sinceDate: "2026-09-01". - New one-star review alert to Slack:
domains: ["notion.so"],deltaMode: true,alertOn: "new-low-review",notifyUrl: <your Slack webhook>.
Limits, stated plainly
- Reviews come 20 to a page, newest first, and each page is one proxy request of about 12 seconds. A 1,000-review pull is 50 pages, so it takes minutes, not seconds; up to 400 reviews per domain per run.
- Filters (stars, date, only-with-reply) are applied after the fetch, so they never reduce the pages read or the proxy cost, but only the rows that pass are returned and billed.
- The page shows the newest reviews in Trustpilot's default order; this actor does not offer a sort or a language switch.
- Trustpilot blocks most automated traffic. The actor uses a high-success proxy; when a page still comes back blocked the row says
BLOCKEDand is never charged. Check the result before you rely on it for something important. - Public data only: no login, no reviewer identity, no company contact details.
How to use
- In the Apify Console. Open the actor page and click Start — the
domainsfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - Via the API. Call it directly with a POST request — no Console needed once you have an API token:
curl "https://api.apify.com/v2/acts/accountable_eel~trustpilot-reviews-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"domains":["stripe.com","notion.so"]}'
- On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.
Input
{"domains": ["stripe.com","notion.so"]}
One company per line: a plain domain such as stripe.com, or a trustpilot.com/review/stripe.com link. Each domain returns its newest reviews plus the company's TrustScore. No login required. Reviewer names and profiles are never returned. Accepted formats: stripe.com, notion.so, https://www.trustpilot.com/review/wise.com.
{"domains": ["stripe.com", "notion.so"],"maxReviewsPerDomain": 40,"maxStars": 2}
domains is a list of company domains (or trustpilot.com/review/ links). One dataset row is returned per review; a domain that cannot be read comes back as one row with "found": false and is never charged.
Output
One row per review, for example:
| query | found | status | reviewId | domain | businessName | businessTrustScore | businessReviewCount | rating | title | text | publishedAt | experiencedAt | likes | language | isVerified | replyText | replyAt | changeType | previousTrustScore | url | checkedAt | scrapedAt |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| stripe.com | true | OK | <trustscore (company)> | <reviews (company, total)> | 1970-01-01T00:00:00.000Z |
A miss comes back as a row with "found": false and is never charged.
Pricing
Pay-per-event. A flat per-run fee covers session/proxy warmup; you're billed
per item only when data is actually found and returned — see
.actor/pay_per_event.json for exact prices. A miss is never charged.
Use it from Clay, n8n, Make, or an AI agent
This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.
curl "https://api.apify.com/v2/acts/accountable_eel~trustpilot-reviews-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"domains":["stripe.com","notion.so"]}'
n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~trustpilot-reviews-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"domains":["stripe.com","notion.so"]} (swap in an expression from an earlier node for a real value).
Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~trustpilot-reviews-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"domains":["{{domain}}"]}, mapping the row's domain into the domains array.
MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "Trustpilot Reviews Scraper: Score, Text & Replies" — the agent will find and run this actor.