Trustpilot Scraper — Company Data & Reviews
Pricing
from $2.50 / 1,000 results
Trustpilot Scraper — Company Data & Reviews
Scrape Trustpilot in real time: company search, category browse, full profiles with website, email and phone, plus customer reviews. Export ratings, review counts and lead contacts as JSON, CSV or Excel. Fast, reliable, proxy included — no code needed.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
Emmanuel
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a month ago
Last modified
Categories
Share
Trustpilot Real-Time Data
Turn the world's biggest review directory into a clean, structured dataset. Trustpilot Real-Time Data collects companies — name, website, email, phone, rating, review volume and categories — plus the individual customer reviews behind that rating. Search by keyword, browse by category, enrich full company profiles, and stream every row to your dataset (and your own systems) as it is collected.
Free plan: runs on the Apify free plan are limited to a 2-result free trial per run. Upgrade to a paid Apify plan for full, unlimited output. Paying users get the complete result set, capped only by the
Max total itemsyou set.
Who it's for
- Agencies & local SEO building prospect lists and reputation dashboards
- Brand & competitor intelligence teams tracking ratings and review volume over time
- E-commerce & SaaS teams monitoring their own reputation and their rivals'
- Researchers & analysts studying review sentiment across markets and categories
- RevOps / growth teams enriching CRMs with company contact details
- AI agents & automations that need a live, structured feed of company trust data
Use cases
- Competitor benchmarking — collect every competitor in a category and compare rating, review volume and review velocity.
- Lead generation — search your niche, enrich each company, and export website, email and phone straight into your CRM.
- Reputation monitoring — pull recent reviews on your own profile on a schedule and alert Slack when sentiment dips.
- Sentiment & topic analysis — feed review text (author, rating, date, language) into an LLM or a data warehouse.
- Category market maps — browse a category to build a complete map of who competes in it and how they are rated.
- Watchlist tracking — paste a list of profile links and collect exactly those companies on a recurring schedule.
Feature matrix
| Feature | Default | What it does |
|---|---|---|
| Company search | ✅ On | Search Trustpilot by keyword. One row per company: name, domain, website, email, phone, rating, review volume, categories. |
| Company details | ✅ On | Enriches each company in place with its full profile: verified status, registered address, all categories, response behaviour, freshest rating and review volume. Never filters rows out. |
| Category browse | ⬜ Off | Discover every company listed under one or more categories. |
| Reviews | ⬜ Off | Collect customer reviews as their own rows (author, rating, title, text, date, language, helpful votes, company reply). Capped per company. |
| Scrape By URL | ⬜ Off | Collect specific company profiles from pasted links or bare domains. |
| Webhook | — | Also POST every new record to your own URL (JSON or Slack), in addition to the dataset. |
Input reference
Every row is saved to the dataset no matter which features you enable; Company details only adds fields to the same row.
🔎 Company search (on by default)
| Field | Type | Default | Notes |
|---|---|---|---|
enableCompanySearch | boolean | true | Turn keyword search on/off. |
searchTasks | array | airbnb, stripe | One row per keyword: query (required), country (optional market code, e.g. uk), maxResults. |
searchMaxResults | integer | 10 | Default companies per keyword when a task omits maxResults. |
maxPagesPerTask | integer | 3 | Safety cap on how many result pages to walk per task. |
🏢 Company details (on by default)
| Field | Type | Default | Notes |
|---|---|---|---|
enableCompanyDetails | boolean | true | Adds the full profile to each company row. Adds a little extra time per record. |
🗂️ Category browse (off by default)
| Field | Type | Default | Notes |
|---|---|---|---|
enableCategoryBrowse | boolean | false | Turn category discovery on/off. |
categories | string list | [] | Category slugs, e.g. electronics_technology, travel_vacation, money_insurance. |
categoryMaxResults | integer | 50 | Companies to collect per category. |
⭐ Reviews (off by default)
| Field | Type | Default | Notes |
|---|---|---|---|
enableReviews | boolean | false | Collect reviews as separate rows. |
reviewUrls | string list | [] | Company links or bare domains, e.g. stripe.com or https://www.trustpilot.com/review/stripe.com. |
maxReviewsPerCompany | integer | 30 | Cap per company (1–500). |
🔗 Scrape By URL (off by default)
| Field | Type | Default | Notes |
|---|---|---|---|
enableScrapeByUrl | boolean | false | Collect specific company profiles. |
scrapeUrls | string list | [] | Company links or bare domains. |
⚙️ Output & limits
| Field | Type | Default | Notes |
|---|---|---|---|
maxItems | integer | 1000 | Global cap on total dataset rows across all features. |
concurrency | integer | 8 | Parallel detail lookups (1–8). Higher is faster and uses the same number of requests. |
🔔 Delivery
| Field | Type | Default | Notes |
|---|---|---|---|
webhookUrl | string | "" | Optional extra real-time push per record. |
webhookFormat | json | slack | json | json = full record; slack = Slack-ready message. |
🌐 Connection
| Field | Type | Default | Notes |
|---|---|---|---|
proxyConfiguration | object | Apify residential, US | Change the market country here, or supply custom proxy URLs. |
⚡ Speed & cost
- The first-ever run clears the site's connection challenge with a short browser warm-up and saves the session; every later run reuses that saved session and starts collecting immediately (a stale session self-heals with a fresh warm-up).
- Search and category pages are fetched one page ahead, so page latency hides behind detail enrichment instead of adding to the run time.
concurrency(default8) controls parallel detail lookups; raising it shortens wall time without adding requests.
Example input
{"enableCompanySearch": true,"searchTasks": [{ "query": "airbnb", "maxResults": 10 },{ "query": "stripe", "maxResults": 10 }],"enableCompanyDetails": true,"enableReviews": true,"reviewUrls": ["stripe.com"],"maxReviewsPerCompany": 30,"maxItems": 500}
Output
Each run writes to the default dataset and a per-run summary to the OUTPUT key-value record.
Company row (key fields)
type, featureType, platform, companyId, name, domain, profileUrl, website, email, phone, address, city, postalCode, country, countryCode, rating, stars, reviewCount, reviewCountLast12Months, categories, categoryIds, primaryCategory, topLevelCategory, midLevelCategory, isClaimed, isClosed, verification, responseRate, averageDaysToReply, claimedDate, profileImageUrl, detailsFetched, searchQuery, searchTaskLabel, categoryId, position, scrapedAt.
Review row (key fields)
type, featureType, platform, reviewId, companyId, companyName, companyDomain, companyUrl, rating, title, text, language, author, authorId, authorReviewCount, authorCountryCode, date, experiencedDate, likes, source, verified, replyText, replyDate, scrapedAt.
A field stays empty when the company simply does not publish that detail — a company is never dropped for missing data.
Webhooks
Set webhookUrl and every new record is POSTed as it is collected — in addition to the dataset. Delivery failures never stop the run.
JSON (webhookFormat: "json") posts the full record object:
{ "type": "company", "name": "Stripe", "domain": "stripe.com", "rating": 1.6, "reviewCount": 17510, "website": "https://stripe.com" }
Slack (webhookFormat: "slack") posts a Slack-ready payload, e.g. for a company:
{ "text": ":office: *Stripe*\n*Rating:* 1.6/5 • *Reviews:* 17510\n*Website:* https://stripe.com" }
Works with Slack incoming webhooks, Zapier, Make, n8n, Google Sheets and any CRM that accepts a JSON POST.
Use it from an AI agent (Apify MCP)
This Actor is callable through the Apify MCP server, so an agent can run it and reason over the results directly. Add this Actor to your MCP client and ask:
"Use Trustpilot Real-Time Data to find the top reviewed payment companies and list their ratings, review counts and websites."
The agent runs the Actor, receives the structured company rows, and answers from them — no glue code required.
FAQ
Do I need a proxy? Apify's residential proxy is enabled by default and is all most runs need. If you want a specific market, change the country in the Connection section.
What about the free plan? Free (non-paying) accounts receive a 2-result sample per run and finish cleanly with an upgrade note. Paid plans get the full result set.
How fresh is the data? Every run reads live company profiles and reviews at the moment it runs — ratings and review counts reflect the run time.
How do I keep a list up to date? Save your input as a task and schedule it (hourly/daily/weekly). Only new rows change, so you get a clean time series.
Can I get emails and phone numbers? Yes — these are included on company rows whenever the company publishes them. Some companies publish none.
Does turning on Company details reduce my results? No. Details enrich each row in place; they never remove companies.
Notes
- Memory: 512 MB default. Timeout: 10,000 seconds.
- Results stream to the dataset as they are collected, so even very large runs stay light.