Trustpilot Scraper
Pricing
from $0.50 / 1,000 reviews
Trustpilot Scraper
5 modes (reviews, search companies, browse categories, company info, transparency reports). 50+ fields per review including AI summaries, B2B contact details (email/phone/address), competitor map, and reviewer cross-business stats. Up to 5K reviews per company.
Pricing
from $0.50 / 1,000 reviews
Rating
5.0
(1)
Developer
Sourabh Kumar
Actor stats
1
Bookmarked
5
Total users
3
Monthly active users
9 days ago
Last modified
Categories
Share
Overview
Scrapes Trustpilot reviews, ratings, AI summaries, B2B contact details, and Trustpilot's official transparency reports. Talks to the same internal JSON endpoint the Trustpilot React app uses, so payloads are small and fields stay in sync with the live site.
Pricing: $0.50 per 1,000 reviews. $0.20 per 1,000 search/category results. $0.001 per company-info record. $5 per 1,000 transparency reports.
Five modes in one actor: extract reviews, search the company directory, browse a category, pull compact company info, or download the official transparency report.
Why this scraper (vs. the official API or competitor actors)
Trustpilot's official Business API needs OAuth credentials, only works for businesses you own, and skips the AI summary, contact info, and transparency data the consumer site shows. Existing Trustpilot scrapers on Apify usually cap at 200 reviews per filter and only extract 25 to 30 fields per review.
| Concern | Official Trustpilot API | Most Apify Trustpilot scrapers | This scraper |
|---|---|---|---|
| Account / OAuth required | Yes (developer account) | No | No |
| AI review summary + per-topic summaries | No | No | Yes |
| Company contact (email, phone, address) | Only your own business | 1 of 9 actors | Yes |
| Transparency report (240-cell monthly star x method matrix) | No | No | Yes |
| Search-by-keyword + browse-by-category modes | No | 1 of 9 actors | Yes |
| Reviews per company | API: capped to your own | 200 (one filter) | Up to 5,000 (cartesian-product slicing) |
| Incremental change tracking (NEW / UPDATED / REAPPEARED) | No | No | Yes |
| Price per 1,000 reviews | Free for own data only | $0.20 to $3.00 | $0.50 |
| Per-run start fee | n/a | Often $0.05 | None |
| Modes split across separate actors? | n/a | Frequently 2 to 4 | One actor |
If you only need your own company's reviews, the Trustpilot Business API is free. For everyone else's data, the consumer site is the source of truth.
What data can you extract?
50+ fields per review. The headline ones:
| โญ Rating + title + body | ๐ Published, experienced, updated, submitted | ๐ค Reviewer name, country, total reviews | โ Verified status + verification source |
| ๐ฌ Company reply text + author + date | ๐ Reviewer's other reviews on same company | ๐ Review language ISO code | ๐ Helpful votes |
| ๐ข Company name, domain, trust score | ๐ง Company email + phone + address | ๐ Per-star count breakdown (1 to 5) | ๐ค AI summary + per-topic summaries |
| ๐ฅ 8 similar competitors per company | ๐ Reply behaviour (avg days, % replied) | ๐ค Whether the company uses AI replies | ๐ท๏ธ Categories + #X-of-Y category ranking |
searchCompanies and categoryBrowser records (lead-gen mode)
One record per business found: companyName, companyDomain, companyTrustScore, companyTotalReviews, companyContactEmail, companyContactPhone, companyContactAddress, city, zip, lat, lon, categories.
companyInfo records (compact metadata mode)
companyId, name, domain, trust score, total reviews, claimed status, full per-star breakdown, contact info, description, country code. About 1.4 KB per record.
transparency records (one per company)
replyRate, replyBehavior (avg days to reply, % of negatives replied to), reportingStatistics (reviews flagged, taken offline, reactivated), collectingMethodDistribution (organic vs invited vs redirected vs automatic), and the full 240-cell monthly star x collecting-method matrix.
How to scrape Trustpilot: step by step
- Create a free Apify account. 30 seconds, no card needed.
- Open the Trustpilot Scraper in the Apify Console.
- Paste a Trustpilot company URL or just a domain (
amazon.com,booking.com). Or pick a different mode and pass a search query / category id. - Click Start. A 200-review run finishes in about 30 seconds. A 1,000-review slice run takes 1 to 2 minutes.
- Export as JSON, CSV, or Excel, or pull the dataset via the API.
How much does Trustpilot Scraper cost?
Pay per result. Each mode bills its own event so you only pay for what you actually pulled.
| Mode | Per result | Per 1,000 | Free plan ($5 credit) | Starter plan ($29/mo) |
|---|---|---|---|---|
reviews | $0.0005 | $0.50 | ~10,000 reviews | ~58,000 reviews |
searchCompanies / categoryBrowser | $0.0002 | $0.20 | ~25,000 businesses | ~145,000 businesses |
companyInfo | $0.001 | $1.00 | ~5,000 companies | ~29,000 companies |
transparency | $0.005 | $5.00 | ~1,000 reports | ~5,800 reports |
No per-run start fee. Apify platform compute is separate and runs roughly $0.10 to $0.50 per 1K reviews on the default 1 GB memory setting; most runs finish well inside the free credit.
Input
{"mode": "reviews","urls": ["amazon.com", "booking.com"],"maxReviews": 500,"stars": [1, 2],"languages": ["en", "de"],"dateRange": "last3months","verifiedOnly": true,"repliesOnly": false,"topics": ["customer_service", "delivery_service"],"keyword": "refund","sort": "recency","aggressiveSlicing": true,"includeCompanyInfo": true,"includeContact": true,"includeStats": true,"includeSimilarCompetitors": true,"includeAiSummary": true,"compact": false}
| Field | Type | Default | Note |
|---|---|---|---|
mode | string | reviews | One of reviews, searchCompanies, categoryBrowser, companyInfo, transparency |
urls | array | [] | Company URLs or bare domains. Old companyUrls is still accepted as an alias |
searchTerms | array | [] | Brand names; auto-resolved to a Trustpilot slug via the directory search |
maxReviews | int | 200 | Up to 10,000 per company. Above 200, slicing kicks in automatically |
stars | array | [] | Subset of [1,2,3,4,5]. Old single-value starFilter still accepted |
languages | array | [] | ISO codes. Each language fetched in order until maxReviews is reached โ size maxReviews for your language count |
dateRange | string | all | last30days, last3months, last6months, last12months |
startDate | string | none | YYYY-MM-DD chronological cutoff applied client-side |
verifiedOnly | bool | false | Server-side verified=true filter |
repliesOnly | bool | false | Server-side replies=true filter |
topics | array | [] | e.g. customer_service, delivery_service, refund, product |
keyword | string | none | Full-text body search |
sort | string | recency | Or relevance |
aggressiveSlicing | bool | auto | Cartesian product over (stars, dateBucket, sort), dedupe by review id. Auto-on when maxReviews > 200 |
lookbackDays | int | none | Only emit reviews published within the last N days (shortcut for startDate) |
includeContact | bool | true | email, phone, address per company |
includeStats | bool | false | Per-star count breakdown |
includeSimilarCompetitors | bool | false | 8 competitor companies per record |
includeAiSummary | bool | true | AI summary + topic summaries on the first review per company |
compact | bool | false | Trim each record to core fields (good for AI / MCP) |
incremental | bool | false | Tag each record with changeType (NEW / UPDATED / REAPPEARED). Needs stateKey |
stateKey | string | none | Identifier for the persistent dedupe store; reuse across runs |
For searchCompanies and categoryBrowser, set searchQuery (or categoryId), searchCountry (default US), maxBusinesses (default 200), and optionally minTrustScore / maxTrustScore / onlyClaimed.
Recipes (ready-to-paste)
Pull every review for one company
{ "mode": "reviews", "urls": ["amazon.com"], "maxReviews": 5000, "aggressiveSlicing": true }
Just the 1-star reviews, last 30 days
{ "mode": "reviews", "urls": ["booking.com"], "stars": [1], "dateRange": "last30days", "maxReviews": 200 }
Lead-gen: every car-insurance company on Trustpilot US
{ "mode": "categoryBrowser", "categoryId": "car_insurance_company", "searchCountry": "US", "minTrustScore": 4, "maxBusinesses": 1000 }
Find a company by name (when you don't have the URL)
{ "mode": "searchCompanies", "searchQuery": "Patagonia", "searchCountry": "US", "maxBusinesses": 5 }
Cheap company-info pull for an account list
{ "mode": "companyInfo", "urls": ["stripe.com", "twilio.com", "sendgrid.com"] }
Transparency audit (paid Trustpilot subscription? AI replies on?)
{ "mode": "transparency", "urls": ["amazon.com", "booking.com", "nike.com"] }
Brand monitor (run on a schedule, dedupe across runs)
{ "mode": "reviews", "urls": ["yourbrand.com"], "incremental": true, "stateKey": "yourbrand-monitor", "maxReviews": 200 }
Compact output for an LLM context window
{ "mode": "reviews", "urls": ["amazon.com"], "maxReviews": 50, "compact": true }
Output
Sample record from mode: "reviews", scraping booking.com with company info, contact, stats, and AI summary on:
{"type": "review","reviewId": "69ea7eee0e75d9155452e51d","title": "Don't book attraction from booking.com","text": "I made a booking through Booking.com which was the worst thing I did...","rating": 1,"publishedDate": "2026-04-23T22:19:58.000Z","experiencedDate": "2026-04-21T00:00:00.000Z","reviewUrl": "https://www.trustpilot.com/reviews/69ea7eee0e75d9155452e51d","language": "en","source": "Organic","isVerified": false,"verificationLevel": "not-verified","likes": 0,"reviewerName": "zaheer butt","authorId": "5b6848cd4de5666d340a4b61","authorUrl": "https://www.trustpilot.com/users/5b6848cd4de5666d340a4b61","reviewerCountry": "GB","reviewerReviewCount": 19,"reviewerNumberOfReviewsOnSameDomain": 1,"replyText": null,"replyDate": null,"replyAuthor": null,"companyId": "46d3f1f8000064000500b592","companyName": "Booking.com","companyDomain": "www.booking.com","companyTrustScore": 1.7,"companyStars": 1.5,"companyTotalReviews": 108885,"companyWebsite": "https://www.booking.com","companyClaimed": true,"companyCategories": ["Travel Aggregator", "Hotel"],"companyDescription": "Offering secure, easy booking since 1996, Booking.com is the world's most popular hotel reservations website, with trusted service in 41 languages.","companyReplyBehavior": {"averageDaysToReply": 0,"replyPercentage": 0,"totalNegativeReviewsCount": 19433,"negativeReviewsWithRepliesCount": 0},"companyIsUsingAIResponses": false,"companyContactEmail": "customer.service@booking.com","companyContactPhone": "+31 20 712 5600","companyContactAddress": "Herengracht 597","companyContactCity": "Amsterdam","companyContactCountry": "NL","companyStatsRatings": { "total": 108885, "one": 76332, "two": 3764, "three": 2410, "four": 4728, "five": 21651 },"aiSummary": "Most reviewers were let down by their experience overall. Many people were dissatisfied with the customer service, finding it unhelpful and difficult to reach a real person...","topicSummaries": [{ "topic": "booking_process", "summary": "Reviewers highlight negative aspects of the booking process. Many customers experienced issues such as hidden charges..." },{ "topic": "customer_service", "summary": "Clients share negative opinions on customer service, with many reviewers expressing extreme disappointment..." }],"scrapedAt": "2026-04-23T22:48:56.723Z"}
searchCompanies / categoryBrowser record (one per business):
{"type": "business","businessUnitId": "573f69490000ff00058d2373","companyName": "Carrot Insurance","companyDomain": "www.carrotinsurance.com","companyProfileUrl": "https://www.trustpilot.com/review/www.carrotinsurance.com","companyTrustScore": 4.6,"companyStars": 4.5,"companyTotalReviews": 6952,"companyContactWebsite": "https://www.carrotinsurance.com","companyContactAddress": "98 Liverpool Road, Formby, Liverpool, Merseyside","companyContactCity": "Formby","companyContactZip": "L37 6BS","companyCategories": [{ "categoryId": "insurance_agency", "displayName": "Insurance Agency", "isPrimary": false }],"discoveredVia": "search","discoveryQuery": "car insurance","scrapedAt": "2026-04-23T22:49:15.395Z"}
transparency record (one per company, slimmed):
{"type": "transparencyReport","companyId": "46d46ce6000064000500c2ad","companyName": "Nike","companyDomain": "www.nike.com","isClaimed": false,"claimedDate": "2023-11-20T16:17:34.000Z","isUsingPaidFeatures": false,"replyRate": 0,"reportingStatistics": {"totalReportsCount": 0,"reviewsTakenOfflineCount": 0,"reactivatedReviewsCount": 0},"reviewStatistics": {"collectingMethodDistribution": { "automatic": 0, "manual": 0, "organic": 2326, "redirected": 2, "all": 2328 },"totalNumberOfReviews": 2328,"replyBehavior": { "averageDaysToReply": 0, "replyPercentage": 0, "totalNegativeReviewsCount": 1978 },"monthlyDistribution": "...12-month rolling histogram, star x method per cell..."}}
Field availability by mode
| Field group | reviews | searchCompanies | categoryBrowser | companyInfo | transparency |
|---|---|---|---|---|---|
| Review body, rating, dates | โ | - | - | - | - |
| Reviewer name + ID + country | โ | - | - | - | - |
| Reviewer profile URL | โ | - | - | - | - |
| Company reply text + author | โ | - | - | - | - |
| AI summary + topic summaries | โ | - | - | - | - |
| Company name + domain + trust score | โ | โ | โ | โ | โ |
| Per-star count breakdown | opt-in | - | - | โ | partial |
| Contact email / phone / address | opt-in | โ | โ | โ | - |
| Lat / lon coordinates | - | โ | โ | - | - |
| 8 similar competitors | opt-in | - | - | - | - |
| Reply behaviour KPIs | opt-in | - | - | - | โ |
| Reports + investigations + takedowns | - | - | - | - | โ |
| Monthly review histogram | - | - | - | - | โ |
Use cases
- B2B lead gen - browse a category and grab email + phone + address for every company. Insurance, hosting, crypto, e-commerce - whatever your ICP looks like.
- Brand monitoring - schedule a daily incremental run on your own brand; only NEW or UPDATED reviews land in your dataset.
- Sentiment analysis at scale - the AI summary and per-topic summaries are already in the output, no LLM call needed downstream.
- Competitive intelligence - turn
includeSimilarCompetitors: trueon and you get 8 ranked competitors per company you scrape, free. - Fake-review detection - the transparency mode exposes Trustpilot's own collecting-method distribution (organic vs invited vs redirected) and report counts. Useful for auditors and journalists.
- Pre-purchase research - pull the 1-star reviews from the last 30 days for any product you're considering.
- CX / support analytics - export the full review feed plus reply text into your warehouse, group by topic, track resolution rates.
- Onboarding screen for sales tools - paste a prospect's website, hit
companyInfomode, and you have a full Trustpilot card to embed. - AI / RAG context - compact mode trims each record to the fields a language model actually needs.
Other scrapers you might like
| TripAdvisor Scraper Hotel + restaurant reviews + ratings. | Google Play Scraper App listings, reviews, install counts. | Apple App Store Scraper iOS app reviews + metadata. |
| LinkedIn Company Scraper Headcount, industry, HQ. | Shopify Scraper Store products, prices, variants. | SimilarWeb Scraper Traffic + ranking data per domain. |
Frequently asked questions
Is it legal to scrape Trustpilot?
Scraping public data is generally allowed in the US and most of the EU, as long as you don't collect personal data that falls under GDPR or CCPA without a lawful basis. This actor only touches publicly accessible Trustpilot pages, but you're responsible for how you use the output.
Apify published a detailed breakdown: Is web scraping legal?.
How much does Trustpilot Scraper cost?
Pay-per-result. $0.50 per 1,000 reviews in the default reviews mode. The Apify Free plan gives you $5 in usage credits every month, which is roughly 10,000 reviews. The $29/month Starter plan covers about 58,000 reviews per month.
Other modes are billed differently: search/category results at $0.20 per 1K (lead gen), company info at $1 per 1K, transparency reports at $5 per 1K. No per-run start fee. No subscription lock-in.
Can I integrate Trustpilot Scraper with other tools?
You can push results straight into Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and plenty more. The Apify platform treats every actor as a webhook source, so anything that reads webhooks or pulls from an API can consume the output.
See Apify integrations for the full list.
Can I use Trustpilot Scraper with the Apify API?
Yes. Every run is available via the Apify REST API. A minimal start-run call:
curl -X POST "https://api.apify.com/v2/acts/sourabhbgp~trustpilot-scraper/runs?token=APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"urls": ["amazon.com"], "maxReviews": 100}'
Full docs: Apify API reference.
Can I use Trustpilot Scraper through an MCP Server?
Yes. Apify ships an MCP server that exposes every actor as a tool, so Claude Desktop, Cursor, and any other MCP-capable client can call this scraper directly. Setup: Apify MCP docs.
How does it compare to Trustpilot's own Business API?
Trustpilot's Business API is free, but it requires OAuth credentials and only returns data for businesses you control. It also doesn't expose the AI summary, the contact details on the public profile, the similar-competitors list, or the transparency report. If you need any of those, or you want data for companies you don't own, scraping the public site is the only option.
Why am I capped at 200 reviews per filter?
Trustpilot enforces a hard 200-review (10-page) cap on every reviews endpoint server-side. Page 11 redirects to a login wall. The bypass is filter slicing: combine star ratings, date buckets, and sort orders to get more unique reviews per company. The actor does this automatically when maxReviews > 200 (or set aggressiveSlicing: true explicitly). Realistic ceiling is around 5,000 unique reviews per company.
What happens if I pass a domain that isn't on Trustpilot?
The run finishes successfully with an empty dataset and a warning in the logs. You don't get charged for results that don't exist. Same goes for typos, unclaimed companies with zero reviews, or company URLs Trustpilot has merged into another profile.
How fast is it?
A 200-review run finishes in about 30 seconds. A 1,000-review aggressive-slicing run takes 1 to 2 minutes. The first 2 seconds of every run are a one-time Playwright cookie harvest to get past Trustpilot's AWS WAF; the rest is plain HTTP.
Your feedback
Ran into a bug, want a new field, or need a different market covered? Drop a note in the Issues tab. Every report goes to a human and fixes usually ship the same week.