Trustpilot Reviews avatar

Trustpilot Reviews

Pricing

from $5.00 / 1,000 run start fees

Go to Apify Store
Trustpilot Reviews

Trustpilot Reviews

Hosted trustpilot scraper that returns structured review data from any Trustpilot business page as JSON, title, body, rating, reviewer, date, language, plus the aggregate business rating. Run it from the Apify Store with one click, or call it from your own service via the Apify API.

Pricing

from $5.00 / 1,000 run start fees

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

3 days ago

Last modified

Share

Trustpilot Reviews Scraper: Export Reviews, Ratings and Replies

Hosted Trustpilot scraper. Give it a list of companies and get every review back as structured JSON: the reviewer, the star rating, the publication date and the date of the experience itself, the language, whether Trustpilot verified the review, and the company's public reply. Filter by star rating, language, date window, verified status, replies or a phrase. Run it from the Apify Store with one click, or call it from your own service through the Apify API. You pay per review row, not per month.

If you have been looking for a way to scrape Trustpilot reviews programmatically, without an enterprise contract and without an open-source scraper that breaks every month, this is the hosted, maintained, pay-per-use alternative.

What you get

  • Full review records. Headline, body, star rating, reviewer name and country, how many reviews that person has written, publication date, the date the reviewer says the experience happened, language, useful-vote count, the verification flag, and a direct link to the single review.
  • The company's reply, with its own date, on every review that has one.
  • The company profile attached to each row when you want it: trust score, total reviews, reviews in the last twelve months, categories, website, country, address, phone, and whether the profile is claimed or closed.
  • Real filters, checked. Star rating, language, Trustpilot's own date windows, an exact "published after" date, verified only, replies only, and a phrase search inside the review text.
  • Many companies per run. Paste a list; every company is scraped with the same filters and each row carries the company it belongs to.
  • Pay only for what you scrape. Pricing scales with the reviews returned. No monthly subscription.

Why scrape Trustpilot

Trustpilot is the dominant consumer review platform in Europe and is growing fast in the US, with over 300 million reviews. For retailers, SaaS companies and service businesses those reviews are a primary input to reputation tracking, competitor research and Voice-of-Customer work. They are public, moderated and carry Trustpilot's own verification signal, which makes them a far more structured input than scraping social media for sentiment.

Trustpilot's own enterprise API starts in the four figures a month. This Actor is the middle ground: hosted, maintained, billed per review.

How many reviews you can get

Trustpilot shows 20 reviews per page and asks anonymous readers to sign in from page 11 onwards. That puts a firm ceiling of 200 reviews on any one set of filters, and it is a property of the site, not of this Actor. No scraper gets past it without a Trustpilot account.

What does lift the ceiling is splitting the request. Every combination of filters gets its own 200:

What you ask forCombinationsReviews you can reach per company
No filters1200
Star ratings 1 and 52400
All five star ratings51,000
Five star ratings x three languages153,000

The Actor does this for you. Pick more than one star rating or more than one language and it runs each as its own series, splits your budget evenly across them, and hands any unused part of one series to the next. The run summary reports reachable_ceiling_per_company so you can see what was available.

Measured on a live company: 200 unique reviews in 34 seconds, no duplicates.

Input

FieldTypeDefaultDescription
companyUrlsarray["booking.com"]Companies to read, one per line. A full Trustpilot address or a bare domain both work.
maxReviewsPerCompanyinteger20Stop after this many reviews per company. 0 takes everything reachable.
starsarray(empty = all)Keep only these star ratings. More than one runs as separate series.
languagesarray(empty = site default)Two-letter codes such as en, de, nl, or the single entry all.
sortstringrecencyrecency for newest first, relevance for Trustpilot's own order.
datestring(empty = any)One of Trustpilot's windows: last30days, last3months, last6months, last12months.
publishedAfterstring(empty)Exact cut-off, 2026-09-01 or a full timestamp. Applied to the rows, and the run stops early once it reaches older reviews.
verifiedbooleanfalseVerified reviews only. Expect far fewer.
withRepliesbooleanfalseOnly reviews the company has answered.
searchstring(empty)Keep only reviews whose text matches this phrase.
includeCompanyInfobooleantrueAttach the company profile to every row. Costs nothing extra.
proxy_countrystring(empty)Two-letter country to read the pages from. Trustpilot serves the same reviews everywhere.
business_domainstring(empty)The original single-company input. Still accepted so existing saved runs and API calls keep working.

Output

One dataset row per review.

{
"review_id": "6aaa6c20e19f83ea64c46f50",
"title": "Smooth booking experience with one small downside",
"body": "Everything went through in under a minute and the confirmation...",
"rating": 4,
"reviewer": "shima",
"reviewer_country": "GB",
"reviewer_review_count": 3,
"date": "2026-09-16T12:14:56.000Z",
"experienced_date": "2026-09-14T00:00:00.000Z",
"language": "en",
"likes": 0,
"is_verified": true,
"has_reply": true,
"reply_text": "Thank you for taking the time to write this.",
"reply_date": "2026-09-16T15:02:10.000Z",
"review_url": "https://www.trustpilot.com/reviews/6aaa6c20e19f83ea64c46f50",
"company": "booking.com",
"company_url": "https://www.trustpilot.com/review/booking.com",
"position": 1,
"company_info": {
"business_name": "Booking.com",
"trust_score": 1.5,
"review_count": 126773,
"review_count_last_12_months": 38104,
"categories": ["Hotel", "Travel Aggregator"],
"country_code": "NL",
"website_url": "https://www.booking.com"
}
}

The run also writes a summary record with how many companies were requested and returned, how many reviews came back, how many filter combinations were used, and how far the run could have reached. Anything that went wrong lands in errors with a code and a message.

Filters that quietly do nothing

Trustpilot does not reject a filter it cannot read. It drops it and serves a full page of perfectly genuine reviews anyway, which is the worst possible failure: the answer looks right and is about the wrong thing.

This Actor reads back what the site says it applied and compares it to what you asked for. Any filter that did not take effect is named in the run summary's warnings, so you find out from the output rather than from a chart six weeks later.

Common questions

Can I get all 126,000 reviews of a company? Not anonymously, and not from any scraper. Trustpilot's sign-in wall at page 11 is the limit. Split the run by star rating and language to reach several thousand.

Why do I get fewer reviews than I asked for? Usually the filters. verified in particular can cut a company with 13,000 reviews down to a handful. The summary tells you how many combinations ran and what the ceiling was.

Is the rating out of five or out of ten? Out of five, everywhere. The rating on each review and the trust_score on the company are on the same 1 to 5 scale, so you can average them together safely.

Does the reviewer's country tell me where the purchase happened? No. It is the country on the reviewer's Trustpilot profile.

Support

Open an issue on the Actor's page. Include the run id; the summary and errors records make most problems obvious in one read.