Trustpilot Review Scraper — Unlimited Reviews, Bypass 200 Limit avatar

Trustpilot Review Scraper — Unlimited Reviews, Bypass 200 Limit

Pricing

Pay per usage

Go to Apify Store
Trustpilot Review Scraper — Unlimited Reviews, Bypass 200 Limit

Trustpilot Review Scraper — Unlimited Reviews, Bypass 200 Limit

Trustpilot reviews → CSV/JSON/Excel in 2 min. 950+ production runs, bypasses 200-review limit. 9 fields/review: stars, headline, text, author, date, language, company, URL, timestamp. BI, competitor research, lead enrichment. spinov001@gmail.com · blog.spinov.online · t.me/scraping_ai

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Alex

Alex

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

2 days ago

Last modified

Share

Trustpilot Review Scraper

Pull every public review from any Trustpilot company page — past the 200-result UI cap — straight into CSV or JSON. No API waitlist, no auth, no headless browser.

949 lifetime production runs on this exact actor as of 2026-04-29.


What you get per review

Every record returned is a flat JSON object with these 9 fields (verified against src/main.js Actor.pushData()):

FieldExample
companyNameBooking.com
companyUrlhttps://www.trustpilot.com/review/booking.com
titleReview headline (may be empty string if missing in JSON-LD)
textFull review body, plain text (may be empty string if missing)
stars15 integer, or null when reviewRating.ratingValue is non-numeric
authorReviewer display name (may be empty string)
datePublishedISO 8601 (2026-03-12T08:14:00Z) — or null if absent
inLanguageen-US, de-DE, etc. — or null
scrapedAtISO 8601 capture timestamp

CSV output is the same fields as a header row. No nested arrays — opens cleanly in Excel, Google Sheets, pandas, dbt seeds.


Use it for

  • Competitor analysis — pull a rival's 1-star reviews and tag them by complaint category
  • Sentiment monitoring — push the text column into your LLM of choice; track shifts week-over-week
  • Lead enrichment — companies with rising 1-star volume often hire support / CX consultants
  • Market research — feed inLanguage + stars into a regional satisfaction dashboard
  • Reputation early-warning — schedule a daily run, diff the result, alert on new negative reviews

Quick start

  1. Click Try for free above.
  2. Paste a Trustpilot company URL into companyUrls (e.g. https://www.trustpilot.com/review/booking.com).
  3. Optionally set maxReviewsPerCompany (default 100, max 1000 per input_schema).
  4. Run. Download CSV/JSON from Storage → Dataset.

For programmatic use (input keys match .actor/input_schema.json exactly):

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("knotless_cadence/trustpilot-review-scraper").call(
run_input={
"companyUrls": ["https://www.trustpilot.com/review/booking.com"],
"maxReviewsPerCompany": 1000,
"filterByStars": 0,
"sortBy": "recency",
}
)
for review in client.dataset(run["defaultDatasetId"]).iterate_items():
print(review["stars"], review["title"])

Inputs:

  • companyUrls — array of Trustpilot review URLs (or bare domains; the actor normalises to https://www.trustpilot.com/review/<domain>)
  • searchQueries — array of search terms (auto-discovers companies + scrapes top 10 per query — hard .slice(0, 10) cap)
  • maxReviewsPerCompany — integer cap per company URL (default 100, schema max 1000). Multi-URL runs multiply: 5 URLs × 100 = up to 500 reviews.
  • filterByStars0 = all, 15 = only that rating. Records outside the filter are dropped entirely (not emitted with partial schema).
  • sortByrecency (default) or relevance. The actor appends ?sort=${sortBy} directly to Trustpilot URLs.

How the 200-cap bypass works

Trustpilot's public UI paginates reviews; older entries are not always reachable from the default sort view. This actor walks ?page=N directly using CheerioCrawler (HTTP only — no headless browser, no captcha layer), parses the JSON-LD Review graph that Trustpilot embeds in every page, and pushes each review as a flat row. Concurrency is capped at maxConcurrency: 5 and per-crawl requests at maxRequestsPerCrawl: 1000.


Honest limitations (verified against src/main.js)

  • No Apify Proxy is wired. CheerioCrawler is constructed without proxyConfiguration. Requests originate from Apify's default IP pool and can be rate-limited at high concurrency. For proxy-routed runs at scale, request a custom build via the contact below.
  • No headless rendering. Currently Trustpilot embeds the Review JSON-LD graph server-side — Cheerio reads it directly. If Trustpilot moves to client-only rendering, this actor will return empty results. Disclosure-honest: this is a fragility, not a guarantee.
  • sortBy is appended as ?sort=recency / ?sort=relevance. Trustpilot's UI may use different sort tokens internally; verify your sort actually changes ordering before relying on it for time-series work.
  • Pagination terminates on the first empty page. Transient server [] (network blip, brief block) on page N silently ends pagination for that company. No retry on the pagination boundary; missing tail-pages are not re-attempted within the same run.
  • Crawlee internal retries: 3 per request for transient failures (default). Persistent blocks return a silent zero-record run, not an exception.
  • Search dedup is exact-URL match. Case differences or trailing-slash variants in href attributes are treated as different companies; you may see one extra duplicate per search.
  • maxReviewsPerCompany is per-URL. Whole-run total = len(companyUrls) × maxReviewsPerCompany plus up to len(searchQueries) × 10 × maxReviewsPerCompany from auto-discovered companies. Budget accordingly.
  • filterByStars halves the dataset effective yield when you set a single rating — pagination still consumes the full maxReviewsPerCompany budget even though most rows are dropped. To guarantee N records of a specific rating, raise the cap.
  • Schema fields can be empty strings or null (see table above). Downstream code should handle text == '' and stars is None rather than asserting populated values.

Need something custom?

If your use case is broader than "give me Trustpilot reviews" — multi-source review aggregation, scheduled deltas piped to your DB, data cleaned and joined to your CRM — we build that as a one-shot package.

TierPriceIncludes
Pilot$971 custom actor or modification, 7-day support
Standard$297Custom actor + Slack/email alerts on results, 30-day support
Premium$797Custom actor + dashboard + 90-day support + 1 modification round

Email: spinov001@gmail.com Blog (case studies + writeups): https://blog.spinov.online Telegram channel (scraping & data engineering tips): https://t.me/scraping_ai

Pilot pricing while we grow our public portfolio. Most pilots delivered inside 48–72 hours.


Honest disclosure

  • Public reviews only. We do not scrape private user data, accounts, or anything behind a login.
  • Independent project — not affiliated with Trustpilot.
  • This actor is maintained by the same author who runs apify.com/knotless_cadence (78 actors, 31 public).