The Trustpilot API: what breaks a run, and what it costs

The Trustpilot API: what breaks a run, and what it costs

blackfalcondata

A single Trustpilot API call is easy. Keeping it reliable is not. The problems below come directly from our scraper's source and reflect the failures it has to handle in production.

Here is what our Trustpilot Actor handles, what a run costs, and where it stops trying.

Doing it yourself

Building your own scraper makes sense when you need one snapshot or when a failed run carries no cost. Even then, this is the work involved.

The front door. A plain HTTP request to Trustpilot does not return a page. Measured on 2026-08-22 (3 attempts, all refused), it returned 403 behind AWS CloudFront. Your scraper must clear that barrier before parsing a single field.

Getting past the gate. Trustpilot sometimes responds with a 403 from its bot protection instead of serving the page. Our client uses the first 403 as a signal to re-mint its session cookie and retry, because a fresh cookie is usually what it wants.

Telling a challenge from a block. Challenge walls and outright blocks both return 403. Only the response body distinguishes them. Handle them identically, and the scraper keeps retrying against a wall that will never open.

Rate limits. Send requests too aggressively and Trustpilot returns 429. Backoff is mandatory; without it, the run becomes a queue of failures.

Proxies. Runs use rotating proxies. A pattern from one IP is trivially detectable, and proxies are usually the largest cost line, well above compute.

Pagination. Listings span multiple pages. The stop condition needs more care than "until a page comes back empty" because a soft block can also produce an empty page.

Silent breakage. Trustpilot can change its markup without notice. Extraction then fails quietly, producing empty fields instead of an error. Detecting that drift requires its own monitoring.

The real cost is upkeep. The first version takes an afternoon to write. After that, expect an hour every few weeks, forever. Failures stay silent: you discover them in an empty report, not through a scraper error.

These figures come from a measured run, not an estimate:

  • 25 records in 2.9 seconds
  • cost: $0.00035 — about $0.01 per 1,000 records

The shortcut

If you do not want to own that work, the same result takes one call:

```bash curl -X POST "https://api.apify.com/v2/acts/blackfalcondata~trustpilot-reviews-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \ -H 'Content-Type: application/json' \ -d '{"mode": "..."}' ```

Or use Python:

```python from apify_client import ApifyClient

client = ApifyClient("YOUR_TOKEN") run = client.actor("blackfalcondata~trustpilot-reviews-scraper").call(run_input={"mode": "..."})

for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ```

What comes back

Each record contains 96 fields, divided into several groups:

  • company — companyDomain, companyName, companyTrustScore, companyStars, companyTotalReviews, companyWebsite, +37 more
  • is — isVerified, isComplaint, isFiltered, isPending, isRepost
  • reviewer — reviewerName, reviewerCountry, reviewerTotalReviews, reviewerIsVerified, reviewerImageUrl

What people use it for

  • Reputation monitoring. Tracking ratings and review text over time reveals movement that one page view cannot show.
  • Lead lists. Company-level fields let you filter for the relevant segment before anyone opens a CRM.
  • Change detection. Timestamps support run-to-run diffs, so you can act on new records instead of re-reading everything.
  • Geographic analysis. Location fields allow market-by-market comparisons without another data source.

The honest caveats

  • Nothing here bypasses a Trustpilot login. Any scraper is limited to public pages.
  • A scraper that works today may not work in six weeks. The failure mode is silence, not an exception.
  • Proxy cost rises with volume and is the expense people often omit from DIY estimates.

Questions people ask

Is scraping Trustpilot legal? Reading publicly visible pages is generally treated differently from accessing data behind a login. Courts in the US have repeatedly declined to treat public scraping as unauthorised access. That is not legal advice, and a site's terms of service remain a separate question from the law. Anything behind a login is out of scope either way.

Why am I getting 403s when the page loads fine in my browser? The check is not about the URL. A plain request to Trustpilot from our probe on 2026-08-22 was answered by aws cloudfront — every attempt was refused. Your browser succeeds because it carries a TLS fingerprint, a cookie and a header set that a bare HTTP client does not.

Do I need proxies? For more than a small sample, yes. Our own input exposes `proxyConfiguration` because a single origin IP is the easiest thing in the world to rate-limit.

How often will it break? Plan to touch it whenever Trustpilot releases a redesign. You may not notice immediately because extraction fails quietly, returning empty fields instead of errors. Budget an hour every few weeks rather than a fix-and-forget afternoon.

Is it cheaper to build it myself? Only if your time is free. The measured run below cost $0.00035 for 25 records. The equivalent DIY cost includes proxy spend and the recurring maintenance hour.

Try it

If you do not want to own the upkeep, the Trustpilot API we run so you do not have to already handles everything above. New accounts receive $5 of free platform credit each month, enough to cover a real run of this size several times over.

Disclosure: we build and maintain this Actor, and the link above is an affiliate link.

Further reading


We also publish how the Trustpilot API responds on blackfalcondata.com — the request, the response, and what a run costs.

Report Page