Trustpilot Reviews API avatar

Trustpilot Reviews API

Pricing

from $2.57 / 1,000 review returneds

Go to Apify Store
Trustpilot Reviews API

Trustpilot Reviews API

Trustpilot business reviews as clean, structured JSON for reputation monitoring. Send company URLs and get review text, star rating, verified status, date of experience, reviewer location, company replies, and the full star breakdown. Pay per review, MCP-ready for Claude and AI agents.

Pricing

from $2.57 / 1,000 review returneds

Rating

0.0

(0)

Developer

John

John

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

4

Monthly active users

6 hours ago

Last modified

Share

Trustpilot Reviews API for Reputation Monitoring

Trustpilot business reviews as clean, structured JSON for reputation monitoring. Send company URLs and get back every review with its star rating, full text, verified status, date of experience, reviewer location, and any reply the business posted, alongside the company's overall rating and its full star distribution.

Built for reputation monitoring rather than one-off exports: the date of experience is separate from the posting date, replies come through as structured entries, and the star breakdown carries both counts and percentages so you can track a rating shifting rather than just read its current value.

The data comes from public company review pages on Trustpilot. This Actor is not affiliated with, endorsed by, or connected to Trustpilot, and it is not a resale of Trustpilot's own developer API.

What this actor returns

  • Review detail: title, full text, star rating, posting date, and the separate date of experience
  • Trust signals: verified-review flag, verified-business flag, useful-vote count, and the reviewer's total review count for weighting
  • Company replies: what the business said back, and when
  • Company rating: overall score, word label, total review count, and the 5-to-1 star split with counts and percentages
  • Company detail: website, activities, category path, email, phone, location, country

Every review row also carries a one-line plain-language summary, so an AI agent can read a record without post-processing.

Use cases

  • Monitor your own reputation. Re-run on a schedule and watch the star breakdown move, not just the headline score.
  • Watch competitors. Collect several companies in one run and compare rating distribution and reply behaviour.
  • Find unanswered complaints. Filter for low ratings with no entry in reviewReplies.
  • Analyse sentiment by market. Reviewer location lets you split feedback by country.
  • Audit review quality. The verified flag and the reviewer's overall review count help separate established reviewers from one-time accounts.
  • Build a customer review dataset. Export the flat rows straight into a sentiment model or a BI table.

Input parameters

ParameterTypeRequiredDefaultDescriptionExample
companyUrlsarray of stringsRequired(none)Company review-page URLs. A bare domain also works as shorthand. Up to 200 companies per run; anything beyond the cap is not collected.["https://www.trustpilot.com/review/example.com", "acme.com"]
maxReviewsPerCompanyintegerOptional100Reviews per company, from 1 to 1000. This is your cost control, since you are charged per review.100
datePostedstringOptional(none, all reviews)Return only reviews posted within a recent window. One of Last 30 days, Last 3 months, Last 6 months, Last 12 months. The source accepts these fixed windows only, not calendar dates. Leave empty for all.Last 30 days
{
"companyUrls": ["https://www.trustpilot.com/review/www.dugood.org"],
"maxReviewsPerCompany": 100
}

The per-company cap is applied at the source, so nothing beyond it is collected or billed.

You supply the company URLs. There is no keyword search or company-discovery mode, so a run answers "what do these companies' reviews look like" rather than "which companies exist in this category".

Example output

One dataset row per review. Every row carries a result_type of either review or error.

{
"result_type": "review",
"companyName": "DuGood Credit Union",
"reviewTitle": "Very good beautiful App",
"reviewContent": "Staff were helpful and the process was quick.",
"reviewRating": 5,
"reviewDate": "2026-07-24T09:12:00.000Z",
"dateOfExperience": "2026-07-23T00:00:00.000Z",
"isVerifiedReview": false,
"reviewerName": "Muhammad Ubaidullah",
"reviewerLocation": "PK",
"reviewerTotalReviews": 7,
"companyOverallRating": 4.7,
"companyRatingLabel": "Excellent",
"companyTotalReviews": 4389,
"companyActivities": ["Credit Union", "Bank", "Mortgage Lender"],
"categoryPath": ["Money & Insurance", "Credit & Debt Services", "Credit Union"],
"starBreakdown": {
"star5": { "count": 4083, "percent": 93 },
"star4": { "count": 169, "percent": 4 },
"star3": { "count": 55, "percent": 1 },
"star2": { "count": 24, "percent": 1 },
"star1": { "count": 58, "percent": 1 }
},
"summary": "5-star review of DuGood Credit Union by Muhammad Ubaidullah: \"Very good beautiful App\""
}

Output fields

FieldTypeWhat it holds
result_typestringreview or error, so failures stay visible in the same dataset
reviewIdstringStable identifier for the review on the source site
reviewTitlestringHeadline the reviewer gave
reviewContentstringFull review body
reviewRatingintegerStar rating this reviewer gave, 1 to 5
reviewDatestringWhen the review was posted
dateOfExperiencestringWhen the reviewer says the experience happened
isVerifiedReviewbooleanWhether the source verified this review
reviewUsefulCountintegerHow many people marked the review useful
reviewRepliesarrayReplies the business posted to this review, with text and date
reviewUrlstringDirect link to the individual review
reviewerNamestringDisplay name of the reviewer
reviewerLocationstringCountry the reviewer posted from
reviewerTotalReviewsintegerHow many reviews this person has posted overall
companyNamestringName of the reviewed business
companyUrlstringThe company review page this review came from
companyWebsitestringThe business's own website
companyCategorystringPrimary category the business is listed under
companyActivitiesarrayAll activity categories the business is listed under
categoryPatharrayCategory breadcrumb trail, broadest first
companyOverallRatingnumberThe business's overall star rating across all reviews
companyRatingLabelstringWord form of the overall rating, for example Excellent
companyTotalReviewsintegerHow many reviews the business has in total
companyIsVerifiedbooleanWhether the business is verified on the source site
companyEmail, companyPhone, companyLocation, companyCountrystringContact and address details the business publishes itself
companyAbout, companyLogostringThe business's own description and logo URL
starBreakdownobjectThe 5-to-1 star split, each level with a count and a percent
summarystringOne-line plain-language summary of the review
error_message, error_typestringWhy a company URL produced no reviews, on error rows only
fetched_atstringUTC timestamp when this row was collected

A company URL that returns nothing produces a row with result_type: "error" and a plain-language error_message, so a failure never disappears silently.

Pricing

Pay per result. One event, review-scraped, is charged once for every review pushed to the dataset. Nothing is charged for a company that returns no reviews.

maxReviewsPerCompany caps what a run can cost, and the cap is enforced at the source rather than by discarding rows we already paid for. Current rates are shown on the Store card.

How to get started

  1. View on Apify Store and click Try for free.
  2. Find the company's public review page on Trustpilot and paste one or more of those URLs, or bare domains, into Company URLs.
  3. Run it. Results appear on the Output tab and export as JSON, CSV, or Excel. The Reputation snapshot view shows the rating distribution directly.

Prefer to start from code? The example repo has a Python quick-start plus MCP install walkthroughs for Claude, Cursor, and ChatGPT.

🔌 Use this API from Claude (MCP)

Add this Actor as a tool in Claude Code (free trial), Claude Cowork (free trial), Cursor, or any other MCP client through the hosted Apify MCP server:

https://mcp.apify.com/?tools=actors,docs,johnvc/trustpilot-reviews-api

With Claude Code (free trial):

claude mcp add --transport http trustpilot "https://mcp.apify.com/?tools=actors,docs,johnvc/trustpilot-reviews-api"

Then ask your agent something like "summarise the one-star reviews for this company and flag any without a reply".

Apify MCP integration docs: https://docs.apify.com/platform/integrations/mcp

💸 Pay per run with crypto (x402)

The Trustpilot Reviews API supports agentic payments via the x402 protocol. AI agents and MCP clients can pay for runs in USDC (on Base) with no Apify account or API token needed: point your agent at the Apify MCP server and it can discover, pay for, and run this Actor autonomously. Read the Apify x402 announcement for details.

🔌 Integrations: Automate Reputation Monitoring

A single run tells you what a company's reviews look like today. Reputation monitoring is a time series, so run the same input on a schedule and keep every snapshot. The recipes below all sit on Apify platform integrations.

Tasks and schedules: the core recipe

Save one task per thing you are watching. A sensible split is one task for your own company and one task holding your competitor set, each with its own maxReviewsPerCompany. Then attach a schedule from the Actor's Actions, then Schedule menu.

Useful cron strings:

  • 0 7 * * * runs daily at 7 AM, the normal cadence for a brand you actively manage
  • 0 */6 * * * runs every six hours, for a launch week or an active complaint spike
  • 0 9 * * 1 runs Mondays at 9 AM, enough for a competitor set you only review weekly

One schedule can trigger several tasks at once, so a single Monday morning trigger can refresh your own reviews and every competitor in one go. Pair a schedule with datePosted: "Last 30 days" to keep each run small and cheap once the backfill is done.

The Monitor Trustpilot Reputation for Any Company task is already configured this way, so you can copy it rather than build it.

n8n, Make, and Zapier

There is no dedicated community node for this Actor yet, so use the generic Apify n8n integration: a Schedule Trigger, then the Apify node running johnvc/trustpilot-reviews-api, then a Filter node on reviewRating <= 2, then a Slack or email node. That is a working unanswered-complaint alarm in four nodes.

The same pattern drops into Make and Zapier without changes: trigger, run, filter, notify.

Store the history in Supabase

Rating history only exists if you keep it. The no-code path is the Apify node followed by a Supabase node. In Python, apify-client plus supabase does the same job:

from apify_client import ApifyClient
from supabase import create_client
apify = ApifyClient("<APIFY_API_TOKEN>")
supabase = create_client("<SUPABASE_URL>", "<SUPABASE_SERVICE_KEY>")
run = apify.actor("johnvc/trustpilot-reviews-api").call(run_input={
"companyUrls": ["https://www.trustpilot.com/review/www.dugood.org"],
"maxReviewsPerCompany": 100,
"datePosted": "Last 30 days",
})
rows = [
{
"review_id": item.get("reviewId"),
"company_name": item.get("companyName"),
"review_rating": item.get("reviewRating"),
"review_title": item.get("reviewTitle"),
"date_of_experience": item.get("dateOfExperience"),
"is_verified_review": item.get("isVerifiedReview"),
"reviewer_location": item.get("reviewerLocation"),
"company_overall_rating": item.get("companyOverallRating"),
"has_reply": bool(item.get("reviewReplies")),
"fetched_at": item.get("fetched_at"),
}
for item in apify.dataset(run.default_dataset_id).iterate_items()
if item.get("result_type") == "review"
]
supabase.table("trustpilot_reviews").upsert(rows, on_conflict="review_id").execute()

Upserting on reviewId means a daily run is idempotent: old reviews stay put, new ones land, and company_overall_rating gives you a dated rating series to chart.

MCP and AI agents

Add the Actor to any MCP client through the Apify MCP server and an agent can pull reviews mid-conversation. The setup URL is in the MCP section above, and the Read Trustpilot Reviews in Claude via MCP task shows a working configuration. A question an agent can answer with one call: "which of our five competitors improved their one-star share this quarter, and which of them reply to complaints".

Webhooks

For anything custom, attach an Apify webhook on ACTOR.RUN.SUCCEEDED and post the dataset ID to your own service. That covers pushing into a warehouse or opening a ticket when a complaint lands.

Reviews live on more than one site, and most reputation work ends up pulling from several of them.

For contrast: older alternatives such as the Trustpilot Reviews Scraper by getwally.net return the review headline, text, rating, reviewer name, date, and URL, but not company replies, the verified flag, the date of experience, or the company-level star breakdown, and they carry no user rating on the Store. If you only need the review text, that is enough. If you are tracking a rating over time and want to know who replied, you need the fuller record this API returns.

💡 Applications

Ready-to-run examples of this API in action. Open any one and run it in a single click.

Get Trustpilot Reviews by API from Company URLs

The developer starting point: paste company URLs, get structured review JSON back. Run this task

Monitor Trustpilot Reputation for Any Company

Pre-wired for scheduling, so the star breakdown becomes a time series rather than a snapshot. Run this task

Audit Trustpilot Reviews for Fake Review Signals

Weight reviews by the verified flag and the reviewer's total review count to separate established reviewers from one-time accounts. Run this task

Build a Customer Review Dataset for Sentiment Analysis

Flat rows of review text with star ratings attached, ready for a sentiment model. Run this task

Export Trustpilot Reviews to CSV for Any Company

Straight to a spreadsheet, no code, for teams that live in Excel or Sheets. Run this task

Read Trustpilot Reviews in Claude via MCP

A working MCP configuration so an agent can pull reviews inside a conversation. Run this task

Monitor Competitor Trustpilot Ratings (监控竞品在 Trustpilot 的评分与差评分布)

Track a competitor set's overall rating and one-star share side by side. Run this task

Bulk Collect Trustpilot Reviews and Export to CSV (批量采集 Trustpilot 评论并导出为 CSV)

Collect many companies in one run and export the whole set as CSV. Run this task

❓ FAQ

How do I monitor my company's online reputation?

Run the Actor on your own company URL on a schedule and store each run. The star breakdown gives counts and percentages per level, so you can see a rating moving before the headline number changes.

How do I monitor a competitor's reputation?

Put several company URLs in one run. Every row carries its company name and overall rating, so a single export covers the whole comparison set.

Can I schedule this Actor for continuous reputation monitoring?

Yes, and this is where the Actor earns its keep. Save a task holding the company URLs you care about, then attach an Apify schedule from the Actor's Actions, then Schedule menu. Daily at 7 AM is 0 7 * * *, every six hours is 0 */6 * * *, and Mondays at 9 AM is 0 9 * * 1. One schedule can trigger several tasks, so your own brand and your competitor set can refresh on the same trigger. Set datePosted to Last 30 days on recurring runs so each one stays small. The Integrations section above has the full recipe, including where to store the accumulated history.

Should I use the official Trustpilot API or a web Scraper?

It depends on access. Trustpilot's own developer API is gated behind a business account and its plan limits, and it is scoped to the data that account is entitled to. This Actor works from public company review pages instead, so you can point it at any company, including competitors, without an account relationship. If it helps to have the categories straight: an API is a defined interface a provider offers, while web scraping reads the public page. This Actor gives you a scraper's reach with an API's output shape, and there are no per-call quotas to manage.

Is this an official Trustpilot API?

No. This Actor is not affiliated with, endorsed by, or connected to Trustpilot. It reads public review pages and returns them as structured data, and it does not claim feature parity with Trustpilot's own developer API.

Can I use this Trustpilot Reviews API from the Apify API?

Yes. The Apify API lets you start runs, pass input, attach schedules, and fetch datasets programmatically, and the apify-client package exists for both Node.js and Python. The Actor's own API tab has copy-paste snippets with your token filled in.

Can I use this Trustpilot review Scraper through an MCP server?

Yes. Add it as a tool in any MCP client through the hosted Apify MCP server using https://mcp.apify.com/?tools=actors,docs,johnvc/trustpilot-reviews-api. That covers Claude Code (free trial), Claude Cowork (free trial), Cursor, and anything else that speaks MCP. See the Apify MCP docs for client setup.

Can I integrate this review Scraper with other apps?

Yes. Through Apify integrations the Actor connects to most cloud services, including Make, Zapier, Slack, Google Drive, and n8n. For anything custom, an Apify webhook fires on ACTOR.RUN.SUCCEEDED and hands your service the dataset ID. The Integrations section above has the full recipes.

How can I collect reviews from other review sites?

Trustpilot is one signal among several. For B2B software the equivalent is the G2 Reviews API; for employer sentiment it is the Glassdoor Reviews API; for local businesses it is the Yelp Reviews API; and for restaurants it is the OpenTable Reviews API. They share the same run-and-export pattern, so a task built here transfers directly.

How do I monitor brand reputation on AI search engines?

Review sites are only half the picture now, because a lot of buyers ask an assistant before they read reviews. Pair this Actor with the Google AI Overview API and the Bing Copilot API to capture what AI answers say about your brand on the same schedule you capture reviews, then compare the two.

How does media monitoring support reputation management?

Reviews tell you what customers experienced; media and search coverage tell you what everyone else hears about it. Running both on the same cadence lets you line a rating dip up against whatever was published that week, which is normally how you find out why the number moved. This Actor covers the review half of that pairing.

How do I choose a reputation monitoring tool for crisis prevention?

For early warning, what the tool measures matters more than how the dashboard looks. Ask whether you get the full star distribution or only the average, since a one-star share can double while the average barely moves. Ask whether the date of experience is kept separate from the posting date, because a cluster of bad experiences shows up in the experience dates before it shows up anywhere else. Then ask whether you can keep the history, because a snapshot cannot show a trend. This Actor returns the first two and leaves the storage and alerting to you, so it fits under a dashboard you already have rather than replacing it.

What is the difference between the review date and the date of experience?

The review date is when the review was posted. The date of experience is when the reviewer says the interaction actually happened. They often differ by days or weeks, and for trend analysis the date of experience is usually the more meaningful one.

Can I find reviews the business never replied to?

Yes. Filter for rows where reviewReplies is absent. Combined with a low reviewRating, that is your unanswered-complaint list.

Does it return the full star distribution or just the average?

Both. companyOverallRating is the headline average, and starBreakdown gives each level from five stars to one with an absolute count and a percentage share.

How many reviews can I collect per company?

Up to 1000 per company per run, set with maxReviewsPerCompany. The cap is applied at the source, so you are never charged for reviews beyond what you asked for.

How many companies can I put in one run?

Up to 200 company URLs. If you paste more, only the first 200 are collected, so split larger lists across runs or across saved tasks.

Can I search for companies by name or category?

No. You give the Actor company review-page URLs, or bare domains as shorthand, and it returns those companies' reviews. There is no keyword search and no category browse, so build your company list first and feed it in.

Can I filter reviews to a date range?

Only to the fixed windows the source offers: Last 30 days, Last 3 months, Last 6 months, or Last 12 months. Arbitrary calendar start and end dates are not supported. For a narrower slice, pull the window that contains it and filter on reviewDate or dateOfExperience afterwards.

Are all reviews verified?

No, and that is useful signal. isVerifiedReview tells you which ones the source verified, and reviewerTotalReviews shows how active the reviewer is overall.

Does it return reviewer email addresses?

No. Reviews carry a display name and a country, but no personal contact details. Company-level contact fields are the business's own published details.

How much does it cost to scrape Trustpilot reviews?

You pay per review returned, and nothing at all for a company that returns no reviews. Because maxReviewsPerCompany is enforced at the source, the cap you set is also the ceiling on what a run can cost. Current rates are on the Store card.

Collecting publicly available information is generally lawful in most jurisdictions, though what you then do with it is governed by privacy and copyright law where you operate. Apify's write-up on the legality of web scraping is a good starting point. This Actor returns no reviewer contact details, and it is not legal advice: check your own obligations.

What do I do if I get no results?

Check the error rows first. A company URL that returns nothing produces a row with result_type: "error" and a plain-language error_message explaining why, so start there. The usual causes are a URL that no longer exists on the source site, a company with no reviews yet, or a datePosted window that excludes everything. Widen the window or drop it entirely and re-run.

🌐 About Alpha OSINT

This Actor is part of Alpha OSINT, toolset of financial and operations data sources and APIs. For support or requests for this actor, please start a ticket directly on our support page.

Last Updated: 2026.08.10