Trustpilot Reviews Scraper avatar

Trustpilot Reviews Scraper

Pricing

from $0.25 / 1,000 review scrapeds

Go to Apify Store
Trustpilot Reviews Scraper

Trustpilot Reviews Scraper

Scrape Trustpilot reviews for any company: rating, full text, dates, author country, verification, and the company's reply, plus trust score and categories on every row. Filter by stars, language, verified, replied, or only reviews newer than a date.

Pricing

from $0.25 / 1,000 review scrapeds

Rating

0.0

(0)

Developer

mick_

mick_

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Trustpilot Reviews Scraper logo

Trustpilot Reviews Scraper

Scrape Trustpilot reviews for any company. Every row has the star rating, full review text, publish and experience dates, author name and country, verification status, the company's reply, and the company's trust score and categories. No Trustpilot account, no API key.

Enter a domain like pipedrive.com or paste a Trustpilot URL. Scrape one company or a list of competitors in the same run.

At a glance
You give itCompany domains or Trustpilot URLs, plus optional star, language, date and verified filters
You getOne row per review: rating, full text, dates, author country, verification, company reply, trust score
Price$0.005 per run at the default 1 GB memory + $0.00049 per review (Free plan, lower on paid plans)
Speed1,000 reviews in about 94 seconds
NeedsNothing: no login, no API key, no proxy

What you get

  • Newest reviews first, for real. Ask for 250 reviews and you get the 250 most recent, with the natural mix of ratings. Other scrapers switch to walking one star rating at a time after 200 and hand you a pile of old 1-star reviews.
  • Up to 1,000 reviews per company per language. Trustpilot shows anonymous visitors 200 reviews per filtered view. This actor splits by star rating to reach 200 per rating, then merges them newest-first.
  • Incremental syncs. Set Published after to the date of your last run. With newest-first sorting the actor stops paging the moment it reaches older reviews, so a daily sync costs cents.
  • Filters: star ratings, languages, verified only, only reviews the company replied to.
  • Company columns on every row: name, website, trust score, stars, total reviews, reviews in the last 12 months, categories, claimed status, country.
  • Fast and light. A browser opens once to pass Trustpilot's bot check, then every page is a small JSON request. 1,000 reviews took 94 seconds in testing.

Use cases

  • Reputation monitoring. Get every new 1 and 2 star review for your brand each morning, with the text, so support can respond the same day.
  • Competitor research. Pull the latest reviews for five competitors and see what their customers complain about.
  • Sales prospecting. Unhappy customers of a competitor, by country, with the exact complaint. A strong opener for outreach.
  • Testimonials. Pull verified 5-star reviews for landing pages and sales decks.
  • AI and sentiment analysis. Clean review text with ratings and dates, ready for an LLM or a sentiment model.
  • Reply audits. Only reviews the company replied to, with the reply text and how long it took.

Example inputs

Every new negative review since yesterday

{
"companies": ["yourcompany.com"],
"stars": ["1", "2"],
"publishedAfter": "2026-09-25",
"maxReviewsPerCompany": 0
}

Latest 100 English reviews for five competitors

{
"companies": ["pipedrive.com", "www.hubspot.com", "www.zoho.com", "monday.com", "salesforce.com"],
"maxReviewsPerCompany": 100,
"languages": ["en"]
}

Everything anonymous visitors can see, in English and German

{
"companies": ["https://www.trustpilot.com/review/www.booking.com"],
"maxReviewsPerCompany": 0,
"languages": ["en", "de"]
}

Verified 5-star testimonials

{
"companies": ["pipedrive.com"],
"stars": ["5"],
"verifiedOnly": true,
"maxReviewsPerCompany": 50
}

Input

FieldWhat it does
companiesDomains, website URLs, or Trustpilot review URLs. Use the exact domain Trustpilot shows: some companies are listed with www. and some without.
maxReviewsPerCompanyStop after this many per company. 0 means as many as Trustpilot shows anonymous visitors. Default 100.
starsOnly these ratings, for example ["1","2"].
languagesISO codes like en, de, fr. Each language is scraped separately. all or empty means every language together.
publishedAfterOnly reviews published after this date or timestamp.
verifiedOnlyOnly reviews Trustpilot marks as verified.
withRepliesOnlyOnly reviews the company replied to.
sortrecency (newest first, default) or relevance.
proxyConfigurationOff by default and not needed in testing. Turn on only if you get blocked.

Output

One row per review. This is a real row from a test run on 2026-09-26:

{
"reviewId": "6ab39f79780950e2d7706185",
"reviewUrl": "https://www.trustpilot.com/reviews/6ab39f79780950e2d7706185",
"rating": 5,
"title": "Useful and great session with PipeDrive",
"text": "Rafael was very clear. Going through the session, he had some nice tips and insights. Was very helpful!",
"language": "en",
"publishedDate": "2026-09-23T11:44:25.000Z",
"experienceDate": "2026-09-23T00:00:00.000Z",
"updatedDate": null,
"likes": 0,
"source": "BasicLink",
"isVerified": false,
"verificationLevel": "invited",
"authorName": "Lisa",
"authorId": "6ab39f2de947d3a834748ef4",
"authorCountry": "NL",
"authorReviewCount": 1,
"authorImage": null,
"hasReply": true,
"replyText": "Hi Lisa,\n\nThank you for sharing your feedback!\n\nWe’re delighted to hear that the team was clear and helpful throughout the session, and that his tips and insights were valuable to you.\n\nBest regards,\nPipedrive Team",
"replyPublishedDate": "2026-09-23T11:55:49.000Z",
"replyUpdatedDate": null,
"companyName": "Pipedrive",
"companyDomain": "pipedrive.com",
"companyWebsite": "https://www.pipedrive.com/en/gettingstarted?utm_source=trustpilot&utm_medium=directories&utm_campaign=listing&utm_content=free_trial",
"companyTrustScore": 4.4,
"companyStars": 4.5,
"companyTotalReviews": 3453,
"companyReviewsLast12Months": 441,
"companyCategories": [
"Business to Business Service",
"CRM Provider",
"Software Company"
],
"companyIsClaimed": true,
"companyCountry": "US",
"companyUrl": "https://www.trustpilot.com/review/pipedrive.com"
}

The Reviews and Company replies tabs in the Output view show the most useful columns. Export as JSON, CSV, Excel, or pull it from the API.

Pricing

Pay per event:

  • $0.005 per run start, per GB of memory (the default 1 GB means one start event; 2 GB means two)
  • $0.00049 per review on the Free plan (lower on higher Apify plans)

Apify platform usage is billed separately to your account. It is small because the actor makes plain JSON requests after one short browser session. Measured: 230 reviews used $0.0013 of platform usage, 1,000 reviews used $0.0079.

ReviewsActor costPlatform usage (measured)
100about $0.054under $0.002
1,000about $0.495about $0.008
10,000about $4.90about $0.08

Set a Maximum cost per run in the run options and the actor stops cleanly when it reaches it.

Automate it with n8n

Each workflow below uses n8n's official Apify node: operation Run actor and get dataset, Actor Source Apify Store Actors, actor labrat011/trustpilot-reviews-scraper, memory 1024 MB. Paste the input JSON into the node's Input JSON field.

1. Negative review alert to Slack (daily)

Schedule Trigger (every day 08:00)
> Apify: Run actor and get dataset
> Slack: Send message to #customer-support (runs once per review)

Input JSON for the Apify node. Switch the field to Expression so n8n fills in the date. It sets the cursor to 24 hours ago, so each run only fetches, and only pays for, new reviews:

{
"companies": ["yourcompany.com"],
"stars": ["1", "2"],
"publishedAfter": "{{ $now.minus({ days: 1 }).toISO() }}",
"maxReviewsPerCompany": 0
}

Slack message text: {{ $json.rating }} stars from {{ $json.authorName }} ({{ $json.authorCountry }}): {{ $json.title }} {{ $json.reviewUrl }}

2. Weekly competitor review digest to Google Sheets

Schedule Trigger (Mondays 07:00)
> Apify: Run actor and get dataset
> Google Sheets: Append rows (one row per review)

Input: your competitors in companies, publishedAfter set to {{ $now.minus({ days: 7 }).toISO() }}. Map companyName, rating, title, text, publishedDate, reviewUrl to sheet columns. A pivot on companyName and rating gives you a weekly scorecard.

3. AI complaint summary by email

Schedule Trigger (weekly)
> Apify: Run actor and get dataset (stars ["1","2"], last 7 days)
> Aggregate: all items into one list
> OpenAI / Anthropic: "Group these reviews into the top 5 complaint themes with one quote each"
> Gmail: Send the summary to the product team

4. Unhappy-competitor-customer leads to your CRM

Schedule Trigger (daily)
> Apify: Run actor and get dataset (competitor domains, stars ["1","2"], last 24 hours)
> Filter: authorCountry is in your sales regions
> HubSpot / Pipedrive: Create a note or task with the review text and link

5. Testimonial wall refresh

Schedule Trigger (monthly)
> Apify: Run actor and get dataset (your domain, stars ["5"], verifiedOnly true, 50 reviews)
> Code: keep reviews over 120 characters
> Webflow / Airtable: Upsert by reviewId

For AI agents

  • Actor: labrat011/trustpilot-reviews-scraper
  • Smallest input: { "companies": ["pipedrive.com"] }
  • One row = one review, with the company's trust score and categories on every row. Key fields: rating, title, text, publishedDate, authorCountry, isVerified, replyText.
  • Billing: apify-actor-start once per run per GB of memory (1 GB default), review per row. Cap spend with maxReviewsPerCompany or a maximum cost per run.
  • Run it: POST https://api.apify.com/v2/acts/labrat011~trustpilot-reviews-scraper/run-sync-get-dataset-items with the input as the JSON body, or call it from the Apify MCP server.
  • Done signal: the run's status message reads Saved N reviews from C companies in R requests.

FAQ

Why not every review a company has? Trustpilot only shows logged-out visitors 10 pages (200 reviews) per filtered view. This actor gets 200 per star rating per language, up to 1,000 per language. Use publishedAfter on a schedule to build a complete history going forward.

The company was not found. Search the company on trustpilot.com and copy the address from the browser. Some companies are listed as www.example.com, others as example.com.

Do I need a proxy? No. Every test run succeeded without one. The option exists in case Trustpilot changes its bot check.

Can I scrape many companies at once? Yes. Put them all in companies; reviews come out company by company, each company newest-first.

Support

Open an issue on the actor's Issues tab with the run ID and the company, and it will be looked at.