Trustpilot Reviews & Company Data Scraper
Pricing
from $0.50 / 1,000 company reviews
Trustpilot Reviews & Company Data Scraper
Scrape Trustpilot at full depth: company search & details, paginated reviews, best/newest/recently-reviewed companies by category, category taxonomy, and consumer review history. 10 operations, one clean JSON dataset. Built for review monitoring, lead-gen, and review-integrity analysis.
Pricing
from $0.50 / 1,000 company reviews
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Share
Trustpilot Reviews & Company Data Scraper — 10 Operations ⭐
⭐ The only Trustpilot scraper that covers the FULL data model — companies, reviews, category rankings AND consumer review history in one actor.
Built for review monitoring, category lead-gen, competitive benchmarking, and review-integrity / fraud investigation.
📋 Overview
Most "Trustpilot scrapers" just dump a company's reviews. This one scrapes the entire Trustpilot data model — companies, reviews, the full category taxonomy, and individual consumer review histories — across 10 operations in a single actor, with clean structured JSON out and no login required.
Why teams choose this scraper:
- ✅ 10 operations, not 1: company search & details, paginated reviews, best/newest/recently-reviewed companies by category, category search & details, plus consumer profiles and review history.
- 🗂️ Category intelligence others don't have: rank the best companies in any category and track recently-reviewed companies (plus a newest-companies feed) — exclusive to this actor.
- 👤 Consumer-level review history: pull every review a single reviewer ever wrote — purpose-built for fake-review and reputation-fraud analysis.
- 💎 Authenticity signals on every row: Trust Score, verified-by-Google, paid-plan flag, same-domain review count, verified-review flag.
- 💰 Pay-per-result pricing: charged only for successful rows. Competitive per-review rate with a generous free tier to test.
- 🌍 23 locales: en-US, en-GB, de-DE, fr-FR, es-ES, it-IT, and more — scrape the regional Trustpilot listings your market cares about.
🆚 Why This Scraper vs. Review-Only Tools
Most Trustpilot actors stop at "give me a company's reviews." This one models the whole platform:
| Capability | Typical review-only scraper | This scraper |
|---|---|---|
| Company reviews (paginated) | ✅ | ✅ |
| Company search & details | ⚠️ sometimes | ✅ |
| Best companies by category | ❌ | ✅ |
| Newest companies by category (lead-gen) | ❌ | ✅ |
| Recently-reviewed companies | ❌ | ✅ |
| Category taxonomy (parent/sibling/sub) | ❌ | ✅ |
| Consumer profile + full review history | ❌ | ✅ |
| Reviewer-trust signals on each row | ❌ | ✅ |
If your workflow is "monitor one company's reviews," any scraper works. If you need category intelligence, lead generation, or review-integrity investigation, this is the only Trustpilot actor that covers it.
✨ Features
- ⭐ Company Reviews: paginate every review with rating, verified flag, review source, experienced date, language, and company reply.
- 🔍 Company Search: find companies by keyword with rating and review-count filters.
- 🏢 Company Details: full profile by domain — Trust Score, rating distribution, verified-by-Google, claimed/paid status, about text.
- 🏆 Companies by Category: list the best companies in a category, sorted by relevance, review count, or latest review.
- 🆕 Newest Companies in Category: a feed of businesses that recently joined a vertical (availability depends on category activity).
- ⚡ Recently Reviewed in Category: monitor review velocity and reputation movement across a category.
- 🗂️ Category Search & Details: resolve category IDs and walk the full parent / sibling / sub-category taxonomy.
- 👤 Consumer Details & Reviews: a reviewer's profile plus their complete review history across all companies.
- 📄 Smart pagination: pull up to 100 pages per run; the actor stops automatically at the last page.
- 🧾 HTML run report: success/error counts, success rate, pages fetched, and duration — saved every run, even on failure.
🎬 Quick Start
Pick an operation, fill the field it needs, and run. Below: scrape Best Buy's reviews.
curl -X POST "https://api.apify.com/v2/acts/sian.agency~trustpilot-reviews-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"operation": "companyReviews", "companyDomain": "www.bestbuy.com", "maxPages": 5}'
🚀 Getting Started (3 Simple Steps)
Step 1: Choose an operation
Select one of the 10 operations (e.g. companyReviews, companySearch, categoryNewest).
Step 2: Provide the required field
Each operation needs one input — a Query, a Company Domain, a Category ID, or a Consumer ID. Discover them with the search operations (Company Search gives you a domain; Category Search gives you a category ID; any review row gives you a consumer ID).
Step 3: Run and export
Run the actor and download your data as JSON, CSV, or Excel from the Apify dataset.
That's it! In under a minute, you'll have:
- Clean, structured rows with curated camelCase fields
- Raw upstream fields spread alongside for power users
- An HTML run report in the key-value store
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| operation | string | Yes | One of 10 operations (see table below) |
| query | string | for search ops | Keyword for Company Search / Category Search |
| companyDomain | string | for company detail/review ops | Domain, e.g. www.bestbuy.com |
| categoryId | string | for category ops | Category slug, e.g. electronics_company |
| consumerId | string | for consumer ops | Reviewer ID from any review row |
| locale | string | No | Trustpilot locale (default en-US) |
| maxPages | integer | No | Max pages for paginated ops (default 5, max 100) |
| reviewSort | string | No | most_relevant or recency (Company Reviews) |
| datePosted | string | No | Recency window for Company Reviews |
| reviewRating | string | No | Filter reviews by star rating 1–5 |
| minRating / minReviewCount | string | No | Filter companies in search/category |
| categorySort | string | No | Sort Companies by Category |
Operations
| Operation | Needs | Returns |
|---|---|---|
companySearch | query | Companies matching a keyword |
companyDetails | companyDomain | Full company profile + Trust Score |
companyReviews | companyDomain | Paginated reviews (PRIMARY) |
categoryCompanyList | categoryId | Best companies in a category |
categoryRecentlyReviewed | categoryId | Recently-reviewed companies |
categoryNewest | categoryId | Newest companies (lead-gen) |
categorySearch | query | Category IDs by keyword |
categoryDetails | categoryId | Category taxonomy |
consumerDetails | consumerId | Reviewer profile |
consumerReviews | consumerId | A reviewer's full review history |
Example:
{"operation": "categoryNewest","categoryId": "software_company","locale": "en-US"}
📤 Output
Results are saved to the Apify dataset with 60+ fields. Each row carries curated camelCase aliases plus the raw upstream fields spread alongside. Key fields:
| Field | Type | Description |
|---|---|---|
| companyName | string | Company name |
| domain | string | Company domain |
| trustScore | number | Trustpilot Trust Score |
| rating | number | Star rating |
| reviewCount | integer | Total reviews |
| reviewTitle | string | Review headline |
| reviewText | string | Full review body |
| reviewRating | integer | Review star rating |
| reviewIsVerified | boolean | Verified review flag |
| reviewSource | string | Where the review originated |
| consumerId | string | Reviewer ID (chains to consumer ops) |
| consumerReviewCountSameDomain | integer | Reviewer's reviews of the same company |
| categoryId / categoryName | string | Category identity |
| isVerifiedByGoogle / isPaid | boolean | Company authenticity / plan signals |
Example review row:
{"_operation": "companyReviews","reviewId": "...","reviewTitle": "Great support team","reviewText": "...","reviewRating": 5,"reviewIsVerified": true,"reviewSource": "Organic","consumerId": "66abfdbd068a7d7fb565c516","consumerName": "Debra F.","consumerCountry": "US","consumerReviewCountSameDomain": 1,"companyDomain": "www.bestbuy.com","status": "success"}
Filter the dataset by _operation to split modes, or by status to isolate any error rows.
Field groups by operation
- Company rows (
companySearch,companyDetails,categoryCompanyList, category listings):companyId,companyName,domain,website,logo,trustScore,rating,reviewCount,categories, plus (details)aboutCompany,negativeReviewCount,isVerifiedByGoogle,isClaimed,isPaid,isAskingForReviews,ratingDistribution. - Review rows (
companyReviews,consumerReviews):reviewId,reviewTitle,reviewText,reviewRating,reviewIsVerified,reviewSource,reviewExperiencedTime,reviewLanguage,replyText, plus reviewer fieldsconsumerId,consumerName,consumerCountry,consumerReviewCount,consumerReviewCountSameDomain. - Category rows (
categorySearch,categoryDetails):categoryId,categoryName,parentId,companyCount,level,subcategories,parentCategory,siblingCategories. - Consumer rows (
consumerDetails):consumerId,consumerName,country,photo,verified,reviewCount,likeCount,readCount. - Metadata on every row:
_operation,_fetchedAt,_page,status, plus the source field you queried (_sourceQuery,_sourceCompanyDomain,_sourceCategoryId, or_sourceConsumerId).
Every row also spreads the raw upstream fields (snake_case) alongside the curated camelCase aliases, so power users lose nothing.
💼 Use Cases & Examples
1. Review Monitoring & Voice-of-Customer
Brand and CX teams tracking what customers actually say.
Input: companyReviews with your company domain. Output: every review with rating, verified flag, and full text. Use: feed sentiment models to surface complaints, feature requests, and competitor weaknesses at scale.
2. Category Lead Generation
Sales teams prospecting businesses in a vertical.
Input: categoryRecentlyReviewed (or categoryNewest) with a category ID. Output: companies actively gathering reviews in that Trustpilot category. Use: a fresh, intent-rich prospecting list no other Trustpilot actor exposes.
3. Competitive Benchmarking
Marketers quantifying brand standing.
Input: categoryCompanyList with sort and rating filters. Output: the best companies in your category by Trust Score and review count. Use: measure where you rank and track movement over time.
4. Review-Integrity & Fraud Investigation
Trust & safety analysts hunting fake reviews.
Input: consumerReviews with a suspicious reviewer's ID. Output: every review that consumer ever posted, plus same-domain clustering and verification signals. Use: purpose-built for fake-review and reputation-fraud analysis.
5. Brand Reputation Dashboards
Agencies building live reputation monitors.
Input: companyDetails + companyReviews on a schedule. Output: Trust Score, rating distribution, and review velocity. Use: combine into dashboards across your brand and its competitors.
6. Market Research by Vertical
Researchers mapping an industry.
Input: categorySearch then categoryDetails. Output: the full Trustpilot taxonomy with parent/sibling/sub categories and company counts. Use: size verticals and discover adjacent categories.
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/trustpilot-reviews-scraper').call({operation: 'companyReviews',companyDomain: 'www.bestbuy.com',maxPages: 5});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/trustpilot-reviews-scraper').call(run_input={'operation': 'categoryNewest', 'categoryId': 'software_company'})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~trustpilot-reviews-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"operation": "companySearch", "query": "nike"}'
Automation Workflows (N8N / Zapier / Make)
- Trigger: Schedule (e.g. daily review pull) or webhook
- HTTP Request: Call the actor API with your operation
- Process: Handle the JSON dataset rows
- Action: Save to a sheet, alert on a 1-star spike, or update a dashboard
📊 Performance & Pricing
FREE Tier (Try It Now)
- Test every operation with full feature access — same data quality
- No credit card required
- Perfect for evaluating fit and small projects
PAID Tier (Production Ready)
- Scale to thousands of reviews and companies per run
- Pay-per-result: only charged for successful rows
- Smart auto-retry on transient upstream hiccups, so you don't pay for failed pages
💰 Competitive per-review pricing with a richer field set than typical review-only scrapers.
❓ Frequently Asked Questions
Q: How many reviews can I scrape? A: FREE tier lets you test every operation. PAID tier scales to thousands of rows per run via pagination (up to 100 pages).
Q: Does it scrape consumer (reviewer) review history?
A: Yes — consumerReviews returns every review a specific reviewer posted across all companies, plus their profile via consumerDetails. Most Trustpilot scrapers can't do this.
Q: Can I get the best or newest companies in a category?
A: Yes — categoryCompanyList, categoryNewest, and categoryRecentlyReviewed cover category rankings. This is exclusive to this actor.
Q: What output formats are available? A: JSON, CSV, and Excel — export directly from the Apify dataset.
Q: Which countries/locales are supported? A: 23 locales including en-US, en-GB, de-DE, fr-FR, es-ES, it-IT, nl-NL, sv-SE, pt-BR, ja-JP, and more.
Q: Is this legal? A: It only extracts publicly available data. See the legal section below.
Q: How do I find a company domain or category ID?
A: Use companySearch to get a domain, and categorySearch to get a categoryId. Any review row gives you a consumerId.
Q: Can I filter reviews by rating, date, or keyword?
A: Yes — Company Reviews supports reviewRating (1–5), datePosted (last 30 days through last 12 months), reviewQuery (keyword in the review text), verified-only, and replies-only filters, plus sort by relevance or recency.
Q: How does pagination work?
A: Set maxPages (up to 100). The actor fetches one page per upstream call and stops automatically when it reaches the last page — it derives the last page from the total count, so you never over-fetch.
Q: What happens if a page fails?
A: The actor auto-retries transient upstream hiccups with backoff. If a page still fails, it writes a status: "error" row instead of crashing, so your run always completes and you can see exactly which page failed.
🐛 Troubleshooting
An operation returns 0 rows
- The "Newest Companies in Category" feed is sparse on Trustpilot and is often empty — use Recently Reviewed in Category or Companies by Category for reliable category lead lists.
- Confirm the
categoryId/companyDomainis exactly as returned by the search operations.
"Missing required input" error
- Each operation needs its specific field (e.g.
companyReviewsneedscompanyDomain). Check the operations table above.
A page failed but others succeeded
- The actor auto-retries transient upstream hiccups. Occasional single-page failures are written as
status: "error"rows; just re-run or increasemaxPages.
⚠️ Trademark Disclaimer
This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Trustpilot A/S. "Trustpilot" and related marks are trademarks of their respective owners and are used here only to describe the public data this tool helps you collect. Use this actor responsibly and in compliance with applicable laws, Trustpilot's terms of service, and data-protection regulations (including GDPR and CCPA where applicable). You are responsible for how you use the data you extract.
⚖️ Is it legal to scrape data?
Our actors are ethical and only extract data that companies and reviewers have chosen to share publicly on Trustpilot. We therefore believe that this actor, when used for ethical purposes by Apify users, is safe.
However, your results could contain personal data (e.g. reviewer names and countries). Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
🤝 Support
Join our active support community
- For issues or questions, open an issue in the Apify Console Issues tab
- Check SIÁN Agency Store for more automation tools
- 📧 apify@sian-agency.online
Built by SIÁN Agency | More Tools