Trustpilot $0.75π°Reviews Ratings/Reply/Filter/Bypass 200 Limit
Pricing
from $0.75 / 1,000 results
Trustpilot $0.75π°Reviews Ratings/Reply/Filter/Bypass 200 Limit
π°$0.75 per 1,000 results β Ratings, Replies & Filters. Enterprise-grade Trustpilot scraper that extracts 40+ data points per review with built-in analytics and 100% verified reviews coverage. Bypassing the limit of only the first 10 pages. Perfect for business intelligence and market research.
Pricing
from $0.75 / 1,000 results
Rating
4.9
(15)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
22
Bookmarked
623
Total users
307
Monthly active users
18 hours
Issues response
3 days ago
Last modified
Categories
Share
Trustpilot Reviews Scraper
There are two versions of the Trustpilot Reviews Scraper available:
- Rentable Version: Trustpilot Reviews Scraper (Rent)
- Pay Per Event Version PPE: Trustpilot Reviews Scraper (Pay Per Event)
Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Trustpilot A/S or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.
Overview
This scraper extracts reviews from Trustpilot.com for any business, domain, search term, or user profile. You get detailed review records including text, rating, verification metadata, consumer info, company replies, and optional company-level data (alerts, BasicLink rate, transparency stats). Designed for sentiment analysis, competitive monitoring, fraud-detection workflows, and brand reputation tracking.
What's new
- Trustpilot
/search?query=β¦URLs are now accepted as start URLs β paste the URL directly from Trustpilot's own search bar and the actor extracts the query and resolves it via autosuggest. - Authoritative
basicLinkRateopt-in (includeCompanyAdditionalFields: true). The exact percentage Trustpilot shows on the transparency page, not a sample-derived approximation. See Optional company enrichment below. consumerAlert/hasCollectedIncentivisedReviewsflags in thecompanyblock (also gated onincludeCompanyAdditionalFields).- Brand-name search via the
searchTermsinput β pass["nike", "adidas"]instead of URLs. - Regional domain expansion β set
expandRegionalDomains: trueand the actor sweeps every regional sibling (nike.com,nike.uk,nike.de, β¦) under one input. - Country-targeted reviewer filter β keep only reviews from specific reviewer countries via
filterCountries: ["US", "GB"]. - Multi-axis filters β star ratings, languages, date range, verified-only, replies-only β all applied server-side at the gateway where possible.
- Mobile JWT rotation flow β paste a fresh Bearer JWT via
mobileBearerTokenif the bundled one expires (see Token rotation).
Features
- Three input formats β all accepted in the same
startUrlslist:- Business review page:
https://www.trustpilot.com/review/example.com - User profile:
https://www.trustpilot.com/users/53d12345000064000180b423 - Search URL:
https://www.trustpilot.com/search?query=Cialis(extracts the query and resolves via autosuggest) - β¦plus bare slugs (
bankfive) and plain domains (example.com).
- Business review page:
- Or use the
searchTermsfield to look up brands by name without typing URLs (["nike", "noom", "marcovasco"]). - Optional company enrichment:
includeCompanyDetails: trueadds acompanyblock (display name, identifying domain, categories, trust score, β¦)includeStats: trueadds star distribution + total countincludeTransparency: trueadds collecting-method distribution, reply behavior, monthly trendsincludeCompanyAdditionalFields: trueaddsconsumerAlert,consumerAlerts,hasCollectedIncentivisedReviews, and the authoritativebasicLinkRate(sourced from Trustpilot's transparency page; falls back to a sample-derived approximation when the BU's data isn't reachable, withbasicLinkRateSource: "trustpilot" | "derived"distinguishing the two)
- Filters (all optional, composable):
filterStars: ["1", "2"]β keep only those star ratings (gateway server-side)filterLanguages: ["en", "de"]β restrict to specific languages (gateway server-side)filterDateRange: "last30days" | "last3months" | "last6months" | "last12months" | "all"(gateway server-side)filterCountries: ["US", "GB"]β keep only reviews from these reviewer countries (client-side, since the gateway has no country param)filterVerifiedOnly: true,filterRepliesOnly: true(both gateway server-side)startDate: "YYYY-MM-DD"β exact chronological cutoff
- Regional expansion (
expandRegionalDomains: true, default) β when scraping a brand likenike, also pull from regional siblings (nike.de,nike.uk, β¦) under one sharedmaxItemsbudget. - Smart language coverage β multi-language sweep automatically fires on huge BUs (>800 reviews) so the gateway's per-stream cap doesn't truncate non-English reviews.
- Locale-aware default language β when
scrapeAllReviews: false, the actor derives the language from the BU's country (bancamediolanum.itβit,darty.frβfr) so non-English BUs return their locale-native reviews by default. - Output parity with the major Trustpilot scrapers on the Apify Store β same field names, types, and CSV-friendly flattened columns (
reviewerName,businessUrl,scrapedAt, β¦) plus 5+ exclusive fields. - Limits:
maxItemsper input (not global), with budget shared across regional siblings. - Proxies: full proxy configuration support. Residential strongly recommended for high-volume runs; required for the WAF-protected
basicLinkRateenrichment (which uses Evomi sticky sessions).
How to Use
- Set Up: Apify account, access to the actor.
- Pick your input style β any of the following are accepted in the same run, even mixed together:
- Business review URL:
https://www.trustpilot.com/review/example.com - User profile URL:
https://www.trustpilot.com/users/53d12345000064000180b423 - Trustpilot search URL:
https://www.trustpilot.com/search?query=Cialis(new β the query is extracted and resolved through autosuggest) - Just the domain:
example.com(with or withouthttps://) - Bare slug:
bankfive(resolved via autosuggest) - Or use the
searchTermsfield to list brand names directly:["nike", "noom"]
- Business review URL:
- Apply filters as needed:
- Star ratings (
filterStars), languages (filterLanguages), reviewer countries (filterCountries) - Rolling date window (
filterDateRange) or hard chronological cutoff (startDate) - Verified-only / replies-only toggles
- Star ratings (
- Pick your enrichment level:
includeCompanyDetails: truefor business infoincludeStats: truefor star distributionincludeTransparency: truefor collecting-method + reply-behavior statsincludeCompanyAdditionalFields: trueforconsumerAlert+hasCollectedIncentivisedReviews+ authoritativebasicLinkRate(see Optional company enrichment)
- Run the Scraper: monitor progress in the Apify console.
- Data Collection: extracted data available as JSON, CSV, Excel, or via the dataset API.
Input Data
Five common input shapes β pick whichever fits your workflow:
A. Mixed URLs (single batch)
{"startUrls": [{ "url": "https://www.trustpilot.com/review/navimow.segway.com" },{ "url": "https://www.trustpilot.com/users/53d12345000064000180b423" },{ "url": "https://www.trustpilot.com/search?query=Nike" },{ "url": "noom.com" }],"maxItems": 200,"includeCompanyDetails": true,"includeStats": true}
B. Brand search by name (no URLs needed)
{"searchTerms": ["nike", "adidas", "puma"],"filterCountries": ["US"],"filterStars": ["1", "2"],"maxItems": 100,"includeCompanyDetails": true}
C. Negative-review monitoring (last 30 days, 1-2β only)
{"startUrls": [{ "url": "https://www.trustpilot.com/review/yourbusiness.com" }],"filterStars": ["1", "2"],"filterDateRange": "last30days","sortBy": "recent","maxItems": 1000}
D. Full company snapshot with authoritative basicLinkRate
{"startUrls": [{ "url": "https://www.trustpilot.com/review/bancamediolanum.it" }],"includeCompanyDetails": true,"includeCompanyAdditionalFields": true,"includeStats": true,"includeTransparency": true,"maxItems": 50}
E. Regional brand expansion
{"searchTerms": ["nike"],"expandRegionalDomains": true,"maxItems": 5000}
Input Fields Explanation
Input sources
startUrls(array): Each entry can be a Trustpilot/review/,/users/, or/search?query=β¦URL, a bare slug (bankfive), or a domain (noom.com). Localized hosts (fr.trustpilot.com, β¦) auto-normalize towww.trustpilot.com.searchTerms(array): Brand names to resolve via autosuggest. Composable withstartUrls.
Scope & filters
scrapeAllReviews(boolean, defaulttrue): Whentrue, forcelanguage=allfor maximum coverage. Whenfalse, derive language from the BU's country code (Italian BU β Italian reviews) so non-English BUs return locale-native content. Overridden by an explicitfilterLanguages.filterStars(array of"1"-"5"): Server-side star filter.filterLanguages(array of ISO 639-1 codes):["en", "de"]. Server-side.filterCountries(array of ISO 3166-1 alpha-2):["US", "GB"]. Reviewer-country, client-side.filterDateRange("all" | "last30days" | "last3months" | "last6months" | "last12months"): Server-side rolling window.filterVerifiedOnly(boolean): Server-side.filterRepliesOnly(boolean): Server-side.sortBy("auto" | "relevancy" | "recent"):"auto"picks recent whenstartDateis set, relevancy otherwise.startDate(YYYY-MM-DD): Hard chronological cutoff. Pagination short-circuits as soon as it crosses this date.expandRegionalDomains(boolean, defaulttrue): Auto-fetch regional siblings of each brand.
Enrichment
includeCompanyDetails(boolean): Add acompanyblock to every review record.includeStats(boolean): Addstatsblock (star distribution + total).includeTransparency(boolean): Addtransparencyblock (collecting-method distribution, reply-behavior, monthly trends).includeCompanyAdditionalFields(boolean): AddconsumerAlert,consumerAlerts,hasCollectedIncentivisedReviews, and authoritativebasicLinkRateto thecompanyblock. See Optional company enrichment.
Limits & performance
maxItems(integer): Per-input cap. Shared budget across regional siblings.maxConcurrency(integer, default 10): Max parallel inputs.minConcurrency(integer, default 1): Minimum parallelism.maxRequestRetries(integer, default 100): Retry budget for failed mobile-gateway requests.
Mobile gateway auth (advanced β only set if the bundled token expires)
mobileBearerToken(string): Override the bundled Bearer JWT. See Token rotation.mobileApiKey(string): Override the bundledapikeyheader.mobileBearerAllRequests(boolean, defaultfalse): Attach Bearer on every request instead of just page 1.
Output Structure
The output data includes detailed information about each review. Here's a sample of the structure:
{"id": "671d4064ff600a8a63bcea11","filtered": false,"pending": false,"text": "The manager was awesome in helping my brother & me in the loss of our younger brother regarding his accounts. DuGood also came through & helped us with another issue when no one else would. We truly appreciate your knowledge & caring toward your customers. It did not go unnoticed & you now have several family members who are new customers because of it. Thank you again!","rating": 5,"labels": {"merged": null,"verification": {"isVerified": true,"createdDateTime": "2024-10-26T21:17:56.000Z","reviewSourceName": "AFSv2","verificationSource": "invitation","verificationLevel": "verified","hasDachExclusion": false}},"title": "The manager was awesome in helping myβ¦","likes": 8,"dates": {"experiencedDate": "2024-10-23T00:00:00.000Z","publishedDate": "2024-10-26T21:17:56.000Z","updatedDate": null},"report": null,"hasUnhandledReports": false,"consumer": {"id": "671d4063422e94eeb1028118","displayName": "Cheryl","imageUrl": "","numberOfReviews": 1,"countryCode": "US","hasImage": false,"isVerified": false},"reply": {"text": "Hi Cheryl,\n\nIt's heartwarming to hear about the support you received during such a difficult time. We are dedicated to our members and we're glad we could help you and your family. Thank you for sharing your touching experience with us.","publishedDate": "2024-10-30T17:25:46.000Z","updatedDate": null},"consumersReviewCountOnSameDomain": 1,"consumersReviewCountOnSameLocation": null,"productReviews": [],"language": "en","location": null,"source": "AFSv2","isVerified": true,"verificationLevel": "verified","publishedDate": "2024-10-26T21:17:56.000Z","experiencedDate": "2024-10-23T00:00:00.000Z","updatedDate": null,"reviewerName": "Cheryl","reviewerCountry": "US","reviewerNumberOfReviews": 1,"url": "https://www.trustpilot.com/reviews/671d4064ff600a8a63bcea11","businessUrl": "https://www.trustpilot.com/review/www.dugood.org","businessName": "DuGood Credit Union","scrapedAt": "2026-05-23T15:30:42.000Z"}
Output Fields Explanation
Core review fields
id: Unique identifier for the review.filtered: Boolean βtrueif Trustpilot has hidden the review (moderation).isPending: Boolean βtrueif the review is awaiting publication.text: Review content.rating: 1β5 stars.title: Short review title.language: ISO 639-1 language code ("en","de", β¦).source: Review source channel ("BasicLink","InvitationApi","Organic","BusinessGeneratedLink", β¦).likes/numberOfLikes: Helpful-vote count.
Dates (also duplicated at top level for CSV-friendly flat columns)
dates.publishedDate,dates.experiencedDate,dates.updatedDate,dates.submittedDate- Top-level:
publishedDate,experiencedDate,updatedDate
Verification & labels
isVerified(top-level): authoritative βtruewhen the review is verified.verificationLevel:"verified","invited","organic","not-verified", β¦labels.verification.*: raw verification block (createdDateTime, reviewSourceName, verificationSource, verificationLevel, hasDachExclusion).labels.merged: merge metadata (usuallynull).
Consumer / reviewer (nested + flattened)
consumer.{id, displayName, imageUrl, numberOfReviews, countryCode, hasImage, isVerified, verified}- Top-level flattened:
reviewerName,reviewerCountry,reviewerNumberOfReviews
Business reply (when present)
reply.{text, publishedDate, updatedDate}β also aliased ascompanyReplyfor legacy consumers.
Reports & moderation
report: Report metadata if any (usuallynull).hasUnhandledReports: Boolean.
Volume signals
consumersReviewCountOnSameDomain: How many other reviews this user left for this BU.consumersReviewCountOnSameLocation: Same scoped to BU location.
Product / location
productReviews: Linked product reviews (usually[]).location: Physical-location info (usuallynull).
Convenience links
url: Direct link to the review page on Trustpilot.businessUrl: Link to the BU's review page.businessName: BU display name.scrapedAt: ISO timestamp when this record was emitted by the actor.
Company Details Output (If includeCompanyDetails is set to true)
"company": {"id": "592855190000ff0005a33f85","displayName": "DuGood Credit Union","identifyingName": "www.dugood.org","numberOfReviews": 4105,"trustScore": 4.8,"websiteUrl": "https://www.dugood.org","websiteTitle": "www.dugood.org","profileImageUrl": "//s3-eu-west-1.amazonaws.com/tpd/logos/592855190000ff0005a33f85/0x0.png","customHeaderUrl": "","promotion": null,"hideCompetitorModule": false,"stars": 5,"categories": [{"id": "federal_credit_union","name": "Federal Credit Union","rank": "1","cardinality": "3","isPrimary": false},{"id": "credit_union","name": "Credit Union","rank": "1","cardinality": "7","isPrimary": true}],"breadcrumb": {"topLevelId": "money_insurance","topLevelDisplayName": "Money & Insurance","midLevelId": "credit_debt_services","midLevelDisplayName": "Credit & Debt Services","bottomLevelId": "credit_union","bottomLevelDisplayName": "Credit Union"},"isClaimed": true,"isClosed": false,"isTemporarilyClosed": false,"locationsCount": 0,"isCollectingReviews": true,"verification": {"verifiedByGoogle": true,"verifiedBusiness": true,"verifiedPaymentMethod": true,"verifiedUserIdentity": false},"contactInfo": {"email": "marketing@dugood.org","address": "7505 Eastex Frwy","city": "Beaumont","country": "US","phone": "(409) 899-3430","zipCode": "77708"}}
Company Fields Explanation
id: Unique identifier for the company.displayName: Display name of the company.identifyingName: The identifying name of the company, typically the website URL.numberOfReviews: Total number of reviews for the company.trustScore: Trust score of the company on Trustpilot.websiteUrl: Official website URL of the company.websiteTitle: Title of the companyβs website.profileImageUrl: URL of the companyβs profile image.customHeaderUrl: URL for any custom header image (if applicable).categories: Array of categories the company belongs to, including rank and primary status.breadcrumb: Hierarchical classification of the company's industry or sector.isClaimed: Boolean indicating if the company profile is claimed on Trustpilot.verification: Object containing verification details about the company.verifiedByGoogle,verifiedBusiness,verifiedPaymentMethod: Various verification types.
contactInfo: Contact details of the company, including email, address, city, country, phone, and zip code.
Statistics Output (If includeStats is set to true)
"stats": {"total": 4105,"one": 43,"two": 15,"three": 46,"four": 168,"five": 3833,"totalNumberOfReviews": 3450}
Statistics Fields Explanation
total: Total number of reviews collected.one: Number of 1-star reviews.two: Number of 2-star reviews.three: Number of 3-star reviews.four: Number of 4-star reviews.five: Number of 5-star reviews.totalNumberOfReviews: Total number of reviews that were actually processed.
Optional company enrichment
When you set includeCompanyDetails: true and includeCompanyAdditionalFields: true, each review's company block gains four extra fields:
"company": {"displayName": "Banca Mediolanum","countryCode": "IT","consumerAlert": null,"consumerAlerts": [],"hasCollectedIncentivisedReviews": false,"activity": {"basiclinkRate": 72,"basiclinkRateSource": "trustpilot"}}
consumerAlert/consumerAlerts: Trustpilot's "suspicious activity" alerts (null/empty when a BU has none).hasCollectedIncentivisedReviews:trueif the BU has historically collected reviews via incentives.activity.basiclinkRate: percentage of the BU's reviews that came in via the BasicLink channel.activity.basiclinkRateSource:"trustpilot"β authoritative value from Trustpilot's own transparency surface."derived"β local approximation computed from the scraped review sample (used when the transparency page can't be reached).
How it works (and why it costs a bit more)
basicLinkRate only lives on Trustpilot's transparency page, which is behind an AWS WAF SDK-mode challenge from datacenter IPs. The actor bundles a NetworkBandwidth-challenge solver that runs through an Evomi sticky-session residential proxy to fetch the page once per business unit. Adds ~3-5 seconds + one residential proxy connection per unique BU (cached for the rest of the run). Free users without an Evomi proxy gracefully fall back to the derived value.
The flag is opt-in. Leave it off if you don't need this field; the rest of the actor's behavior is unchanged.
Token rotation
The actor bundles a Trustpilot iOS Bearer JWT used to authenticate against the mobile gateway. The token has a fixed expiry (currently mid-June 2026) β once it lapses, every mobile API call returns 401 and the actor stops working.
The actor will tell you before this becomes a problem. When the bundled JWT is within 30 days of expiry, the run's dashboard status will show:
β οΈ Mobile gateway Bearer JWT expires in N days β Rotate via the
mobileBearerTokeninput before then.
When it's actually expired, the message escalates to:
β οΈ Mobile gateway Bearer JWT expired on β¦ β Set
mobileBearerTokento fix.
To rotate: capture a fresh Authorization: Bearer β¦ header value from any Trustpilot iOS-app request to consumermobile-apigateway.trustpilot.com (using mitmproxy, Charles, or any HTTPS-inspecting iOS debugger), strip the Bearer prefix, and paste it into the mobileBearerToken input field. No code changes required.
Usage Tips
- For bulk scraping, use the "Bulk edit" feature to input multiple profile URLs or usernames.
- Adjust concurrency settings based on your network capabilities and Trustpilot's rate limits.
- Use proxy configuration for large-scale scraping to avoid IP blocks. Residential is recommended; required if you enable
includeCompanyAdditionalFields. - To monitor a single brand for negative reviews, combine
filterStars: ["1", "2"]+filterDateRange: "last30days"+sortBy: "recent". - For competitive analysis across multiple brands, use
searchTermsrather than hunting down each/review/URL. - If
basicLinkRateSourceis"derived"in your output, the actor couldn't reach the transparency page for that BU β either enable a residential proxy (Evomi recommended) or accept the sample-based approximation.
Explore More Scrapers
If you found this Apify Smartbuyglasses Scraper useful, be sure to check out our other powerful scrapers and actors at memo23's Apify profile. We offer a wide range of tools to enhance your web scraping and automation needs across various platforms and use cases.
Support
- For issues or feature requests, please use the Issues section of this actor.
- If you need customization or have questions, feel free to contact the author:
- Author's website: https://muhamed-didovic.github.io/
- Email: muhamed.didovic@gmail.com
Additional Services
- Request customization or whole dataset: muhamed.didovic@gmail.com
- If you need anything else scraped, or this actor customized, email: muhamed.didovic@gmail.com
- For API services of this scraper (no Apify fee, just usage fee for the API), contact: muhamed.didovic@gmail.com
- Email: muhamed.didovic@gmail.com