Trustpilot Reviews Scraper — Ratings & Replies avatar

Trustpilot Reviews Scraper — Ratings & Replies

Pricing

from $0.51 / 1,000 reviews

Go to Apify Store
Trustpilot Reviews Scraper — Ratings & Replies

Trustpilot Reviews Scraper — Ratings & Replies

Export a company's Trustpilot reviews, several companies in one run. Every review arrives with its rating, text, dates and the company's reply, plus the two fields that separate a genuine complaint from a solicited five star: who invited the review, and how many the writer has ever left.

Pricing

from $0.51 / 1,000 reviews

Rating

0.0

(0)

Developer

The Netaji

The Netaji

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Trustpilot Reviews Scraper

The Actor downloads a company's Trustpilot reviews as a table: the star rating, the headline, the review text, the dates, and whatever the company wrote back. Several companies can be listed in one run, and each is walked in turn, so a whole competitor set arrives in one dataset ready for a spreadsheet or a sentiment model.

Three columns are the reason to use this rather than copy a review page by hand. reviewer_review_count is the lifetime number of reviews that person has written across all of Trustpilot, which separates a throwaway account from an established reviewer. verification_source reports invitation where the company solicited the review rather than the reviewer arriving on their own, which is the difference between a wall of genuine praise and a wall of requested praise. And reply_percentage, carried on every row, states what share of its reviews the company answers; a one-star review reads differently beside a company that answers 2% of its reviews than beside one that answers 90%.

Accepted input

domain is required and accepts one or more Trustpilot company keys, one per entry. A pasted Trustpilot company URL is accepted and reduced to the key. sort accepts recency or relevance and may be omitted. maxItems caps how many reviews are saved for each company in the list and defaults to 100; a value of 0 removes the cap and lets each company run to the end of its reviews.

{
"domain": ["www.amazon.com"],
"sort": "recency",
"maxItems": 40
}

Keys rarely have to be typed by hand. Every row produced by Trustpilot Search Scraper, Trustpilot Category Scraper and Trustpilot Company List Scraper carries the key in its domain column, and those strings can be pasted straight in here.

Response fields

{
"domain": "www.amazon.com",
"display_name": "Amazon",
"profile_url": "https://www.trustpilot.com/review/www.amazon.com",
"review_id": "6a80e73565b884964e2bc035",
"page": 1,
"rating": 1,
"rating_scale_max": 5,
"title": "Don't lie !!",
"text": null,
"likes": 0,
"source": "Organic",
"language": "en",
"experienced_date": "2026-08-15T00:00:00.000Z",
"published_date": "2026-08-16T00:24:53.000Z",
"updated_date": null,
"has_reply": false,
"reply_text": null,
"is_verified": false,
"verification_source": "invitation",
"reviewer_name": "Rosemary Hart",
"reviewer_review_count": 5,
"reviewer_country": "GB",
"total_reviews": 45550,
"total_filtered_reviews": 29953,
"reply_percentage": 12,
"average_days_to_reply": 3
}
FieldWhat it says
rating, rating_scale_maxThe reviewer's stars, and the top of the scale, which is always 5 here.
title, textThe headline and the body as written.
likesHow many readers marked the review useful.
source, is_verified, verification_sourceWhether the reviewer arrived on their own or was invited, and whether Trustpilot verified the purchase.
reviewer_id, reviewer_name, reviewer_review_count, reviewer_countryWho wrote it, and how many reviews they have written in total.
experienced_date, published_date, updated_dateWhen the experience happened, when the review went up, and when it was last edited.
has_reply, reply_text, reply_published_dateWhether the company answered, what it wrote, and when.
language, is_pending, is_filteredThe review's language and Trustpilot's own processing flags.
review_id, pageTrustpilot's id for the review, and the page it was read from.
domain, display_name, profile_urlThe company the review belongs to.
total_reviews, total_filtered_reviews, reply_percentage, average_days_to_replyCompany context repeated on every row, so a single exported row is readable on its own.

Three dates are published because they differ routinely. experienced_date is when the reviewer says the experience happened and is the date to use for anything about the business; published_date is when the review went up and is what the recency ordering sorts on; updated_date is set only where the reviewer edited the review afterwards.

Fields absent from the upstream response are returned as null rather than omitted.

Questions

Setting sort to Most recent changed nothing. Is the parameter broken? No. Trustpilot's own default ordering is already recency, so setting sort to recency returns the same reviews as omitting sort entirely. relevance is the value that reorders, and it returns a different set of reviews rather than the same set in a different order. The parameter looks as though recency were the special case; it is the other way round, and the run log names the ordering that was actually applied. No other value is accepted, because Trustpilot answers an unknown sort with a normal response and its default ordering, which would produce plausible, wrongly-ordered data with nothing to indicate it.

Why did a run save fewer reviews than maxItems? Either the company holds fewer reviews than the cap, or the run reached the end of what Trustpilot pages through. total_filtered_reviews on any saved row states the ceiling for that company, and it is available after a single page has been read. Reviews come twenty to a page, and the run continues while Trustpilot reports a further page rather than stopping because a page arrived short; the last page of a long company is usually partial. One company measured 1,498 pages.

Why do total_reviews and total_filtered_reviews disagree? Both are accurate and they count different things. total_reviews is every review the company holds; total_filtered_reviews is the subset matching Trustpilot's default language filter. One company measured 45,550 against 29,953. Pagination walks the smaller figure, so total_filtered_reviews is the number to size a run against, and the difference between the two is reviews written in other languages.

Is maxItems shared across the whole run or applied per company? Per company. A run given twenty companies is asking for a comparable slice of each, and a single shared cap would return the first company's reviews and nothing else. A run of twenty companies at maxItems 100 therefore saves up to 2,000 rows.

Can reviews be filtered by star rating or by date before the run? No. Only the company key, the page and the sort order are wired, because Trustpilot answers an unrecognised filter value with a normal response and its default result set. A filter that had not been verified against a real comparison would silently do nothing rather than fail, which is worse than not offering it. Filtering the exported dataset on rating or published_date reaches the same result.

Why is text empty on some rows? The reviewer left a rating and a title without writing prose, which is common at both ends of the scale. has_reply behaves similarly and deliberately: it is read from the presence of Trustpilot's reply block rather than from the fields inside it, so it stays accurate where a company replied without text and reply_text is null.

A key returned nothing and the run kept going. Is that a failure? No. A key for which Trustpilot serves no company page is reported in the run log and skipped, and the run continues with the next key, so a stale list of five hundred domains still returns the reviews for the domains that exist. The usual cause is a key that was constructed rather than copied: a missing www., or a path that was trimmed. rac.co.uk/insurance and www.rac.co.uk are two different companies, and a truncated key returns the other one rather than an error.

Where is the company's TrustScore? Not on this Actor. The review page states the company's review counts and its star distribution but not the score itself; that value appears on directory rows, and Trustpilot Search Scraper and Trustpilot Category Scraper both return trust_score. An average computed from the star distribution is a different number, so none is published under that name.

Is a login, a cookie, or a proxy required? No. The company key is the only required input.

Trustpilot Company Scraper returns one row per company rather than one per review, and is the cheaper choice where the reviews themselves are not needed. Trustpilot Search Scraper resolves company names to the keys this Actor takes.