# Trustpilot Reviews Scraper: Ratings, Replies and Insights

> Trustpilot Reviews Scraper is an Apify actor (API) by CheapAPI Labs. Reviews with rating, text, date and company replies, filtered by stars, date or language. It costs $0.22 per 1,000 reviews on the Apify Free plan and $0.11 on Gold, plus $0.0035 per company with reviews, billed through your Apify account with no API key. Compared with the most used Trustpilot actor (about 2,800 users): 1,000 reviews from 5 companies on the Free plan costs $0.2375 here and $0.80 there (Apify Store listing prices, checked September 2026). Apify platform usage is billed on top here.

- Page: https://cheapapilabs.com/actors/trustpilot-reviews-scraper/
- Run on Apify: https://apify.com/cheapapi/trustpilot-reviews-scraper
- Publisher: CheapAPI Labs (Apify username cheapapi)
- Main price: $0.22 per 1,000 reviews on Free, $0.11 on Gold
- Our prices updated: 2026-10-30

## Prices per event (USD)

| Event | Free | Bronze | Silver | Gold |
|---|---:|---:|---:|---:|
| Review | $0.00022 | $0.00022 | $0.00022 | $0.00011 |
| Company with reviews | $0.0035 | $0.0035 | $0.0035 | $0.0035 |
| Keyword search | $0.003 | $0.003 | $0.003 | $0.003 |
| Company listed | $0.0003 | $0.0003 | $0.0003 | $0.0002 |
| Page checked without enough results | $0.0022 | $0.0022 | $0.0022 | $0.0022 |

Platinum and Diamond pay the Gold price. Apify platform usage: billed separately by Apify.

## Call it from code

```bash
curl -X POST "https://api.apify.com/v2/acts/cheapapi~trustpilot-reviews-scraper/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
  -d '{"companies":["www.airbnb.com"],"maxReviewsPerCompany":100,"sortBy":"recency","processingSpeed":"auto"}'
```

## Example output row

```json
{
  "id": "3f9f139b9c4370ce",
  "input": "abetter.bid",
  "searchKeyword": null,
  "companyDomain": "abetter.bid",
  "companyName": "A Better Bid",
  "companyTrustpilotUrl": "https://www.trustpilot.com/review/abetter.bid",
  "companyWebsite": "https://abetter.bid",
  "companyLocation": "1201 N. Orange Street  Suite #7258 Wilmington 19801 US",
  "companyOverallRating": 2.9,
  "companyReviewsCount": 124,
  "reviewUrl": "https://www.trustpilot.com/reviews/6a99bf97d9fe5fdcca9099e8",
  "reviewId": "6a99bf97d9fe5fdcca9099e8",
  "rating": 5,
  "title": "Smooth transitions.",
  "text": "Smooth, seamless process and transactions. Answer all concerns and questions. Great business. ",
  "language": "en",
  "publishedAt": "2026-09-03T20:42:31.000Z",
  "verified": false,
  "images": [],
  "position": 1,
  "hasCompanyReply": true,
  "companyReplyText": "Thank you so much for your positive feedback!",
  "companyReplyDate": "2026-09-09T14:46:32.000Z",
  "companyReplies": [
    {
      "title": "Reply from A Better Bid",
      "text": "Thank you so much for your positive feedback!",
      "date": "2026-09-09T14:46:32.000Z"
    }
  ],
  "scrapedAt": "2026-09-28T10:07:40.832Z"
}
```

## Fields

One row per review (examples from a real run):

| Field | Type | Example |
|---|---|---|
| `id` | string | `3f9f139b9c4370ce` (stable: same review → same ID in every run) |
| `input` | string | `abetter.bid` |
| `searchKeyword` | string \| null | `car insurance` (keyword search only, otherwise `null`) |
| `companyDomain` | string | `abetter.bid` |
| `companyName` | string | `A Better Bid` |
| `companyTrustpilotUrl` | string | `https://www.trustpilot.com/review/abetter.bid` |
| `companyWebsite` | string \| null | `https://abetter.bid` (website from keyword search; otherwise derived from the Trustpilot domain) |
| `companyLocation` | string \| null | `1201 N. Orange Street Suite #7258 Wilmington 19801 US` |
| `companyOverallRating` | number | `2.9` (TrustScore) |
| `companyReviewsCount` | integer | `124` |
| `reviewId` | string | `6a99bf97d9fe5fdcca9099e8` |
| `reviewUrl` | string | `https://www.trustpilot.com/reviews/6a99bf97d9fe5fdcca9099e8` |
| `rating` | number | `5` |
| `title` | string | `Smooth transitions.` |
| `text` | string | `Smooth, seamless process and transactions…` |
| `language` | string | `en` |
| `publishedAt` | string (ISO 8601) | `2026-09-03T20:42:31.000Z` |
| `verified` | boolean | `false` |
| `images` | string[] | `[]` |
| `position` | integer | `1` (position in the sort order it was collected in) |
| `reviewerName` | string | *(only with **Include reviewer details**)* `I WIN` |
| `reviewerProfileUrl` | string | *(only with **Include reviewer details**)* `https://www.trustpilot.com/users/6a99bf8e186db6423b36b225` |
| `reviewerAvatarUrl` | string \| null | *(only with **Include reviewer details**)* `https://user-images.trustpilot.com/…/73x73.png` |
| `reviewerCountry` | string \| null | *(only with **Include reviewer details**)* `US` |
| `reviewerReviewsCount` | integer \| null | *(only with **Include reviewer details**)* `1` (helps spot one off accounts) |
| `hasCompanyReply` | boolean | `true` |
| `companyReplyText` | string \| null | `Thank you so much for your positive feedback!` |
| `companyReplyDate` | string \| null | `2026-09-09T14:46:32.000Z` |
| `companyReplies` | object[] | `[{ "title", "text", "date" }]` |
| `scrapedAt` | string (ISO 8601) | `2026-09-28T10:07:40.832Z` |

`companyReplyText`, `companyReplyDate` and `companyReplies` are left out when **Include company replies** is off. The five `reviewer…` fields are included only when **Include reviewer details** is on (off by default).

In **Only list companies** mode each row is a company: `id`, `keyword`, `rank`, `companyName`, `companyDomain`, `companyWebsite`, `companyTrustpilotUrl`, `rating`, `reviewsCount`, `scrapedAt`.

The key value store also holds **INSIGHTS** (free, per company: average rating, 1 to 5 star distribution, monthly rating trend, verified share, reply share, languages, top words in positive and negative reviews) and **RUN_SUMMARY** (counts, skipped inputs and why, errors, whether the budget stopped the run).

## Compared with alternatives

Typical run: **1,000 reviews from 5 companies**. Prices from public Apify Store listings, checked September 2026 (start fees included; **optional add on events excluded**, e.g. the most used Actor also offers company metadata at $0.01 per company and AI insights at $0.02 to $0.05 per company). The other Actors include platform usage in their price; for this Actor Apify platform usage is billed separately by Apify (at the default 256 MB a small run typically uses about $0.001 to $0.003), so add about $0.001 to $0.003 to its row.

| Actor | Free plan | Gold plan | Start fee | Platform usage | Reviews per company |
|---|---|---|---|---|---|
| Most used Trustpilot Actor (~2,800 users) | $0.80 | $0.525 | ✓ ($0.025 to $0.05) | Included | No cap (as advertised) |
| Second most used (~2,300 users) | $0.58 | $0.305 ($0.205 Platinum, $0.145 Diamond) | ✓ ($0.005) | Included | Not stated |
| Cheapest flat rate Actor ($0.25 / 1,000) | $0.255 | $0.255 | ✓ ($0.005) | Included | More than 200 (as advertised) |
| "Unlimited reviews" Actor | $2.00 ($0.40 on Bronze) | $0.30 | ✓ ($0.0005) | Included | Unlimited (as advertised) |
| **This Actor** | **$0.2375** | **$0.1275** | ✗ | Billed separately (~$0.001 to $0.003) | **400 (fixed maximum)** |

What the table means:

- **For up to 400 reviews per company, this Actor is the lowest priced option in the table** on every plan for this run (on Platinum and Diamond our Gold price of $0.1275 applies), also after adding its platform usage, and adds free INSIGHTS, keyword search, company lists and an **Only new reviews** mode that does not charge repeats.
- **Need more than 400 reviews of one company?** This Actor cannot deliver them. Actors advertising "no cap" / "unlimited" (we have not verified these claims) may go deeper, but the same 1,000 reviews cost $0.80 to $2.00 on the Free plan ($0.30 to $0.525 on Gold). Pick one of them for one off full history exports of large companies.
- Prices for other run sizes differ; start fees weigh more on small runs (this Actor has none).

## Not included

- **More than 400 reviews per company**, a fixed limit of the data source (see above). Workaround: schedule runs with **Only new reviews** to keep a complete history from today on.
- **Private business account data** (invitation statistics, reviewer emails, TrustBox widgets), only public data is collected.
- **Review sites other than Trustpilot** (G2, Capterra, Yelp), not covered. For **Google Maps reviews and places**, use [Google Maps Scraper Plus](https://cheapapilabs.com/actors/google-maps-scraper-plus/).
- **Sentiment scores per review**, export the text to your own model; INSIGHTS gives rating distribution and top words for free.
- **Company rankings in Google search**, use [Google SERP Scraper](https://cheapapilabs.com/actors/google-serp-scraper/); for how brands appear in AI answers, use [AI Search Visibility Tracker](https://cheapapilabs.com/actors/ai-search-visibility-tracker/).

## Limits

- At most 200 reviews per company by default and 400 with **Get more than 200 reviews**, a fixed limit of the data source; the full history of very large companies (thousands of reviews) is not available in one run.
- With **Get more than 200 reviews**, the number of extra reviews depends on how much the newest and most relevant orders overlap, so 400 distinct reviews are not guaranteed.
- Star, verified, language and date filters are applied to the reviews read, not by Trustpilot, so filtered runs can return fewer rows.
- Keyword search returns up to 140 companies per keyword; generic keywords can match unrelated companies.
- Reviewer country, photos and company replies are present only when Trustpilot shows them.
- Companies without a Trustpilot page return no reviews; they are not charged as companies or reviews, but the pages read cost "Page checked" fees (see Pricing).

## FAQ

**Is there a limit on the Apify Free plan, and is platform usage included?**
On the Free plan you can use up to $0.25 of this Actor's results per calendar month, enough to try it (Apify pays developers nothing for Free plan usage while our data costs are real). Runs that reach the allowance stop cleanly and keep everything collected so far; the allowance resets on the 1st of the month; paid Apify plans have no limit. Apify platform usage is not included: it is billed separately by Apify (at the default 256 MB a small run typically uses about $0.001 to $0.003).

**Is it legal to scrape Trustpilot reviews?**
The Actor collects only publicly visible reviews, the same data anyone sees without logging in. Reviewer names, countries and profile links are left out unless you turn on **Include reviewer details**; review texts can still contain personal data, so make sure your use complies with GDPR, CCPA and Trustpilot's terms, e.g. analyze in aggregate and don't contact reviewers. If unsure, ask a lawyer.

**How fresh is the data?**
Every run collects reviews from Trustpilot at run time; `scrapedAt` shows when.

**Why did I get fewer reviews than I asked for?**
The company has fewer reviews, your star/verified/language/date filters removed some (filters work on the reviews read, see Advanced options), **Only new reviews** skipped ones delivered before, or your maximum cost per run was reached. RUN_SUMMARY lists skipped companies with the reason.

**How many reviews can I get per company?**
Up to 200 by default and up to 400 with **Get more than 200 reviews** (newest and most relevant reviews combined, duplicates removed). 400 is a fixed limit of the data source; for complete histories of very large companies see Compared with alternatives. To build a company's history over time, schedule the Actor with **Only new reviews**.

**Which company identifier do I use?**
The part after `/review/` in the Trustpilot link, for Airbnb that is `www.airbnb.com`; for many companies it is the domain without `www`. Pasting the whole Trustpilot link always works.

**How do I control my budget, and why was I charged for "Page checked"?**
Set **Maximum cost per run**; the Actor never charges beyond it, and requests rejected before any data was read are free. Each page of 20 reviews (or 10 search results) the Actor reads costs money, even when nothing is delivered. When a company delivered too few reviews to pay for the pages read, filters matched nothing, **Only new reviews** found nothing new, the company has fewer reviews than your maximum, the extra request of **Get more than 200 reviews** added nothing, a keyword found no company, or a request got no answer, the difference is charged as "Page checked" events at $0.0022 each, never more than one per page read. RUN_SUMMARY shows `pagesCheckedCharged`. To keep it low, set **Max reviews per company** close to what you expect to get (e.g. 20 for daily monitoring).

**Can I monitor companies automatically?**
Yes, create a schedule with **Only new reviews** on. Each run delivers (and charges as reviews) only reviews that earlier runs have not delivered; a company with nothing new costs a small "Page checked" fee ($0.0022 with **Max reviews per company** 20); add a webhook or a Make/Zapier scenario for alerts.

**Which export formats are available?**
JSON, JSONL, CSV, Excel, XML and HTML from the Output tab or the API, plus Google Sheets through the integration.

**Do I need a Trustpilot account, API key or proxies?**
No. Enter companies and click Start.

**Why does a run take a few minutes?**
Reviews are collected fresh for every run. Fast mode usually takes 1 to 3 minutes; economy mode (automatic for runs of 2,000+ reviews) can take up to ~45 minutes at the same event prices.

**Where do I get help?**
Open an issue on the Actor's **Issues** tab in Apify Console with your run ID.
