Trustpilot Scraper avatar

Trustpilot Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Trustpilot Scraper

Trustpilot Scraper

Scrape Trustpilot reviews with the field that decides whether a rating is earned: whether each review came in on its own or was solicited by the company.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Juan ignacio Veltri

Juan ignacio Veltri

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Scrapes Trustpilot reviews with the one field that decides whether a rating means anything: whether each review arrived on its own, or the company asked for it.

The field nobody exports

Trustpilot records the origin of every review. Companies can send invitations — by email, by API, by a link on a receipt — and those reviews count toward the public score exactly like the ones people write unprompted. It is not fraud and Trustpilot does not hide it. But no export includes it, so every Trustpilot dataset reads as if all reviews were spontaneous.

Two real companies, first page of reviews, on the same day:

CompanyTrustScoreReviews the company asked for
Amazon1.60 of 20
HelloFresh3.419 of 20
Temu1.81 of 20
Wish4.311 of 20

Wish outranks Temu by 2.5 stars. Half of Wish's reviews came in through a link the company handed out; Temu's did not. That is the difference this Actor makes visible, and it is one boolean away in the output:

{ "origin": "invited", "originRaw": "BasicLink" }

Set onlyOrganic and the dataset holds only the reviews a company did not ask for — the rating it earned rather than the one it collected.

originRaw carries Trustpilot's own label untouched, next to the normalized one. Review platforms add new labels without notice; with both fields you can check the classification against the source instead of trusting it.

Input

Give it a domain. Trustpilot identifies companies by domain, so you rarely need to open the site to find the right link:

{ "startUrls": ["amazon.com", "hellofresh.com"] }

Full Trustpilot URLs and company websites work too — https://www.trustpilot.com/review/www.amazon.com and https://www.amazon.com/gp/help both resolve to the same company.

Only the complaints, only the ones the company did not solicit, only this month:

{
"startUrls": ["temu.com"],
"maxRating": 2,
"onlyOrganic": true,
"publishedAfter": "2026-08-01",
"maxPagesPerBusiness": 50
}
ParameterTypeDefaultWhat it does
startUrlsarray["https://www.trustpilot.com/review/www.amazon.com"]Companies, as bare domains or URLs.
maxPagesPerBusinessinteger520 reviews per page, newest first. Large companies run past 4,000 pages.
onlyOrganicbooleanfalseKeep only reviews the company did not ask for.
minRating / maxRatinginteger1 to 5. maxRating: 2 reads only the complaints.
onlyVerifiedbooleanfalseOnly reviews Trustpilot confirmed came from a real experience.
onlyWithReplybooleanfalseOnly reviews the company answered in public.
publishedAfterstringYYYY-MM-DD. Reviews come newest first, so this is the cheap way to fetch only what changed since your last run.
languagesarrayTwo-letter codes, e.g. en, es.
keywordsarrayKeep reviews whose title or text matches, e.g. refund.
maxItemsinteger200Hard cap on rows saved and charged. 0 means no cap.
includeSeenbooleantrueSet to false to save only reviews never returned before.

Output

One row per review. Every row carries the company profile, so a single review is readable without joining anything.

{
"id": "trustpilot:6a8c9114df2857f544f8fc47",
"url": "https://www.trustpilot.com/review/www.amazon.com",
"source": "trustpilot",
"scrapedAt": "2026-08-24T21:10:41.547Z",
"reviewId": "6a8c9114df2857f544f8fc47",
"rating": 1,
"title": "I don't know who is in charge of returns",
"text": "It's been going on 20 days and I still have yet to get my return back...",
"origin": "organic",
"originRaw": "Organic",
"isVerified": false,
"publishedAt": "2026-08-24T20:44:36.000Z",
"experiencedAt": "2026-08-04T00:00:00.000Z",
"language": "en",
"likes": 0,
"reply": null,
"author": { "name": "Brittany Ashby", "reviewsCount": 1, "country": "US", "isVerified": false },
"business": {
"id": "46ad346800006400050092d0",
"name": "Amazon",
"domain": "www.amazon.com",
"score": 1.6,
"reviewsCount": 48646,
"categories": ["Book Store", "Clothing Store"],
"country": "GB",
"isClaimed": true,
"collectsIncentivized": false,
"alerts": []
}
}
FieldNotes
originorganic, invited, imported or unknown. Never guesses: a label Trustpilot does not state stays unknown rather than being assumed spontaneous.
originRawTrustpilot's own label, unmodified.
experiencedAtWhen the purchase or service happened, which Trustpilot asks for separately from the publish date. Twenty reviews published today about experiences from a year ago say nothing about how the company is doing now.
author.reviewsCountHow many reviews this person has written in total. A reviewer with exactly one carries less weight.
business.scoreThe TrustScore to one decimal, not the half-star value used for the star graphic.
business.collectsIncentivizedTrustpilot flags companies that offered something in exchange for reviews. When true, the average cannot be compared against a company that did not.
business.alertsWarnings Trustpilot publishes about the company, raised when it detects review manipulation. The strongest signal on the profile.
replyThe company's public answer, with its date.

The company's own AI summary of all its reviews is read but kept out of the dataset: it is one per company, not one per review, and repeating it on every row would multiply the export size for nothing.

Cost

20 reviews per request, so this is the cheapest vertical we publish. Empty and duplicate rows are never charged.

Notes

Everything comes from the state Trustpilot ships to hydrate its own page — already typed and normalized by Trustpilot — rather than from CSS selectors. That is why a redesign does not break this parser: the markup around the review cards changes often, the state that fills them does not.

Trustpilot filters clients by fingerprint, so the Actor runs behind Apify's Unblocker. Verified against company pages, page 2 and category pages.