Trustpilot API: Reviews Scraper & Review Monitor avatar

Trustpilot API: Reviews Scraper & Review Monitor

Pricing

from $17.00 / 1,000 completed review pages

Go to Apify Store
Trustpilot API: Reviews Scraper & Review Monitor

Trustpilot API: Reviews Scraper & Review Monitor

Scrape Trustpilot reviews for any company domain: rating, text, dates, verified label and company reply. Trustpilot reviews API: monitor new reviews, edits and replies; get a queue of unanswered negative reviews. No login, also MCP. About $1 per 1,000 reviews; $0.001 per review from 16 Oct 2026.

Pricing

from $17.00 / 1,000 completed review pages

Rating

0.0

(0)

Developer

Saulius AutomatesIT

Saulius AutomatesIT

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Scrape Trustpilot reviews for any company by domain: star rating, title, full text, publish and experience dates, verified label, language and the company's public reply. Monitor new reviews, edits and replies on repeat runs, and get a follow-up queue of low-star reviews nobody has answered. No Trustpilot login, no API key.

Price: $0.02 per page of up to 20 reviews (about $1 per 1,000 reviews). From 16 October 2026: $0.001 per review.

Quick start

  1. Enter a company domain in Company domains, for example huel.com.
  2. Keep Pages per company at 1 for the first run and press Start.
  3. Open the Reviews dataset and download JSON, CSV or Excel. FOLLOW-UP-REPORT lists unanswered low-star reviews.

Our own test on 2 Oct 2026: huel.com, one page, 20 reviews in 9 seconds for $0.02.

Use cases

  • Customer service teams: a daily list of 1 and 2 star reviews with no public reply.
  • Reputation and review agencies: monitor client domains and report replies added and reviews still open.
  • Competitor research: compare recent ratings and complaints across competing brands.
  • AI and analytics: feed review text into sentiment analysis, topic clustering or an LLM summary.

Output example

One row per review (real row from a test run, text shortened):

{
"reviewId": "6abf76216c8f968fe342e85a",
"companyDomain": "huel.com",
"company": "Huel",
"rating": 5,
"title": "It works!!",
"text": "With an upcoming operation, I wanted to lose 8 kilos in just under 3 months...",
"publishedAt": "2026-10-02T11:15:13.000Z",
"experienceDate": "2026-09-20T00:00:00.000Z",
"language": "en",
"isVerified": true,
"reply": null,
"hadReply": false,
"change": "BASELINE",
"needsReply": false,
"ageHours": 2,
"priority": "NO_REPLY_NEEDED",
"url": "https://www.trustpilot.com/reviews/6abf76216c8f968fe342e85a"
}

What you get

  • Recent review text, rating, dates, verification label, visible company reply and a direct source link.
  • A follow-up queue for reviews at or below your chosen rating with no visible company reply. Set a reply target, such as 48 hours, to flag overdue items.
  • A report comparing the collected review sample across companies: observed ratings, unanswered low-star reviews and replies added since your previous check.
  • Change labels for a baseline, reviews new to the sample, newly added replies, edits, and unchanged records.
  • SNAPSHOT for portable repeat-run history, plus page evidence and a coverage summary.

This is useful for customer-service teams, reputation agencies and developers building review workflows. Reviewer names and profile details are omitted. No replies, messages or reviews are posted by this tool.

Input

{"companyDomains":["huel.com","monzo.com"],"maxPagesPerCompany":2,"language":"en","lowRatingThreshold":2,"replyTargetHours":48,"previousSnapshot":[],"onlyChanges":false}

Domains identify company profiles, not URLs to crawl. Choose 1–10 companies and 1–10 pages per company. Each page normally contains 20 recent reviews. The language can be a two-letter code or all. Keep the same company, language and page scope when comparing runs.

Trustpilot API or this Actor?

Trustpilot's official APIs need a Trustpilot Business account: API keys are created inside the business account under Integrations > Developers > APIs (Trustpilot developer docs), and API access comes with paid Business plans. That fits a company reading its own reviews. To read reviews of any company by domain, competitors included, without a Business plan, use the public review pages, which is what this Actor does.

OptionAny companyNeedsPrice
Trustpilot Business APIsBuilt for your own business profileA Trustpilot Business account and planPlan price
This ActorYes, by domainAn Apify token$0.02 per page of 20 reviews (about $1 per 1,000); from 16 Oct $0.001 per review

Use it from code, n8n, Make and AI agents

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("sauliusautomatesit/trustpilot-review-followup").call(
run_input={"companyDomains": ["monzo.com"], "maxPagesPerCompany": 1},
max_total_charge_usd=0.5,
)
for review in client.dataset(run.default_dataset_id).iterate_items():
print(review["rating"], review["priority"], review["title"], review["url"])

run.default_dataset_id is for apify-client 3.x (pip install apify-client); on 2.x write run["defaultDatasetId"].

JavaScript (npm install apify-client), the unanswered low-star reviews of two companies:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('sauliusautomatesit/trustpilot-review-followup').call(
{ companyDomains: ['monzo.com', 'revolut.com'], maxPagesPerCompany: 1, lowRatingThreshold: 2 },
{ maxTotalChargeUsd: 0.5 },
);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const r of items) console.log(r.companyDomain, r.rating, r.needsReply ? 'NEEDS REPLY' : '', r.title);

Plain HTTP:

curl -X POST "https://api.apify.com/v2/acts/sauliusautomatesit~trustpilot-review-followup/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN&maxTotalChargeUsd=0.5" \
-H "Content-Type: application/json" \
-d '{"companyDomains": ["huel.com"], "maxPagesPerCompany": 1}'

Works with the Apify node in n8n, the Apify module in Make, Zapier, and AI agents such as Claude, ChatGPT and Cursor through the Apify MCP server. MCP server URL for this Actor only:

https://mcp.apify.com/?tools=sauliusautomatesit/trustpilot-review-followup

FAQ

Is there a free Trustpilot API? Not for reading other companies' reviews: the official APIs come with a Trustpilot Business account. This Actor reads public review pages; Apify's free plan includes $5 of monthly credit, about 5,000 reviews at today's page price.

How do I scrape Trustpilot reviews with Python? pip install apify-client and run the Python snippet above with your domains.

Do I need a Trustpilot account or API key? No. The Actor reads public review pages and never posts reviews or replies.

How many reviews can I get? Up to 10 pages of 20 recent reviews per company and language per run, so about 200. It is built for monitoring recent reviews, not full history exports.

Can I get only new reviews each day? Yes. Pass the SNAPSHOT from your last complete run as previousSnapshot and set onlyChanges to true. Schedule the saved input in Apify.

Can I filter by star rating? Every review is exported; the follow-up queue holds the ones at or below lowRatingThreshold.

Pricing

Pricing change on 16 October 2026. From that date you pay $0.001 per review delivered to your dataset instead of $0.02 per review page. A full page of 20 reviews costs the same as today. Empty and unchanged monitoring checks will cost only the $0.00005 run start. Until then the page pricing below applies.

$0.02 per completed review page before plan discounts. A page normally contains up to 20 reviews. Reports, change detection, compute and proxy usage during the run are included. One page plus one start event costs $0.02005 at the base tier.

A confirmed empty page or an unchanged monitoring check is still a completed page. onlyChanges changes the export, not the price. Blocked pages, wrong-company results and malformed responses have no review-page charge. Source failures are recorded, and an all-failed run fails.

Review-page prices: FREE $0.02, Bronze $0.019, Silver $0.018, Gold/Platinum/Diamond $0.017. Actor start (apify-actor-start) is $0.00005, once per allocated GB of memory, minimum one. Default memory is 1 GB. Set a maximum run cost to cap event charges. Downloads and storage outside the run may incur ordinary Apify usage.

Reading the results correctly

The report covers the recent language/page sample you collected, up to about 200 reviews per company. It is not a full historical export or a statement about every customer. sourceTrustScore is the source's displayed company score; averageSampleRating is calculated only from observed reviews. They are different measures.

An unanswered review means no public company reply was visible. It does not prove the company ignored a private support request. A public reply does not prove resolution. Review text contains customer opinions, not verified findings. OVERDUE uses your chosen target and the source publication timestamp; it is not a contractual service-level finding.

A new-to-sample review can be an older review that moved into the collected pages. Edits and replies are detected only for reviews observed again. The rolling baseline retains up to 5,000 review fingerprints. No removal, fraud or sentiment inference is made.

Repeat-run workflow

Save SNAPSHOT from a run where SUMMARY.partial is false and pass it as previousSnapshot next time. Retain the old snapshot after a partial run. With onlyChanges enabled, the dataset contains changed/new observations; the follow-up report still includes unanswered reviews from the current sample.

Baselines are supplied by your workflow, so simultaneous runs do not overwrite a shared history store. Use the API/MCP tabs for integration, or the downloadable workflow below. The first run establishes your baseline. Availability depends on Trustpilot's public pages; browser blocks can interrupt collection and should not trigger unbounded retries.

Download the repeat-run workflow

Download the Python workflow and example watchlists (ZIP). Requires Python 3.10 or newer and your APIFY_TOKEN. No additional Python packages are needed.

The workflow runs a watchlist, exports CSV and JSON, and saves the next baseline only after a complete run. It includes a per-run spending cap and a resume command for interrupted downloads. See the included README for setup. Schedule the command with your existing scheduler if you want recurring checks.