Trustpilot Reviews Scraper - All Reviews, Ratings & Replies
Pricing
Pay per usage
Trustpilot Reviews Scraper - All Reviews, Ratings & Replies
Extract Trustpilot reviews with ratings, replies, reviewer info and company data for any company URL or domain. Served in seconds from a continuously refreshed dataset, with a live crawl for anything not collected yet. Filter by stars, language, verified, date or keyword. Export JSON, CSV, Excel.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Hasnain Nisar
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
3
Monthly active users
6 days ago
Last modified
Categories
Share
Trustpilot Reviews Scraper
Extract Trustpilot reviews with ratings, replies, reviewer info, and company data for any company. Export to JSON, CSV, or Excel.
What it does
Give it one or more Trustpilot company pages (or bare domains) and it returns the reviews - newest first or most relevant - including:
- Review - rating (1-5), title, full text, language, likes
- Dates - published date, date of experience, last update
- Verification - verified-order flag and verification source
- Reviewer - display name, country, total review count
- Company reply - reply text and reply date
- Company data - name, domain, TrustScore, star average, total reviews, website, categories, claimed status
How it stays fast and reliable
Reviews are served from a continuously refreshed dataset that is collected around the clock, so most runs finish in seconds with no browser and no proxy involved. Whenever the dataset holds fewer reviews than you asked for - or a company you ask for has not been collected yet - the actor crawls Trustpilot live for the rest, saves what it finds, and your next run is instant.
Every record says where it came from (dataSource: database or live) and when it was collected (dataCollectedAt). Stored copies older than Refresh stored copies older than (default 24 h) are queued for a fresh collection after the run.
If the live crawl cannot run (Trustpilot's bot protection is occasionally unreachable from a given exit), the company is queued for collection and the run still finishes cleanly with whatever it holds - re-run it a little later for the full set.
Input
| Field | Description |
|---|---|
companyUrls | Trustpilot review URLs (https://www.trustpilot.com/review/www.ebay.com) or bare domains (www.ebay.com) |
maxReviews | Max reviews per company (default 100) |
sortBy | recency (newest first) or relevance |
starsFilter | Only reviews with these star ratings, e.g. ["1", "2"] - leave empty for all |
languages | all (default) or a language code like en, de, fr, es |
verifiedOnly | Only verified reviews |
filterByDatePeriod | all, last30days, last3months, last6months, or last12months |
filterByCountryOfReviewers | Two-letter country code (US, GB, DE, ...) - keep only reviews by reviewers from that country |
searchKeyword | Only reviews whose title or text contains a keyword |
startFromPageNumber / endAtPageNumber | Return a specific page range (20 reviews per page; 0 end = no limit) |
includeCompanyDetails | Attach company profile fields to every review (default on) |
liveFallback | Crawl Trustpilot live when the prepared dataset has less than requested (default on) |
refreshAfterHours | Queue a fresh collection for stored copies older than this (default 24) |
Example input
{"companyUrls": ["https://www.trustpilot.com/review/www.ebay.com"],"maxReviews": 500,"sortBy": "recency"}
Output
One dataset record per review:
{"reviewId": "6a5e298fe781c1642d80d3e8","reviewUrl": "https://www.trustpilot.com/reviews/6a5e298fe781c1642d80d3e8","rating": 1,"title": "I bought Korean bbq sauce and was sent.","text": "I bought Korean bbq sauce and was sent miso ginger marinade...","language": "en","datePublished": "2026-07-20T15:58:39.000Z","dateOfExperience": "2026-07-20T00:00:00.000Z","dateUpdated": null,"likes": 0,"verified": false,"verificationSource": "invitation","reviewerName": "Chris","reviewerId": "5df7d10697520b132ac321cd","reviewerCountry": "US","reviewerReviewCount": 16,"replyMessage": null,"replyDate": null,"companyName": "eBay","companyDomain": "www.ebay.com","companyTrustScore": 1.3,"companyStars": 1.5,"companyTotalReviews": 18938,"companyWebsite": "https://ebay.com","companyCategories": ["e-Commerce Solution Provider"],"companyIsClaimed": true,"companyTrustpilotUrl": "https://www.trustpilot.com/review/www.ebay.com","dataSource": "database","dataCollectedAt": "2026-09-02T20:05:11.000Z"}
Download results as JSON, CSV, Excel, or XML from the dataset tab, or fetch them via the Apify API.
Why this scraper
- Fast - most runs are answered from the prepared dataset in seconds; live crawls read Trustpilot's embedded page data, not rendered HTML.
- Resilient - a live crawl passes Trustpilot's bot-protection challenge with a real browser, retries through a second connection if a proxy exit is unreachable, and anything still missing is queued rather than failed.
- Complete records - reviewer, reply, verification, and company profile in one flat row, ready for spreadsheets and BI tools.
FAQ
Is scraping Trustpilot reviews legal? This actor only collects publicly available data. Be sure your use complies with applicable laws and Trustpilot's terms; consult a lawyer if unsure.
How many reviews can I get? Up to maxReviews per company (max 50,000). Trustpilot paginates 20 reviews per page; the live crawl follows pagination until it reaches your limit or the last page.
Why does a record say dataSource: "database"? It was served from the prepared dataset. dataCollectedAt tells you when it was collected; lower refreshAfterHours if you need fresher copies.
Which proxies do I need? None for dataset-served runs. The default Apify datacenter proxy works for the live crawl.
Disclaimer
Extracts publicly available review and business information only. Not affiliated with, endorsed by, or connected to Trustpilot A/S; the name is used solely to describe the data source. You are responsible for how you use the data.