Trustpilot Scraper avatar

Trustpilot Scraper

Pricing

from $0.50 / 1,000 reviews

Go to Apify Store
Trustpilot Scraper

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

Sourabh Kumar

Maintained by Community

Actor stats

1

Bookmarked

5

Total users

3

Monthly active users

9 days ago

Last modified

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.

ConcernOfficial Trustpilot APIMost Apify Trustpilot scrapersThis scraper
Account / OAuth requiredYes (developer account)NoNo
AI review summary + per-topic summariesNoNoYes
Company contact (email, phone, address)Only your own business1 of 9 actorsYes
Transparency report (240-cell monthly star x method matrix)NoNoYes
Search-by-keyword + browse-by-category modesNo1 of 9 actorsYes
Reviews per companyAPI: capped to your own200 (one filter)Up to 5,000 (cartesian-product slicing)
Incremental change tracking (NEW / UPDATED / REAPPEARED)NoNoYes
Price per 1,000 reviewsFree for own data only$0.20 to $3.00$0.50
Per-run start feen/aOften $0.05None
Modes split across separate actors?n/aFrequently 2 to 4One 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

  1. Create a free Apify account. 30 seconds, no card needed.
  2. Open the Trustpilot Scraper in the Apify Console.
  3. 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.
  4. Click Start. A 200-review run finishes in about 30 seconds. A 1,000-review slice run takes 1 to 2 minutes.
  5. 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.

ModePer resultPer 1,000Free 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
}
FieldTypeDefaultNote
modestringreviewsOne of reviews, searchCompanies, categoryBrowser, companyInfo, transparency
urlsarray[]Company URLs or bare domains. Old companyUrls is still accepted as an alias
searchTermsarray[]Brand names; auto-resolved to a Trustpilot slug via the directory search
maxReviewsint200Up to 10,000 per company. Above 200, slicing kicks in automatically
starsarray[]Subset of [1,2,3,4,5]. Old single-value starFilter still accepted
languagesarray[]ISO codes. Each language fetched in order until maxReviews is reached โ€” size maxReviews for your language count
dateRangestringalllast30days, last3months, last6months, last12months
startDatestringnoneYYYY-MM-DD chronological cutoff applied client-side
verifiedOnlyboolfalseServer-side verified=true filter
repliesOnlyboolfalseServer-side replies=true filter
topicsarray[]e.g. customer_service, delivery_service, refund, product
keywordstringnoneFull-text body search
sortstringrecencyOr relevance
aggressiveSlicingboolautoCartesian product over (stars, dateBucket, sort), dedupe by review id. Auto-on when maxReviews > 200
lookbackDaysintnoneOnly emit reviews published within the last N days (shortcut for startDate)
includeContactbooltrueemail, phone, address per company
includeStatsboolfalsePer-star count breakdown
includeSimilarCompetitorsboolfalse8 competitor companies per record
includeAiSummarybooltrueAI summary + topic summaries on the first review per company
compactboolfalseTrim each record to core fields (good for AI / MCP)
incrementalboolfalseTag each record with changeType (NEW / UPDATED / REAPPEARED). Needs stateKey
stateKeystringnoneIdentifier 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 groupreviewssearchCompaniescategoryBrowsercompanyInfotransparency
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 breakdownopt-in--โœ…partial
Contact email / phone / addressopt-inโœ…โœ…โœ…-
Lat / lon coordinates-โœ…โœ…--
8 similar competitorsopt-in----
Reply behaviour KPIsopt-in---โœ…
Reports + investigations + takedowns----โœ…
Monthly review histogram----โœ…

Use cases

  1. B2B lead gen - browse a category and grab email + phone + address for every company. Insurance, hosting, crypto, e-commerce - whatever your ICP looks like.
  2. Brand monitoring - schedule a daily incremental run on your own brand; only NEW or UPDATED reviews land in your dataset.
  3. Sentiment analysis at scale - the AI summary and per-topic summaries are already in the output, no LLM call needed downstream.
  4. Competitive intelligence - turn includeSimilarCompetitors: true on and you get 8 ranked competitors per company you scrape, free.
  5. 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.
  6. Pre-purchase research - pull the 1-star reviews from the last 30 days for any product you're considering.
  7. CX / support analytics - export the full review feed plus reply text into your warehouse, group by topic, track resolution rates.
  8. Onboarding screen for sales tools - paste a prospect's website, hit companyInfo mode, and you have a full Trustpilot card to embed.
  9. 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

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.