Yes, you can analyze Trustpilot reviews for many businesses at once without copying pages. Scavio's Trustpilot API takes a business domain and returns its reviews as JSON, filtered by stars, language, date range and a text search, and every response includes total_filtered, the exact count of matching reviews. Loop the same filters over a list of businesses and you get comparable numbers in a few calls each: we compared five moving companies' complaints in 20 calls. Each call costs 2 credits, about $0.004 on the Growth plan billed yearly.
The question comes from a thread on r/ChatGPTPro asking whether Trustpilot and Google reviews can be analyzed in bulk for multiple businesses, where the only method the poster could think of was "manually copy n pasteing the content after scrolling each page". It ranks third on Google for "how to scrape trustpilot reviews". The answer is to stop treating reviews as pages and request them as data.
Why copying pages does not scale
A Trustpilot profile shows 20 reviews a page, newest first. To compare five businesses on one complaint, you would scroll each profile, filter by hand and count. Trustpilot's own API does not help here: its API module is an add-on for a business's own account and returns that business's own reviews, not a competitor's.
Step 1: Ask every business the same question
Pick the filters once: English 1- and 2-star reviews from the last 12 months.
curl -s https://api.scavio.dev/api/v1/trustpilot/reviews \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"domain": "pods.com", "stars": [1, 2], "language": "en", "date_range": "last12months"}'total_filtered is the count, and reviews[] holds the 20 newest matching reviews with text, rating, dates, verification and the business reply. For PODS Moving & Storage on October 27, 2026, total_filtered was 790.
Step 2: Count the complaints with a text search
Add search to the same call to count reviews that contain a word:
curl -s https://api.scavio.dev/api/v1/trustpilot/reviews \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"domain": "pods.com", "stars": [1, 2], "language": "en", "date_range": "last12months", "search": "refund"}'A small Python loop runs it for every business and term:
import os, requests
KEY = os.environ["SCAVIO_API_KEY"]
BASE = {"stars": [1, 2], "language": "en", "date_range": "last12months"}
businesses = ["pods.com", "hireahelper.com", "www.getbellhops.com",
"mypieceofcakemove.com", "coastalmovingservices.com"]
for domain in businesses:
row = {}
for term in [None, "damage", "late", "refund"]:
body = {"domain": domain, **BASE, **({"search": term} if term else {})}
r = requests.post("https://api.scavio.dev/api/v1/trustpilot/reviews",
headers={"Authorization": f"Bearer {KEY}"}, json=body, timeout=150)
row[term or "negative"] = r.json()["data"]["total_filtered"]
print(domain, row)That is 4 calls per business, 20 in all, 40 credits. What it returned on October 27, 2026:
| Business | English 1-2 star reviews, last 12 months | Contain "damage" | Contain "late" | Contain "refund" |
|---|---|---|---|---|
| PODS Moving & Storage | 790 | 29 (3.7%) | 54 (6.8%) | 68 (8.6%) |
| HireAHelper | 372 | 45 (12.1%) | 59 (15.9%) | 20 (5.4%) |
| Coastal Moving Services | 148 | 8 (5.4%) | 22 (14.9%) | 18 (12.2%) |
| Piece of Cake Moving & Storage | 57 | 10 (17.5%) | 1 (1.8%) | 1 (1.8%) |
| Bellhop Moving | 32 | 3 (9.4%) | 10 (31.2%) | 9 (28.1%) |
The volumes alone differ by 25 times, so raw counts would mislead; shares make the businesses comparable. Damage is Piece of Cake's most common word among the three, "late" is Bellhop's and HireAHelper's, and refunds come up more at Coastal Moving Services than damage does. A text search counts reviews containing the word, not its meaning, so read a few matches before you trust a term.
Step 3: Send the text to a model
Counts tell you where to look; the review text tells you why. Each call already returned up to 20 matching reviews, so pass each business's reviews[].text to ChatGPT or another model with the same prompt, for example "list the three most common complaints with one quote each". Because every business got the same filters, the summaries line up. For more than 20 reviews per slice, send page from 2 to max_page; Trustpilot serves at most 200 reviews per filter combination, and our guide to exporting past the 200 limit shows how to split larger slices.
If you work inside an AI assistant, connect it to Scavio's MCP server and it can make these calls itself from a prompt such as "compare refund complaints for these five domains over the last 12 months".
Google reviews and other sites
The thread also asked about Google reviews. The same approach works on Scavio's Google Maps API, which returns places and their reviews, and on Yelp, Tripadvisor, G2 and Capterra, all with the same key and response envelope.
What it costs
Comparing 50 competitors on four counts each is 200 calls, 400 credits: about $0.80 on the Growth plan billed yearly, and inside the 50 free credits you get on signup for a first test of six businesses. Pulling 200 reviews of text per business for the model adds 10 calls each.
Try the Trustpilot API free, 50 credits, no card, or run the reviews endpoint in the playground.
Reference: Trustpilot API overview · reviews docs · how to get Trustpilot reviews · best Trustpilot scraper APIs
Frequently asked questions
Can I analyze Trustpilot reviews with ChatGPT?
Yes, once the reviews are text the model can read. Pull them as JSON first, then send each business's slice to the model with the same prompt so the answers are comparable. An agent connected to Scavio's MCP server can call the Trustpilot reviews endpoint itself instead of you pasting pages.
How do I compare Trustpilot reviews across competitors?
Run the same filtered query for every business: the same star ratings, language and date range. total_filtered then gives comparable counts, and adding a text search such as refund or damage shows how often each complaint appears per business, without reading every review.
How many reviews can I pull per business?
Trustpilot serves up to 200 reviews, 10 pages of 20, for each combination of filters. For bulk comparisons that is usually enough, because counts come from total_filtered, which is exact even when the slice is larger than 200. To read more text, split a slice by star rating, language or date.
Can I pull Google reviews for the same businesses?
Yes. Scavio's Google Maps API returns places and their reviews with sorting, and Yelp, Tripadvisor, G2 and Capterra reviews are available on the same key, so one loop can compare a business across review sites.