# Trustpilot Reviews Scraper

> Trustpilot reviews scraper: get stars, text, country and company replies for any domain. Filter by stars and date. No login, from $0.52 per 1,000 reviews.

URL: https://cliqtomedia.com/actors/trustpilot-reviews-scraper/

Category: Reviews & app stores · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/trustpilot-reviews-scraper?fpr=cliqto

Add a company domain and get its public Trustpilot reviews in a table. Each row has the stars, text, date and the company reply. No Trustpilot account is needed.

## How to use it: 3 steps

1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `apify.com` in Companies. Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

## What it does

Trustpilot Reviews Scraper gets public Trustpilot reviews for the companies you list: star rating, title, text, date, country, verification and the company's reply, one review per row. You pay $0.52 per 1,000 reviews on the free plan (less on paid plans), plus $0.007 per run and $0.001 per company lookup. No login and no Trustpilot account are needed.

- It reads only what any visitor can see. It does not log in.
- It follows Trustpilot's own redirect, so `booking.com` gives the reviews of `www.booking.com`.
- A domain that is not on Trustpilot gets the status `not_found` in the run summary. It is not mixed up with "0 reviews" or with an error.
- Filters: star ratings, languages, date range, verified only, only reviews with a company reply. Order: newest first or "most relevant".
- `onlyNew` skips reviews you already got in earlier runs. Skipped reviews are free.

### Good for

- Track new reviews of your company or your competitors every day.
- Collect 1- and 2-star reviews with company replies for support quality checks.
- Feed review text into sentiment analysis, topic search or an AI assistant.

### Not a good fit

- Reviewer contact data. The Actor does not collect emails, phones, reviewer IDs or profile photos.
- Every review of a very big company. Trustpilot shows visitors only 10 pages per filter. See Limits.
- Private Trustpilot Business data (invitations, private notes, analytics).

## Price

Pay per event. Apify bills you, not us.

| What you pay for | Price | When |
|---|---|---|
| Start fee | $0.007 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. |
| Company lookup | $0.001 | Charged once per company for the first Trustpilot lookup (when Trustpilot answers, including a company that is not on Trustpilot) and once more for each further language in your filter that the company has reviews in. Not charged for invalid input or source errors. |
| Review saved | $0.00052 (from $0.00027 on paid Apify plans) | Charged once for each review saved to the Dataset. Reviews skipped by onlyNew are free. |

- One result: about $0.0075.
- 1,000 results: about $0.53.
- Every day 100 results, for 30 days: about $1.77 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/trustpilot-reviews-scraper?fpr=cliqto

## Questions

### Why do I get fewer reviews than Trustpilot shows?

Trustpilot shows visitors 200 reviews per filter. The tool reads several filtered views and merges them. This gets many more reviews, but not always every one.

### Is this the official Trustpilot API?

No. The official API needs a Trustpilot Business account. This tool reads the public review pages.

### What if a company is not on Trustpilot?

The run summary marks it as not found. It is not mixed up with zero reviews.

### Does it collect reviewer emails?

No. It does not collect emails, phones, reviewer IDs or profile photos.

### Do I need a Trustpilot account or login?

No. The Actor reads only public review pages, like a visitor.

### Is it legal to scrape Trustpilot?

The Actor collects only public review data and no contact data. Trustpilot's terms limit automated access, and data protection laws (for example GDPR) apply to names in reviews. Check with your lawyer how you may use the data.

### How fresh is the data?

Each row is read live from Trustpilot during the run. `fetchedAt` shows when.

### I used another Trustpilot scraper. What are the field names here?

Common names elsewhere → names here: `authorName` → `reviewerName`, `publishedDate` → `date`, `isVerified` → `verified`, `replyMessage` → `replyText`, `replyPublishedDate` → `replyDate`, `reviewUrl` → `url`, `companyDomain` → `company`, `authorReviewCount` → `reviewerReviewCount`. This Actor does not return reviewer IDs or profile photos.

## Data fields

- `company` (string): Domain Trustpilot lists the company under, e.g. apify.com or www.booking.com.
- `companyName` (string): Company name on Trustpilot.
- `companyTrustScore` (number): Company TrustScore (1–5) at the time of the run.
- `companyTotalReviews` (integer): All reviews on the company profile, every language.
- `reviewId` (string): Trustpilot review ID.
- `rating` (integer): Star rating 1–5.
- `title` (string): Review title.
- `text` (string): Review text.
- `language` (string): Review language code, e.g. en.
- `date` (string): When the review was published (ISO 8601, UTC).
- `experienceDate` (string): Date of experience the reviewer gave (ISO 8601).
- `updatedDate` (string): When the reviewer last edited the review; null if never.
- `country` (string): Reviewer's country code as shown on Trustpilot, e.g. US.
- `reviewerName` (string): Reviewer's public display name on Trustpilot. No contact details are collected.
- `reviewerReviewCount` (integer): How many reviews this reviewer has written on Trustpilot.
- `verified` (boolean): Trustpilot's verified flag for the review.
- `verificationLevel` (string): Trustpilot verification level, e.g. verified, invited, not-verified.
- `reviewSource` (string): How the review was collected, as Trustpilot reports it (e.g. Organic, BasicLink, AFSv2).
- `likes` (integer): Useful votes on the review.
- `replyText` (string): The company's public reply; null when there is none.
- `replyDate` (string): When the company replied (ISO 8601); null when there is no reply.
- `url` (string): Review page on Trustpilot.
- `companyUrl` (string): Company review page on Trustpilot.
- `source` (string): Always trustpilot.
- `fetchedAt` (string): When the Actor read this review (ISO 8601, UTC).

## Input settings

- `companyDomains` (array, required): Company website domains as Trustpilot lists them (apify.com, www.booking.com), company website URLs or Trustpilot review page URLs (https://www.trustpilot.com/review/apify.com). One per line, up to 50. The Actor follows Trustpilot's own redirect when it lists the company with or without www.
- `maxReviews` (integer): Stop after this many reviews for each company (1–1000). Trustpilot shows visitors 10 pages (200 reviews) per filter; above that the Actor reads each star rating separately, so more reviews are reachable. For big companies you may still get fewer than this: RUN_SUMMARY then says PUBLIC_PAGE_LIMIT.
- `stars` (array): Only reviews with these star ratings. Leave empty for all ratings.
- `languages` (array): Two-letter language codes (en, de, fr, es, it, nl, da, sv, pl, pt…), read in this order, up to 10. Leave empty or write "all" for every language. Note: trustpilot.com shows only English reviews unless you ask for other languages, so empty here means all of them.
- `sort` (string): Newest first, or Trustpilot's "most relevant" order.
- `dateRange` (string): Only reviews published in this period, as Trustpilot filters them.
- `verifiedOnly` (boolean): Only reviews Trustpilot marks as verified.
- `withRepliesOnly` (boolean): Only reviews the company answered.
- `onlyNew` (boolean): Skip reviews this Actor already delivered to you in earlier runs with the same companies and filters, and stop paging once it reaches them. Skipped reviews are not charged. The list of delivered review IDs is kept in your key-value store named trustpilot-reviews-seen.

## Step by step on Apify

1. Open the Input tab.
2. Keep the prefilled `companyDomains`: `apify.com`, or write your own domains, one per line.
3. Keep `maxReviews` at 20 (the prefill) or set up to 1000.
4. Click Start.
5. Open the Output tab. The Reviews view shows one row per review.

## Use cases

| Task | Input | Key fields | Next step |
|---|---|---|---|
| Reputation monitoring | your domain + `onlyNew` | `rating`, `text`, `date`, `url` | Schedule daily, send new rows to Slack or a sheet. |
| Competitor research | 3–10 competitor domains | `rating`, `country`, `language`, `companyTrustScore` | Compare ratings by country and month. |
| Support quality | `stars` 1,2 + `withRepliesOnly` | `replyText`, `replyDate`, `date` | Measure reply time and tone. |
| AI and sentiment | any domains | `title`, `text`, `language`, `rating` | Send text to an LLM or a sentiment model. |

## Tips

- Turn on the only-new option for daily checks; skipped reviews are free.
- Filter by 1 and 2 stars to find the main complaints fast.
- For big companies, raise the run timeout so more reviews fit.

## Limits



- Visitor page limit. Trustpilot shows visitors 10 pages (200 reviews) for one filter. Above 200 the Actor reads several views (by stars, language, order and other filters) and merges them without duplicates. This reaches many more reviews, but not always all. Example: apify.com, 1,000 asked → 322 of 800 saved. The run summary then shows reason `PUBLIC_PAGE_LIMIT` for that company.
- Speed. The Actor makes at most about one request per second to be polite to Trustpilot. Measured: 200 reviews in about 30 seconds; 3 companies × 1,000 reviews in about 8 minutes.
- Timeout. The default run timeout is 300 seconds. That fits about one company × 1,000 reviews or several companies × 200. For bigger lists, raise Timeout in the run options. If time runs out, you keep all saved rows and the run ends with `PARTIAL` + `TIME_LIMIT`.
- Languages. With empty `languages`, you get all languages. trustpilot.com by itself shows only English, so the Actor asks for all languages for you.
- Public data only. No login, no private Business data, no reviewer contact data.

## Sample result

```json
{
  "company": "apify.com",
  "companyName": "Apify",
  "companyTrustScore": 4.8,
  "companyTotalReviews": 801,
  "reviewId": "6ad030d671f65d706717492a",
  "rating": 5,
  "title": "Great tool for…",
  "text": "We use it every day to…",
  "language": "en",
  "date": "2026-10-15T03:48:06.000Z",
  "experienceDate": "2026-09-15T00:00:00.000Z",
  "updatedDate": null,
  "country": "NZ",
  "reviewerName": "Reviewer One",
  "reviewerReviewCount": 1,
  "verified": false,
  "verificationLevel": "invited",
  "reviewSource": "BasicLink",
  "likes": 0,
  "replyText": null,
  "replyDate": null,
  "url": "https://www.trustpilot.com/reviews/6ad030d671f65d706717492a",
  "companyUrl": "https://www.trustpilot.com/review/apify.com",
  "source": "trustpilot",
  "fetchedAt": "2026-10-15T04:17:01.060Z"
}
```

## Use it from code

Actor ID: `cliqtomedia/trustpilot-reviews-scraper`

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/trustpilot-reviews-scraper").call(run_input={
    "companyDomains": [
        "apify.com"
    ],
    "maxReviews": 20
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

```bash
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~trustpilot-reviews-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"companyDomains": ["apify.com"], "maxReviews": 20}'
```

```python
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/trustpilot-reviews-scraper")
result = tool.invoke({"run_input": {"companyDomains": ["apify.com"], "maxReviews": 20}})
print(result)
```

run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/

## Use cases with this tool

- [Know what your competitors do](https://cliqtomedia.com/actors/use-cases/competitor-monitoring/): See what your competitors launch, hire, change and advertise. Every week, without opening their sites.
- [Read new reviews, yours and theirs](https://cliqtomedia.com/actors/use-cases/review-monitoring/): Collect reviews from the App Store, Google Play and more. Find what people love and what they hate.

## Similar tools

- [Apple App Store Reviews Scraper](https://cliqtomedia.com/actors/apple-app-store-reviews-scraper/)
- [Google Play Reviews Scraper](https://cliqtomedia.com/actors/google-play-reviews-scraper/)
- [TrustRadius Reviews Scraper](https://cliqtomedia.com/actors/trustradius-reviews-scraper/)
- [App Store Search, Rank & App Details — No Login](https://cliqtomedia.com/actors/app-store-apps-search/)
- [Google Play Search, Rank & App Details — No Login](https://cliqtomedia.com/actors/google-play-apps-search/)
- [OpenTable Reviews & Restaurants Scraper, No Login](https://cliqtomedia.com/actors/opentable-reviews-scraper/)
