Trustpilot Reviews Scraper - Ratings, Replies & Filters avatar

Trustpilot Reviews Scraper - Ratings, Replies & Filters

Pricing

from $0.23 / 1,000 trustpilot reviews

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

Trustpilot Reviews Scraper - Ratings, Replies & Filters

Scrape Trustpilot reviews for any company: rating, title, text, dates, reviewer country, verification and company replies. Filter by stars, language, date or keyword and go past the usual ~200-review window. No login needed.

Pricing

from $0.23 / 1,000 trustpilot reviews

Rating

0.0

(0)

Developer

Rosario Vitale

Rosario Vitale

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Why use this Actor?

Scrape Trustpilot reviews for any company: rating, title, text, dates, reviewer country, verification and company replies. Filter by stars, language, date or keyword and go past the usual ~200-review window. No login needed.

Features

  • Companies or Trustpilot review URLs — Direct company domains or Trustpilot review URLs. Can be combined with search/category discovery.
  • Maximum reviews per company — Maximum matching review rows emitted for each unique company. Set 0 to collect as many reviews as Trustpilot shows without login across its star, language and date slices (up to 10,000 per company, still capped by Maximum total reviews); 0 turns on deep pagination automatically. Raise Maximum pages per filter slice to 10 to read each slice as deep as Trustpilot allows.
  • Maximum total reviews — Hard cap across all companies for predictable runtime and spend.
  • Review order — Newest first or Trustpilot relevance order.
  • Star ratings — Optional star filters. Empty means all 1-5 star ratings. When you pick several ratings (for example 1 and 2 stars for bad reviews), each rating is requested from Trustpilot separately; with deep pagination off the per-company limit is shared evenly between them.
  • Review languages — Optional ISO language codes such as en, de, fr, it. Empty means all languages and enables automatic language slicing for very deep runs.
  • Reviewer countries — Optional 2-letter ISO country codes of the reviewer, such as US, GB, DE, IT. Empty means all countries. Trustpilot has no country filter, so the Actor scans more pages (deep pagination turns on) and bills only matching reviews.
  • Published after — Optional inclusive lower boundary: YYYY-MM-DD or ISO 8601. The Actor asks Trustpilot for the matching date window and, with newest-first order, stops paging once reviews get older than this date.
  • Published before — Optional inclusive upper boundary: YYYY-MM-DD or ISO 8601.
  • Only the last N days — Rolling window for scheduled runs: only reviews published in the last N days (0 = off). Combined with Published after, the later date wins.
  • Review text contains — Optional case-insensitive keyword across review title and text. Filtered rows are not billed.
  • Verified reviews only — Only emit reviews whose Trustpilot verification label reports isVerified=true.

Use cases

  • Brand reputation monitoring.
  • Customer feedback research.
  • Competitor benchmarking.
  • Verified-review datasets.

Example input

{
"companies": [
"booking.com"
],
"maxReviewsPerCompany": 100,
"maxTotalReviews": 1000,
"sortBy": "newest",
"lastDays": 0,
"verifiedOnly": false
}

Pricing & cost control

The primary event costs $0.000290 per Trustpilot review (about $0.29 per 1,000 successful primary events). Only successful primary events are intentionally billed by this Actor; summary/status rows add context without adding primary-event charges.

Use the bounded input limits and filters to keep both event charges and platform usage predictable.

FAQ

What is this Actor for?
It is designed for brand reputation monitoring, customer feedback research, competitor benchmarking.

Can I run it on a schedule?
Yes. You can schedule Actor runs on Apify and send the resulting dataset into automations, webhooks, storage, or downstream APIs.

How do I control cost and run size?
Use the input limits and filters shown in the Actor input form. The Actor applies bounded defaults and hard caps so large jobs remain predictable.

Pricing at a glance

Price per 1,000 Trustpilot reviews
This Actor$0.29
Median of 8 comparable Apify Store Actors (October 2026)$0.50

That is about 42% below the median per-result price for this task in Apify Store.

Subscriber discounts: on a paid Apify plan you pay even less per result — Bronze −10%, Silver −15%, Gold and higher −20% ($0.23 per 1,000 Trustpilot reviews on Gold).

Apify platform usage (compute, storage, data transfer) is included — you pay only the result price plus a small run start fee ($0.0001 per GB of run memory). No surprise compute bill, even on long runs.

Use the run's maximum charge setting to cap spending — the Actor stops cleanly when the limit is reached.

Use it from AI agents (MCP) and code

AI agents — Claude, ChatGPT, Cursor, VS Code, n8n AI agents and any MCP client can run this Actor through the official Apify MCP server: add https://mcp.apify.com?tools=zenomastro/trustpilot-reviews-reliable to your client. Then just ask, for example:

"Fetch all recent Trustpilot reviews of booking.com and summarize the main complaints and company replies."

The agent fills the input from the field descriptions and receives clean JSON it can reason over.

API — one HTTP call runs the Actor and returns the results directly:

curl -X POST "https://api.apify.com/v2/acts/zenomastro~trustpilot-reviews-reliable/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"companies": ["booking.com"], "maxReviewsPerCompany": 1, "maxTotalReviews": 1, "maxPagesPerSlice": 1, "retries": 1}'

The same works from the Apify Python/JavaScript clients, Make, n8n, Zapier, LangChain and LlamaIndex integrations, or on a schedule.

Extract public Trustpilot reviews and company reputation data into clean, structured rows: rating, title, full text, dates, reviewer name, country and profile link, verification, likes and the company's reply, plus a free company summary and a free analytics row per company. Built for brand-reputation monitoring, customer-experience and support analysis, competitor benchmarking, market research and AI/LLM pipelines.

Who it is for: CX and support leads who track complaints and reply times, marketing and brand teams watching their own and competitors' reputation, analysts building review datasets, and developers feeding reviews into dashboards, sentiment models or AI agents.

The Actor uses a real Chromium session only to pass Trustpilot's public browser challenge and open the current review application. Pagination then uses Trustpilot's same-origin Next.js review data inside that session instead of rendering every page. No login is needed.

What you get

  • Any company: domains (booking.com), Trustpilot review URLs, brand searches (companySearchQueries) or category pages (categoryUrls), up to 100 companies plus up to 200 discovered ones per run.
  • Every review field Trustpilot shows publicly: rating, title, text, language, likes, published / experience / updated dates, reviewer name, country, review count and profile URL, verification level and source, the company reply and its dates, and stable IDs.
  • Filters before billing: stars, languages, reviewer countries, date window or "last N days", text contains, contains any / all / none of a keyword list, verified only, company reply yes/no, minimum likes.
  • Beyond the ~200-review window: deep pagination slices by star, language, relevance and date to reach older history, or set Maximum reviews per company to 0 for everything Trustpilot shows without login.
  • Free company summary: TrustScore, stars, total reviews, categories, contact info, claim status, reply behaviour, star and language statistics, and a coverageNote when fewer reviews came back than requested.
  • Free review insights per company: average score and distribution, reply rate overall and per star, median and average company reply time, verified share, monthly trend, top complaint keywords (1-2 stars) and praise keywords (4-5 stars), mentions of your own keywords, and language, country and source breakdowns. Plain word counting, no AI and no extra cost.
  • Monitoring: monitorName + onlyNew deliver and bill only reviews you have not received before.

How to use it

  1. Add company domains or Trustpilot review URLs to Companies or Trustpilot review URLs (or brand names to Brand/company search queries).
  2. Set Maximum reviews per company and Maximum total reviews.
  3. Optionally open Filters, for example Star ratings 1 and 2 for complaints only, or Only the last N days for a weekly schedule.
  4. Run, then open the Output tab: the Trustpilot reviews, Review insights and Business summaries views, or export JSON, CSV or Excel.

Input examples

The latest 100 reviews of two companies:

{
"companies": ["booking.com", "https://www.trustpilot.com/review/www.revolut.com"],
"maxReviewsPerCompany": 100
}

1-2 star reviews from the last 30 days that mention refunds or cancellations, without a company reply:

{
"companies": ["booking.com"],
"starRatings": ["1", "2"],
"lastDays": 30,
"containsAny": ["refund", "cancel"],
"companyReply": "no",
"maxReviewsPerCompany": 200
}

Weekly competitor monitor that delivers and bills only new reviews:

{
"companies": ["expedia.com", "booking.com", "hotels.com"],
"monitorName": "travel-competitors",
"onlyNew": true,
"lastDays": 7,
"maxReviewsPerCompany": 500
}

Find companies by name, then take everything Trustpilot shows for each:

{
"companySearchQueries": ["revolut", "wise"],
"maxDiscoveredCompanies": 2,
"maxReviewsPerCompany": 0,
"maxTotalReviews": 20000
}

Inputs written for other Trustpilot review Actors work as well: companyUrls, startUrls, searchTerms, stars, languages, filterCountries, publishedAfter, startDate, verified, withReplies, maxItems and sort are read as this Actor's fields.

Output examples

Illustrative values, shortened. A billed review row:

{
"recordType": "review",
"domain": "booking.com",
"businessName": "Booking.com",
"trustScore": 1.4,
"reviewId": "66f2a1c9e1b2a40c9d7f3e21",
"rating": 1,
"title": "Refund still missing",
"text": "The hotel cancelled my stay and I am still waiting for the refund after three weeks...",
"language": "en",
"likes": 3,
"publishedDate": "2026-10-12T09:14:22.000Z",
"experiencedDate": "2026-09-28T00:00:00.000Z",
"reviewerName": "Laura M.",
"reviewerCountryCode": "GB",
"reviewerProfileUrl": "https://www.trustpilot.com/users/5f8d0d55b54764421b7156c3",
"reviewVerified": true,
"verificationLevel": "verified",
"hasCompanyReply": true,
"companyReplyText": "We're sorry to hear this. Please contact us via...",
"companyReplyPublishedDate": "2026-10-13T08:02:10.000Z",
"reviewUrl": "https://www.trustpilot.com/reviews/66f2a1c9e1b2a40c9d7f3e21",
"isNew": true
}

The free review insights row of that company (part of it):

{
"recordType": "review_insights",
"domain": "booking.com",
"reviewCount": 200,
"averageScore": 1.31,
"scoreDistribution": {"1": 172, "2": 28},
"replyRatePercent": 64.5,
"replyRateByStar": {"1": 66.9, "2": 50, "3": null, "4": null, "5": null},
"medianReplyHours": 21.4,
"verifiedRatePercent": 41,
"topComplaintKeywords": [{"term": "refund", "reviews": 88, "sharePercent": 44}, {"term": "customer service", "reviews": 61, "sharePercent": 30.5}],
"keywordMentions": {"refund": 88, "delivery": 2, "customer service": 61, "support": 19},
"monthlyTrend": [{"month": "2026-10", "reviews": 74, "averageRating": 1.28, "negativePercent": 100}]
}

Deep pagination beyond 200 reviews

Trustpilot normally limits anonymous pagination for a single filter combination. With deepPagination on (it also switches on by itself when maxReviewsPerCompany is 0, or a reviewer-country or keyword-list filter is set), this Actor segments larger jobs into star-rating and language windows, deduplicates review IDs globally, and adds bounded relevance/date windows when a segment hits its page ceiling.

With deepPagination off, each company reads up to maxPagesPerSlice pages of 20 reviews per filter. If you ask for more than that window holds, the business summary's coverageNote tells you so.

For normal small jobs the extra work is skipped. For deeper history the Actor derives useful language slices from Trustpilot's current review statistics rather than relying on a fixed language list.

Filters

Filtering happens before paid review rows are emitted. You can combine star ratings, languages, date boundaries (reviewedAfter, reviewedBefore, lastDays), text contains (containsText, sent to Trustpilot's own search), keyword lists (containsAny, containsAll, excludeKeywords), verified-review status, minimum likes, company-reply presence and reviewer country (reviewerCountries). Rows rejected by filters are not billed.

Review insights

When Include review insights is on (default), each company gets one free review_insights row describing the reviews that matched your filters: average score and distribution, company reply rate overall and per star, average and median hours between a review and the company reply, verified share, average likes, a monthly trend (reviews, average stars, share of 1-2 star reviews), the words and two-word phrases that 1-2 star reviews mention more than 4-5 star reviews (topComplaintKeywords) and the reverse (topPraiseKeywords), how many reviews mention each Insight keyword, and language, reviewer-country, review-source and verification-source distributions. The keyword lists use word counting with stopwords in English and major European languages and leave out the company's own name. Nothing is sent to an AI service.

Reliability design

The Actor uses strict input validation, duplicate-company removal, current Next.js build discovery, real browser challenge/session initialization, bounded session refresh, direct-first Chromium, optional Apify Proxy fallback, global review-ID deduplication, bounded retries/timeouts, per-company/global caps, diagnostic rows, and maximum-charge handling.

Runs finish before the earlier of the Safe runtime budget (maxRuntimeSecs) and the run's own timeout: no new company starts close to the end, and at the deadline the browser is closed so a hanging page cannot push the run into a timeout. Reviews already collected are delivered, the monitor state is saved, and the status message says the budget was reached. Reviews are delivered in batches, so large companies finish quickly. Invalid input, a company Trustpilot does not know, an unreadable monitor state or an unexpected problem ends with a clear error row instead of a failed run, and nothing is billed for it.

Output row types

review: a successful, billable Trustpilot review.

business_summary: a free company-level profile/reputation row, with slicesUsed, pagesFetched and coverageNote (why fewer reviews than requested came back, or null).

review_insights: a free analytics row per company (see Review insights).

status: a free informational row when no review matches the selected filters.

company_discovery / discovery_error: free rows listing the companies found by a brand search or category page, or why a search failed.

error: a free diagnostic row for invalid input (InvalidInput), a company not found on Trustpilot (CompanyNotFound), WAF/session failure, a monitor state that could not be read (MonitorUnavailable) or another per-company issue.

run_summary: one free row at the end with emitted reviews, failed companies, budget flags and companiesBelowRequested.

Pricing

Launch pricing target: $0.00029 per successfully emitted review, about $0.29 per 1,000 Trustpilot reviews, plus the small Actor-start event shown by Apify.

Only successful review rows trigger the paid review event. Summaries, insights, status rows, errors, retries, duplicates, and filtered-out reviews are free.

Spend controls

Use maxReviewsPerCompany, maxTotalReviews, maxPagesPerSlice, and Apify's maximum-total-charge setting to bound spend and runtime.

Source limits

Trustpilot controls public review data and anonymous pagination behavior. Deep slicing materially extends accessible history, but the Actor never claims unavailable records and never fabricates missing fields. Reviewer countries, likes and verification are what Trustpilot publishes for each review.

More FAQ

Why did a company return fewer reviews than I asked for? Read coverageNote in its business summary: Trustpilot may have no more matching reviews, the standard window may be used up (turn on deep pagination or set Maximum reviews per company to 0), or the run reached its runtime budget.

How do I get only new reviews every day? Schedule the Actor with a Review monitor name and Emit only new reviews. Without a monitor name, one is derived from the companies.

Can I find what customers complain about without an AI tool? Yes: the free review_insights row lists the words and phrases 1-2 star reviews use more than 4-5 star reviews, and counts your own Insight keywords.

Is a login or Trustpilot API key needed? No. Only public Trustpilot pages are read.

Responsible use

This Actor reads public review/profile information. Use reviewer names, review text, company responses, and other public data in accordance with applicable privacy, copyright, data-protection requirements, and Trustpilot's applicable terms. Do not use the output to harass, deanonymize, or build sensitive profiles of reviewers.

Support

For a reproducible issue, provide the company domain or Trustpilot review URL, filters, proxy mode, and Apify run ID. Never include API tokens, proxy passwords, or private credentials.

Extended capabilities

  • Accept company domains directly or discover Trustpilot company profiles from brand searches and category/listing pages.
  • Filter by stars, language, review date, text, verification, likes, and company reply.
  • Use browser session recovery plus JSON/SSR pagination fallback, optional proxy fallback, and persistent monitoring.