Trustpilot Reviews Scraper - Ratings & Replies, No Login avatar

Trustpilot Reviews Scraper - Ratings & Replies, No Login

Pricing

from $0.27 / 1,000 review saveds

Go to Apify Store
Trustpilot Reviews Scraper - Ratings & Replies, No Login

Trustpilot Reviews Scraper - Ratings & Replies, No Login

Get public Trustpilot reviews for any company domain: star rating, title, text, date, country, verification and the company's reply. Filter by stars, language and date; onlyNew for monitoring. No login.

Pricing

from $0.27 / 1,000 review saveds

Rating

0.0

(0)

Developer

Cliqto Media

Cliqto Media

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Trustpilot Reviews Scraper gets public Trustpilot reviews for the companies you list: star rating, title, text, date, country, verification and the company's reply, one review per row. You pay $0.52 per 1,000 reviews on the free plan (less on paid plans), plus $0.007 per run and $0.001 per company lookup. No login and no Trustpilot account are needed.

Use it for review monitoring, competitor research, customer feedback analysis and AI pipelines. The smallest run is one domain, for example apify.com, with 20 reviews: it finishes in under half a minute.

Trustpilot Reviews Scraper: company domains in, review rows with stars, country and company replies out, export as JSON or CSV. Star and language filters, only new reviews, no login.

Table of contents

What it does

You give the Actor company domains (apify.com), company website URLs or Trustpilot review page URLs (https://www.trustpilot.com/review/apify.com). For each company it opens the public Trustpilot review page and saves the reviews to a Dataset.

  • It reads only what any visitor can see. It does not log in.
  • It follows Trustpilot's own redirect, so booking.com gives the reviews of www.booking.com.
  • A domain that is not on Trustpilot gets the status not_found in the run summary. It is not mixed up with "0 reviews" or with an error.
  • Filters: star ratings, languages, date range, verified only, only reviews with a company reply. Order: newest first or "most relevant".
  • onlyNew skips reviews you already got in earlier runs. Skipped reviews are free.

Good fit

  • Track new reviews of your company or your competitors every day.
  • Collect 1- and 2-star reviews with company replies for support quality checks.
  • Feed review text into sentiment analysis, topic search or an AI assistant.

Not a fit

  • Reviewer contact data. The Actor does not collect emails, phones, reviewer IDs or profile photos.
  • Every review of a very big company. Trustpilot shows visitors only 10 pages per filter. See Limits.
  • Private Trustpilot Business data (invitations, private notes, analytics).

What data you get

GroupFields
ReviewreviewId, rating, title, text, language, date, experienceDate, updatedDate, likes, url
Reviewer (public only)reviewerName, country, reviewerReviewCount
Trustverified, verificationLevel, reviewSource
Company replyreplyText, replyDate
Companycompany, companyName, companyTrustScore, companyTotalReviews, companyUrl
Provenancesource, fetchedAt

Quick start

  1. Open the Input tab.
  2. Keep the prefilled companyDomains: apify.com, or write your own domains, one per line.
  3. Keep maxReviews at 20 (the prefill) or set up to 1000.
  4. Click Start.
  5. Open the Output tab. The Reviews view shows one row per review.

Expected result: 20 reviews of apify.com, newest first, in about 3–25 seconds.

Input

FieldTypeRequiredDefaultAllowed valuesWhat it does
companyDomainsarray of stringsyes— (prefill apify.com)1–50 items: domain, website URL or Trustpilot review URLWhich companies to read. Duplicates are merged.
maxReviewsintegerno100 (prefill 20)1–1000Maximum reviews per company.
starsarray of stringsnoall1–5Only reviews with these star ratings.
languagesarray of stringsnoalltwo-letter codes (en, de, fr…) or allOnly reviews in these languages, read in this order. Up to 10 languages. A language the company has no reviews in is skipped.
sortstringnorecencyrecency, relevanceNewest first, or Trustpilot's "most relevant" order.
dateRangestringnoanyany, last30days, last3months, last6months, last12monthsOnly reviews from this period.
verifiedOnlybooleannofalseOnly reviews Trustpilot marks as verified.
withRepliesOnlybooleannofalseOnly reviews the company answered.
onlyNewbooleannofalseSkip reviews you already got in earlier runs with the same companies and filters.

How settings work together:

  • All filters work together (AND). Example: stars ["1","2"] + withRepliesOnly = only 1- and 2-star reviews that have a reply.
  • maxReviews counts per company. 5 companies × maxReviews 100 = up to 500 reviews.
  • onlyNew always reads newest first, so it ignores sort.
  • Empty companyDomains or a value that is not a domain stops the run with status INVALID_INPUT before any request to Trustpilot.

Input examples

Latest reviews of one company

{
"companyDomains": ["apify.com"],
"maxReviews": 20
}

You get the 20 newest reviews of apify.com in all languages.

Negative reviews with replies

{
"companyDomains": ["booking.com"],
"maxReviews": 200,
"stars": ["1", "2"],
"withRepliesOnly": true
}

You get up to 200 one- and two-star reviews that the company answered, with replyText and replyDate.

Daily check of competitors

{
"companyDomains": ["apify.com", "www.booking.com", "airbnb.com"],
"maxReviews": 100,
"languages": ["en", "de"],
"onlyNew": true
}

The first run saves up to 100 reviews per company. Later runs save only reviews that appeared since the last run.

Output

One Dataset row = one review. This row comes from the first example (reviewer name, title and text replaced with examples here):

{
"company": "apify.com",
"companyName": "Apify",
"companyTrustScore": 4.8,
"companyTotalReviews": 801,
"reviewId": "6ad030d671f65d706717492a",
"rating": 5,
"title": "Great tool for…",
"text": "We use it every day to…",
"language": "en",
"date": "2026-10-15T03:48:06.000Z",
"experienceDate": "2026-09-15T00:00:00.000Z",
"updatedDate": null,
"country": "NZ",
"reviewerName": "Alex",
"reviewerReviewCount": 1,
"verified": false,
"verificationLevel": "invited",
"reviewSource": "BasicLink",
"likes": 0,
"replyText": null,
"replyDate": null,
"url": "https://www.trustpilot.com/reviews/6ad030d671f65d706717492a",
"companyUrl": "https://www.trustpilot.com/review/apify.com",
"source": "trustpilot",
"fetchedAt": "2026-10-15T04:17:01.060Z"
}

Output fields

FieldTypeCan be null?Meaning
companystringnoCompany domain on Trustpilot, after Trustpilot's redirect (www.booking.com).
companyNamestringyesCompany name on Trustpilot.
companyTrustScorenumberyesTrustScore, 1–5.
companyTotalReviewsintegeryesAll reviews of the company on Trustpilot.
reviewIdstringnoTrustpilot review ID. Unique in one run.
ratingintegeryesStars, 1–5.
titlestringyesReview title.
textstringyesReview text, as written.
languagestringyesReview language, two-letter code.
dateISO dateyesWhen the review was published.
experienceDateISO dateyesDate of the experience, if the reviewer gave it.
updatedDateISO dateyesWhen the review was changed. null = not changed.
countrystringyesReviewer's country, two-letter code.
reviewerNamestringyesPublic display name.
reviewerReviewCountintegeryesHow many reviews this reviewer wrote.
verifiedbooleanyestrue/false from Trustpilot; null when Trustpilot does not say.
verificationLevelstringyesTrustpilot verification label, for example invited, verified, not-verified.
reviewSourcestringyesHow the review was collected, for example Organic or BasicLink.
likesintegeryes"Useful" votes.
replyTextstringyesCompany reply. null = no reply.
replyDateISO dateyesWhen the company replied.
urlstringnoLink to the review on Trustpilot.
companyUrlstringnoLink to the company page on Trustpilot.
sourcestringnoAlways trustpilot.
fetchedAtISO datenoWhen the Actor saved the row.

null means Trustpilot does not show this value. The Actor never puts 0 or an empty string instead of a missing value.

Run summary

Each run also writes RUN_SUMMARY to the default key-value store (Output tab → Run summary). It has:

  • status: COMPLETE, NO_RESULTS, PARTIAL, ERROR, INVALID_INPUT or CANCELLED, and reason (CHARGE_LIMIT, TIME_LIMIT, SOURCE_ERROR or null);
  • counts: companies, found, notFound, reviewsSaved, chargedReviews, chargedCompanies (company lookups charged), skippedSeen;
  • companies: one line per company with status (complete, no_reviews, not_found, partial, error, skipped), reason, totalReviews, matchingReviews, pagesFetched and saved.
SituationDatasetRun summaryWhat to do
Normalreview rowsCOMPLETEUse the rows.
Company not on Trustpilotno rows for itcompany not_foundCheck the domain on trustpilot.com.
Filters match nothingno rowsNO_RESULTS, matchingReviews 0Relax the filters.
Time or spending limit reachedrows saved so farPARTIAL + TIME_LIMIT or CHARGE_LIMITRaise the timeout or the limit, or use onlyNew.
Trustpilot blocked or failedrows saved so farPARTIAL or ERROR + SOURCE_ERROR; run FAILEDRun again later.

Pricing

Pay per event. You pay only for these events; platform usage is included.

EventPriceWhen
Actor start$0.007Once per run (1 GB memory).
Company lookup$0.001Once per company, for each language in languages (once when languages is empty), when Trustpilot answers, including not_found. The first lookup of a company is always charged; each further language is charged only if the company has reviews in it. Not charged for invalid input or source errors.
Review savedsee belowOnce per review row in the Dataset. Reviews skipped by onlyNew are free.

Review price by Apify plan:

PlanPer reviewPer 1,000 reviews
Free$0.00052$0.52
Bronze$0.00045$0.45
Silver$0.00035$0.35
Gold$0.00027$0.27
Platinum$0.00027$0.27
Diamond$0.00027$0.27

Cost examples on the Free plan:

RunReviewsPrice
1 company × 20 (prefill)20$0.0184
1 company × 100100$0.0600
5 companies × 2001,000$0.5320
3 companies × 1,0003,000$1.5700
1 company × 100, languages en and de100$0.0610
1 domain not on Trustpilot0$0.0080
onlyNew, 1 company, nothing new0$0.0080

To stop at a fixed amount, set Maximum cost per run in the run options. The Actor stops before it goes over, keeps the rows it saved and ends with PARTIAL + CHARGE_LIMIT.

Use cases

JobInputKey fieldsNext step
Reputation monitoringyour domain + onlyNewrating, text, date, urlSchedule daily, send new rows to Slack or a sheet.
Competitor research3–10 competitor domainsrating, country, language, companyTrustScoreCompare ratings by country and month.
Support qualitystars 1,2 + withRepliesOnlyreplyText, replyDate, dateMeasure reply time and tone.
AI and sentimentany domainstitle, text, language, ratingSend text to an LLM or a sentiment model.

Monitoring with onlyNew

Turn on onlyNew and create a schedule in Apify Console (for example, daily).

  • The first run works like a normal run.
  • Later runs read newest first and stop when they reach reviews you already got. Only new reviews are saved and charged.
  • The list of delivered review IDs is kept in your key-value store named trustpilot-reviews-seen, separately for each company and filter set. Delete this store to start again.
  • A run with nothing new ends with NO_RESULTS and costs the start and company lookup events only.

API, export and integrations

  • Export: download the Dataset as JSON, CSV, Excel, XML or HTML from the Output tab.
  • API: start the Actor and read the Dataset with the Apify API or the JavaScript and Python clients. The input is the same JSON as in the examples.
  • Schedules and webhooks: run on a schedule and send results to your system with a webhook.
  • No-code: connect to Make, Zapier, Google Sheets or Slack through Apify integrations.

Use with AI agents (MCP)

This Actor works as a tool in AI agents through the Apify MCP server:

https://mcp.apify.com?tools=cliqtomedia/trustpilot-reviews-scraper

  • Smallest useful input: {"companyDomains": ["apify.com"], "maxReviews": 20}.
  • Key output fields: rating (1–5 stars), text (review text), date (published), replyText (company reply or null), url (review link).
  • Typical run: 20 reviews in 3–25 seconds for $0.0184 on the Free plan. 200 reviews of one company take about 30 seconds.
  • Input limits: up to 50 companies, 10 languages and 1,000 reviews per company per run. Trustpilot shows visitors only part of a big company's reviews, so you may get fewer (see PUBLIC_PAGE_LIMIT). Check RUN_SUMMARY for not_found and PARTIAL.

Limits and partial results

  • Visitor page limit. Trustpilot shows visitors 10 pages (200 reviews) for one filter. Above 200 the Actor reads several views (by stars, language, order and other filters) and merges them without duplicates. This reaches many more reviews, but not always all. Example: apify.com, 1,000 asked → 322 of 800 saved. The run summary then shows reason PUBLIC_PAGE_LIMIT for that company.
  • Speed. The Actor makes at most about one request per second to be polite to Trustpilot. Measured: 200 reviews in about 30 seconds; 3 companies × 1,000 reviews in about 8 minutes.
  • Timeout. The default run timeout is 300 seconds. That fits about one company × 1,000 reviews or several companies × 200. For bigger lists, raise Timeout in the run options. If time runs out, you keep all saved rows and the run ends with PARTIAL + TIME_LIMIT.
  • Languages. With empty languages, you get all languages. trustpilot.com by itself shows only English, so the Actor asks for all languages for you.
  • Public data only. No login, no private Business data, no reviewer contact data.

Troubleshooting

A company shows not_found

Symptom: no rows for one domain; in RUN_SUMMARY the company has status not_found. Reason: Trustpilot has no page for this domain. Action: open https://www.trustpilot.com/review/<domain> in a browser. Try the domain with or without www, or paste the Trustpilot review URL.

Fewer reviews than maxReviews

Symptom: the company has 5,000 reviews, you asked for 1,000 and got fewer. Reason: the visitor page limit (reason PUBLIC_PAGE_LIMIT), or the filters match fewer reviews (see matchingReviews). Action: split the job by languages, stars or dateRange, or use onlyNew regularly so you collect new reviews as they appear.

The run ended with PARTIAL + TIME_LIMIT

Reason: the run timeout was reached. All saved rows are kept. Action: raise Timeout in the run options or split the companies into several runs.

The run FAILED with SOURCE_ERROR

Reason: Trustpilot blocked the request or did not answer. Rows saved before that are kept. Action: wait a few minutes and run again. If it repeats, open an issue with the run ID.

FAQ

Do I need a Trustpilot account or login?

No. The Actor reads only public review pages, like a visitor.

The Actor collects only public review data and no contact data. Trustpilot's terms limit automated access, and data protection laws (for example GDPR) apply to names in reviews. Check with your lawyer how you may use the data.

Do I pay for a domain that is not on Trustpilot?

Yes, $0.001 for the company lookup, plus the run start ($0.008 for a run with one such domain). For invalid input you pay only the run start ($0.007): the run stops before any request, so there are no company or review charges.

Is this the official Trustpilot API?

No. The official Trustpilot API needs a Trustpilot Business account. This Actor reads the public review pages, and you get the data through the Apify API, export or integrations.

How fresh is the data?

Each row is read live from Trustpilot during the run. fetchedAt shows when.

I used another Trustpilot scraper. What are the field names here?

Common names elsewhere → names here: authorName → reviewerName, publishedDate → date, isVerified → verified, replyMessage → replyText, replyPublishedDate → replyDate, reviewUrl → url, companyDomain → company, authorReviewCount → reviewerReviewCount. This Actor does not return reviewer IDs or profile photos.

Support

For bugs, questions or feature requests, open the Issues tab of this Actor. Add the run ID, your input (you can shorten the domain list) and the status and reason from RUN_SUMMARY. Never send tokens, cookies or passwords.