Trustpilot Business Search: Discover Companies by Category with TrustScore Data
Search Trustpilot by category or keyword in Python to build company lists with TrustScore, review count and verification status — no login required.
The actor referenced in this article. Pay only for results delivered.
If you need every business in a Trustpilot category — not the reviews for one company you already know, but the list of companies itself — there’s no official Trustpilot API for that. Trustpilot’s category and search pages are public, but they’re fronted by an AWS WAF JavaScript challenge that blocks plain HTTP requests, so a naive requests.get() call returns nothing useful.
The Trustpilot Business Search Scraper solves the discovery problem: give it a category or a keyword and it returns a structured list of companies with their TrustScore, review count, verification status and domain. That last field — domain — is the important one, because it’s what chains this actor into the Trustpilot Reviews Scraper for a full search-to-reviews pipeline.
Why You Can’t Just Scrape This With requests
Trustpilot serves every category and search page behind a WAF challenge that TLS-fingerprints the request before it ever reaches the page content. A plain HTTP client gets a challenge page, not business data. The Business Search Scraper runs a real Chromium browser (Crawlee’s PlaywrightCrawler with a full fingerprint stack) through residential proxies, which is what actually clears the challenge. Once the page renders, the actor reads business data either out of the __NEXT_DATA__ JSON island on legacy pages or directly from business-card links on the newer App-Router pages.
No account, no cookies, no API key, no third-party unblocking service — it’s Apify-native end to end.
What You Get Per Business
Each result is a flat record:
- domain — the business domain, e.g.
pipedrive.com. This is the field that feeds the Reviews Scraper. - name — display name
- trustScore — Trustpilot’s 1–5 TrustScore
- reviewsCount — total review count
- stars — star rating band
- categories — array of Trustpilot category tags
- isVerified — whether the business is verified
- isClaimed — whether the profile has been claimed by the business
- city, country — location
- logoUrl, profileUrl — logo image and the Trustpilot review page URL
- scraped_at — ISO timestamp of the scrape
Two Search Modes
The actor supports category mode and keyword mode, and they behave differently:
- Category mode browses a Trustpilot category page (e.g.
electronics_technology) and paginates through it — this gives you the broadest coverage of a niche. - Keyword mode runs a free-text search when you already know a company name or a specific term.
Search a Category in Python
import os
from apify_client import ApifyClient
apify = ApifyClient(os.environ["APIFY_TOKEN"])
run = apify.actor("themineworks/trustpilot-business-search").call(run_input={
"query": "electronics_technology",
"searchMode": "category",
"maxResults": 50,
"proxyConfiguration": {
"useApifyProxy": True,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US",
},
})
for business in apify.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{business['name']} ({business['domain']})")
print(f" TrustScore: {business.get('trustScore')} — {business.get('reviewsCount', 0):,} reviews")
print(f" Verified: {business.get('isVerified')} Claimed: {business.get('isClaimed')}")
Keyword Search
run = apify.actor("themineworks/trustpilot-business-search").call(run_input={
"query": "travel insurance",
"searchMode": "keyword",
"maxResults": 30,
})
results = [b for b in apify.dataset(run["defaultDatasetId"]).iterate_items()]
top_rated = sorted(results, key=lambda b: b.get("trustScore", 0), reverse=True)
for b in top_rated[:10]:
print(f"{b['trustScore']} {b['name']} ({b['reviewsCount']} reviews)")
Filtering for Lead Quality
A raw category pull mixes small, unclaimed profiles with established, verified businesses. If you’re building a lead list rather than a market map, filter on isClaimed, isVerified and a minimum reviewsCount so you’re not chasing companies that barely have a Trustpilot presence:
qualified_leads = [
b for b in results
if b.get("isClaimed") and b.get("isVerified") and b.get("reviewsCount", 0) >= 50
]
From Search to Reviews: The domain Field
Business Search is deliberately the front half of a pipeline. Every result carries a domain field, and the Reviews Scraper’s input is companyDomain — the two actors share that key so you can chain them directly:
# 1) Find businesses in a category
search_results = [b for b in apify.dataset(run["defaultDatasetId"]).iterate_items()]
# 2) Pull reviews for each one
for business in search_results[:5]:
if not business.get("domain"):
continue
reviews_run = apify.actor("themineworks/trustpilot-reviews").call(run_input={
"companyDomain": business["domain"],
"maxResults": 100,
})
print(f"Pulled reviews for {business['domain']}")
For the full chained workflow with error handling and batching, see Building a Review Monitoring Pipeline: Trustpilot Business Search to Reviews in One Workflow.
Pricing
Pay-per-event at $2 per 1,000 businesses ($0.002 each), plus a small per-run start fee. Blocked pages or failed requests are never charged.
Use in an AI Agent
The actor is exposed as an MCP tool:
https://mcp.apify.com/?tools=themineworks/trustpilot-business-search
Connected to Claude or another MCP client, you can ask something like “find the top 50 electronics companies on Trustpilot with their TrustScore and review count” and get a structured answer without writing a script.
Where This Fits
Business Search is category- and keyword-agnostic — it works for SaaS, e-commerce, financial services, or any other vertical Trustpilot covers. If your use case is specifically hospitality — hotels, restaurants, attractions — Trustpilot isn’t the right source at all; see our TripAdvisor reviews guide for that instead. Trustpilot’s strength is B2B, SaaS and e-commerce companies where a TrustScore functions as a de facto reputation benchmark.
Explore the scraper referenced in this article — see inputs, outputs, and pricing, then run it on Apify.
Airbnb Scraper: Listing Prices, Ratings, and Availability Without the API
Airbnb has no public listings API. Here's how to pull nightly price, rating, superhost status and coordinates from Airbnb search results using Python.
Maps Leads: Verified Email Extraction from Google Maps Business Listings
How to pull B2B leads from Google Maps with MX-verified emails, past the official API's 120-result cap, and pay only for contactable businesses.
Realtor.com Scraper: Property and Agent Data Without the MLS Paywall
Scrape Realtor.com listings in Python — price, beds, baths, county, and the listing agent + brokerage office on every record. No login, no API key.