Trustpilot Reviews Scraper: Coverage Per Company avatar

Trustpilot Reviews Scraper: Coverage Per Company

Pricing

from $0.40 / 1,000 reviews

Go to Apify Store
Trustpilot Reviews Scraper: Coverage Per Company

Trustpilot Reviews Scraper: Coverage Per Company

Scrape Trustpilot reviews and company profiles for any domain, no login. Rating, title, text, dates, verification, reviewer country, company reply. Splits filters by star, language, date and topic to get past the 200 review wall and reports coverage per company. Pay per review.

Pricing

from $0.40 / 1,000 reviews

Rating

0.0

(0)

Developer

Automation Craft

Automation Craft

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

9 days ago

Last modified

Share

Trustpilot Reviews Scraper: Coverage Per Company

Scrape Trustpilot reviews for any company domain with no login, and know exactly what you got. Every review row carries the rating, title, full text, published and experience dates, language, verification status, reviewer country, likes and the company's reply. Trustpilot shows the public at most 200 reviews per filter combination; this Actor splits your filters by star rating, language, date window and topic to collect past that wall, and writes one coverage row per company that says how many reviews exist on Trustpilot for your filters, how many you received, and why it stopped. A second mode finds companies by search keyword or Trustpilot category and returns one row per company with TrustScore, review count, categories, website, email, phone and address as listed.

You pay per review delivered. Duplicates, reviews already in your dedup memory, coverage rows, status rows, blocked pages, companies Trustpilot does not know and empty runs cost nothing.

Quick start

  1. Open the Actor and paste one company per line into Companies: a domain as Trustpilot writes it (www.amazon.com, wise.com) or any Trustpilot review page URL. Non canonical domains are followed to the canonical page.
  2. Set Max reviews per company (0 means everything the public pages serve) and, if you want them, star ratings, languages, a date window, verified only, with reply only, topics or a text search.
  3. Leave Full coverage on to collect past the 200 review wall, and tick Include a company profile row for TrustScore, rating distribution, categories, contact details, claim status, reply behaviour and Trustpilot's AI summary.
  4. Run it. Download the Reviews, Companies or Coverage view as JSON, CSV or Excel, or read the dataset through the API.
  5. For a weekly monitor, give the run a Dedup memory name and schedule it: every later run returns only reviews published since, free of charge for the ones it already delivered.

What you get

Review rows (type: "review")

Measured on 1,013 reviews from 6 companies (Amazon, Wise, eBay, Flodesk, Focusmate, Zara) in platform runs on 2026-09-16.

FieldWhat it isFilled
reviewId, reviewUrlTrustpilot's id and the public review page100%
companyDomain, companyNamethe canonical Trustpilot slug and display name100%
rating1 to 5 stars100%
title, textheadline and full review body100%
languageISO code of the review100%
publishedDate, experiencedDate, updatedDateISO 8601 timestamps; updatedDate only when edited100%, 100%, about 5%
isVerified, verificationLevel, verificationSource, reviewSourceTrustpilot's verification labels (invited, organic, verified); 16% of sampled reviews were verified100%
reviewer.name, reviewer.countryCode, reviewer.reviewCount, reviewer.idreviewer display name (optional), two letter country, how many reviews they wrote100%
hasReply, reply.text, reply.publishedDatewhether the company answered, and what it saidflag 100%; a reply existed on 26% of the sampled reviews
likesuseful votes100%
shardthe filter combination that surfaced the review (for audit)100%

location and productReviews exist for the few businesses that use Trustpilot locations and product reviews and are empty otherwise.

Coverage rows (type: "coverage"), one per company, free

FieldMeaning
reviewsAvailable, reviewsAvailableExactreviews matching your filters on Trustpilot (the site's own count). Trustpilot counts star, language and date selections exactly; with a topic, verified, reply or text filter the count is unknown and reviewsAvailable is null
reviewsAvailableAllFiltersthe company's total review count in every language
reviewsReturned, coveragePercentwhat this run delivered
capReasoncomplete, max-reviews-reached (your per company cap), max-total-reviews-reached and charge-limit-reached (run wide stops), public-wall (200 per filter, full coverage off), public-wall-after-sharding (splitting could not reach everything), page-budget-reached (the request budget for one company), fetch-errors (a page could not be loaded or stored after retries; the rows delivered before it are kept and billed once)
shardsFetched, pagesFetchedhow much work it took

Measured 2026-09-16: a 356 review company reached 89 percent (317 reviews, 28 shards, 64 pages); a company under 200 reviews per star and language reaches 100 percent; Amazon (46,256 reviews) cannot be completed by any public scraper and the coverage row says so.

Company rows (type: "company")

In reviews mode (when Include a company profile row is on) and in companies mode: domain, name, trustpilotUrl, websiteUrl, trustScore, stars, numberOfReviews, numberOfReviewsLast12Months, ratingDistribution (one to five star counts), reviewLanguages (count per language), categories, primaryCategory, categoryPath, isClaimed, claimedDate, isClosed, isUsingPaidFeatures, countryCode, contact (email, phone, address, city, zipCode, country as listed on Trustpilot), replyBehavior (reply percentage, average days to reply), aiSummary, topicSummaries, similarCompanies (Trustpilot's own list of eight, with TrustScore and review count), logoUrl. Company search and category rows carry the listing fields; turn on Enrich each company from its profile page for the full set. In category and search listings the contact fields were filled for 71% (email), 51% (phone) and 57% (address) of 70 sampled companies; Trustpilot lists them only where the business provided them.

The run summary (type: "summary"), free

Counters for companies, reviews delivered and charged, duplicates and known reviews skipped, pages and shards fetched, login walls met, HTTP statistics, token refreshes, and billing counters that report attempted and platform confirmed charges separately.

How much does it cost to scrape Trustpilot?

Live prices at the BRONZE tier; Silver 10 percent and Gold 20 percent off the result events, no discount on the Actor start event.

EventPriceWhen it is charged
Review$0.0005 ($0.50 per 1,000 reviews)once per unique review row delivered
Company profile$0.002 ($2.00 per 1,000 companies)once per company row delivered
Actor start$0.001 per GB of memory, once per runthe headless browser hop that clears Trustpilot's access challenge

Worked examples: 1,000 reviews of one company with its profile row cost $0.50 + $0.002 + $0.001 = $0.503. A weekly monitor that finds 12 new reviews costs $0.006 + $0.001 = $0.007. A category export of 500 companies costs $1.00 + $0.001. The Store pricing card shows the same prices per 1,000 events: "$2.00 / 1,000" on the Company profile row means one company costs 0.2 cents.

Nothing is charged for duplicates, reviews your dedup memory already holds, coverage rows, status rows, the summary, blocked pages, companies that do not exist on Trustpilot or invalid input.

Input

FieldTypeNotes
modereviews or companiesdefault reviews; companies is picked automatically when only search queries or categories are given
companieslistdomains or Trustpilot URLs, up to 200; two aliases of one profile are delivered once. An empty {} input runs the Console default (www.amazon.com, 200 reviews)
maxReviewsPerCompanyintegerdefault 200, 0 = unlimited
maxTotalReviewsintegerrun wide stop, 0 = unlimited
fullCoveragebooleandefault true
starslist of "1" to "5"empty = all; with several values the reviews are collected per star rating
languageslist of ISO codesempty = every language (not Trustpilot's English only default)
dateRangeall, last30days, last3months, last6months, last12monthsTrustpilot's own windows
verifiedOnly, withRepliesOnlybooleanserver side filters
topicslist of topic idse.g. customer_service, delivery_service, refund
searchTextstringTrustpilot's search inside reviews
sortrecency or relevance
includeCompanyProfilebooleanone paid company row per company
includeReviewerDetailsbooleandefault true; false drops reviewer names
dedupMemoryName, resetDedupMemorystring, booleancross run memory for monitors
searchQueries, categories, country, minTrustScore, claimedOnly, maxCompanies, enrichCompanyProfilescompanies modecategory ids or category URLs; country as a two letter code
maxConcurrency1 to 5companies scraped in parallel
proxyConfigurationproxyApify's automatic datacenter pool is enough

API example:

curl -X POST "https://api.apify.com/v2/acts/automation_craft~trustpilot-reviews-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"companies": ["wise.com"], "stars": ["1", "2"], "maxReviewsPerCompany": 100, "includeCompanyProfile": true}'
from apify_client import ApifyClient
client = ApifyClient("APIFY_TOKEN")
run = client.actor("automation_craft/trustpilot-reviews-scraper").call(run_input={
"companies": ["www.booking.com"], "dateRange": "last30days", "dedupMemoryName": "booking-weekly"})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
if item["type"] == "review":
print(item["rating"], item["publishedDate"], item["title"])

What this Actor does NOT do

  • It does not log in, use cookies or borrowed tokens. The public wall is 200 reviews per filter combination; splitting reaches more, and the coverage row tells you how much. A company with tens of thousands of reviews in one language and star rating cannot be completed by any public scraper.
  • It does not translate reviews, download review images, or write to Trustpilot.
  • It does not return the Trustpilot Business API's private fields (invitation data, tags, private notes).
  • Trustpilot's robots.txt disallows automated access and its Terms of Use restrict scraping; you are responsible for how you use the data.

FAQ

Why do most Trustpilot scrapers stop at 200 reviews, and what does this Actor do about it?

Trustpilot serves pages 1 to 10 of any review list to the public and redirects page 11 to a login page. That is 200 reviews per filter combination. This Actor never asks for page 11; with Full coverage on it splits your filter by star rating, then by language (using Trustpilot's own per language counts), then by date window and topic, and adds the relevance ordering, verified only and with reply views, each of which opens another 200. Every company gets a coverage row so you can see the result.

Can I get more than 200 reviews by splitting the run across star ratings, languages or date windows?

Yes, and you do not have to do it by hand: Full coverage does the splitting, deduplicates by review id and charges each review once. You can still narrow a run yourself with stars, languages, dateRange or topics; the Actor then splits only the remaining dimensions.

Can I scrape only the 1 and 2 star reviews?

Set stars to ["1", "2"]. The filter is applied on Trustpilot's side, so you pay only for the low rated reviews you receive.

Does the output include the company's reply, and can I find reviews the business never answered?

Every review row has hasReply and, where present, reply.text and reply.publishedDate. Filter the export on hasReply false for unanswered reviews, or set withRepliesOnly to true for the opposite.

Can I scrape several companies in one run, or discover companies from a category instead of listing domains?

Give up to 200 domains in one run, each with its own coverage row. Switch to companies mode with a category id or URL (up to 10,000 companies per category, filtered by country, TrustScore and claimed status) or a search keyword to get company rows, then feed the domains back into a reviews run.

Can I schedule this weekly and get only the reviews that are new since the last run?

Set a dedupMemoryName. The Actor keeps a named key-value store of delivered review ids per memory name; later runs skip those reviews free of charge and deliver only new ones. Combine with dateRange: "last30days" so each run reads only recent pages.

Why does this Actor run with limited permissions?

It needs only its own storages and the named dedup memory it creates itself. Limited permissions mean it cannot touch anything else in your account, which is the least privilege the platform offers.

Changelog

  • 0.1 (2026-09-16): first release. Reviews mode with full coverage sharding and coverage rows, companies mode (search and categories), dedup memory, company profile rows.

More data tools by Automation Craft