Trustpilot Reviews
Pricing
from $5.00 / 1,000 run start fees
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.
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 for | Combinations | Reviews you can reach per company |
|---|---|---|
| No filters | 1 | 200 |
| Star ratings 1 and 5 | 2 | 400 |
| All five star ratings | 5 | 1,000 |
| Five star ratings x three languages | 15 | 3,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
| Field | Type | Default | Description |
|---|---|---|---|
companyUrls | array | ["booking.com"] | Companies to read, one per line. A full Trustpilot address or a bare domain both work. |
maxReviewsPerCompany | integer | 20 | Stop after this many reviews per company. 0 takes everything reachable. |
stars | array | (empty = all) | Keep only these star ratings. More than one runs as separate series. |
languages | array | (empty = site default) | Two-letter codes such as en, de, nl, or the single entry all. |
sort | string | recency | recency for newest first, relevance for Trustpilot's own order. |
date | string | (empty = any) | One of Trustpilot's windows: last30days, last3months, last6months, last12months. |
publishedAfter | string | (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. |
verified | boolean | false | Verified reviews only. Expect far fewer. |
withReplies | boolean | false | Only reviews the company has answered. |
search | string | (empty) | Keep only reviews whose text matches this phrase. |
includeCompanyInfo | boolean | true | Attach the company profile to every row. Costs nothing extra. |
proxy_country | string | (empty) | Two-letter country to read the pages from. Trustpilot serves the same reviews everywhere. |
business_domain | string | (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.