# TrustPilot Reviews Scraper | 🔥 Fast Browserless (`mof1re/trustpilot-scraper-fast-browserlessapif`) Actor

Browserless Trustpilot scraper delivering rich review and business data — full text, ratings, verification, dates, replies, consumer profiles, and more. Filter by star rating, date, or keyword. Clean, structured JSON, ready for analysis. No browser overhead, no rate-limits.

- **URL**: https://apify.com/mof1re/trustpilot-scraper-fast-browserlessapif.md
- **Developed by:** [Vladimir Efimenco](https://apify.com/mof1re) (community)
- **Categories:** SEO tools, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.60 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## TrustPilot Reviews Scraper | 🔥 Fast Browserless

Browserless Trustpilot review scraper built on the site's internal Next.js data API, not a headless browser. Returns full review content alongside complete business profile data, not just star counts.

### ⚡ Why this one

- **Full dataset, not a summary** — every review comes with complete text, verification status, consumer profile info, and business replies where present. Business profile data (categories, trust score, contact info, verification badges) is included alongside the reviews.
- **Flexible filtering** — filter by star rating (multi-select), date range, verified-only reviewers, keyword search, and business-reply presence, matching what's available on the live site.
- **Batch by design** — scrape multiple companies in a single run, with a configurable result cap per company or unlimited collection.
- **Proxies included** — residential proxy pool is built in. You don't need to bring your own.
- **Fast** — no browser, no rendering wait. Pure HTTP calls to the same internal API the trustpilot.com frontend uses.

### 📋 Example output

```json
[
  {
    "company_data": {
      "company_id": "695bee8c1d2da56aaca58c5d",
      "company_name": "Soro",
      "company_identify": "trysoro.com",
      "trustpilot_url": "https://www.trustpilot.com/review/trysoro.com",
      "reviews_total": 700,
      "ratings_total": 714,
      "reviews_year": 706,
      "company_score": 4.8,
      "company_url": "https://trysoro.com",
      "facebook_url": null,
      "company_img": "https://s3-eu-west-1.amazonaws.com/tpd/logos/695bee8c1d2da56aaca58c5d/0x0.png",
      "company_promotion": null,
      "company_stars": 5,
      "company_categories": [
        {
          "category_name": "SEO Service",
          "rank": null,
          "is_primary": true
        }
      ],
      "breadcrumbs_list": [
        "Business Services",
        "Sales & Marketing",
        "SEO Service"
      ],
      "is_claimed": true,
      "is_closed": false,
      "is_temp_closed": false,
      "locations_count": 0,
      "is_collecting_reviews": false,
      "verifications": {
        "verifiedByGoogle": false,
        "verifiedPaymentMethod": false,
        "verifiedUserIdentity": false
      },
      "consumer_alert": null,
      "consumer_alerts": [],
      "is_merged": false,
      "contact_data": {
        "email": "info@trysoro.com",
        "address": "",
        "city": "",
        "country": "US",
        "phone": "",
        "zipCode": ""
      },
      "activity": {
        "isUsingPaidFeatures": false,
        "hasSubscription": false,
        "claimedDate": "2026-01-15T23:23:23.000Z",
        "isClaimed": true,
        "previouslyClaimed": true,
        "replyBehavior": {
          "averageDaysToReply": 1.5,
          "lastReplyToNegativeReview": "2026-06-30 15:32:14 UTC",
          "negativeReviewsWithRepliesCount": 8,
          "replyPercentage": 36.36363636363637,
          "totalNegativeReviewsCount": 22
        },
        "verification": {
          "verifiedByGoogle": false,
          "verifiedPaymentMethod": false,
          "verifiedUserIdentity": false
        },
        "hasBusinessUnitMergeHistory": false,
        "isUsingAIResponses": false,
        "hasRecentlyInvitedUsers": false
      },
      "company_description": "Soro helps your business show up when customers search on Google and ChatGPT. You don't need to know anything about SEO or spend hours writing blog posts - we do it all for you automatically. Every day, Soro writes a new article that answers those questions in your voice and publishes it directly to your website. We built Soro because most small businesses know they should be blogging, but either don't have time or can't afford expensive agencies. Set it up once, and let Soro handle everything while you focus on running your business.",
      "company_description_plain": "Soro helps your business show up when customers search on Google and ChatGPT. You don't need to know anything about SEO or spend hours writing blog posts - we do it all for you automatically. Every day, Soro writes a new article that answers those questions in your voice and publishes it directly to your website. We built Soro because most small businesses know they should be blogging, but either don't have time or can't afford expensive agencies. Set it up once, and let Soro handle everything while you focus on running your business.",
      "company_reviews_statistics": {
        "hasMultipleLanguages": true,
        "reviewLanguages": [
          {
            "isoCode": "all",
            "reviewCount": 700,
            "displayName": "all"
          },
          {
            "isoCode": "de",
            "reviewCount": 16,
            "displayName": "Deutsch"
          },
          {
            "isoCode": "el",
            "reviewCount": 1,
            "displayName": "Ελληνικά"
          },
          {
            "isoCode": "en",
            "reviewCount": 616,
            "displayName": "English"
          },
          {
            "isoCode": "es",
            "reviewCount": 21,
            "displayName": "español"
          },
          {
            "isoCode": "fr",
            "reviewCount": 11,
            "displayName": "français"
          },
          {
            "isoCode": "hu",
            "reviewCount": 1,
            "displayName": "magyar"
          },
          {
            "isoCode": "it",
            "reviewCount": 5,
            "displayName": "italiano"
          },
          {
            "isoCode": "lt",
            "reviewCount": 1,
            "displayName": "lietuvių"
          },
          {
            "isoCode": "nl",
            "reviewCount": 9,
            "displayName": "Nederlands"
          },
          {
            "isoCode": "pt",
            "reviewCount": 8,
            "displayName": "português"
          },
          {
            "isoCode": "ro",
            "reviewCount": 5,
            "displayName": "română"
          },
          {
            "isoCode": "sv",
            "reviewCount": 2,
            "displayName": "svenska"
          },
          {
            "isoCode": "tr",
            "reviewCount": 3,
            "displayName": "Türkçe"
          },
          {
            "isoCode": "zh",
            "reviewCount": 1,
            "displayName": "中文"
          }
        ],
        "ratings": {
          "total": 714,
          "one": 19,
          "two": 4,
          "three": 7,
          "four": 17,
          "five": 667
        }
      },
      "reviews_ai_summary": null
    },
    "review_page": 1,
    "review_id": "6a4c01ede6247f348e3b0ce2",
    "review_url": "https://www.trustpilot.com/reviews/6a4c01ede6247f348e3b0ce2",
    "filtered": false,
    "is_pending": false,
    "review_title": "The set up is very easy",
    "review_text": "The set up is very easy.  I see that the blogs you write do not need my editing, they seem to be very well writed already.",
    "rating": 5,
    "likes_count": 0,
    "is_verified": false,
    "review_publish_date": "2026-07-06T21:28:45.000Z",
    "review_update_date": null,
    "review_source": "BasicLink",
    "review_verification_source": "invitation",
    "review_verification_level": "invited",
    "consumer_name": "Michael Logozzo",
    "consumer_profile_url": "https://www.trustpilot.com/users/6a4c01cb0a188f591c9c43dc",
    "consumer_avatar": null,
    "consumer_reviews_count": 1,
    "consumer_same_domain_reviews_count": 1,
    "consumer_country": "US",
    "consumer_is_verified": false,
    "review_language": "en",
    "location": null,
    "company_reply_message": null,
    "company_reply_publish_date": null,
    "company_reply_update_date": null,
    "keyword_match": null
  },
  {
    "company_data": {
      "note": "Company data available in first row"
    },
    "review_page": 1,
    "review_id": "6a4bfdf5526c86282ca8d0b4",
    "review_url": "https://www.trustpilot.com/reviews/6a4bfdf5526c86282ca8d0b4",
    "filtered": false,
    "is_pending": false,
    "review_title": "So easy to set-up and so easy to use",
    "review_text": "So easy to set-up and so easy to use! The best part is you then leave it to do its magic!  ",
    "rating": 5,
    "likes_count": 0,
    "is_verified": false,
    "review_publish_date": "2026-07-06T21:11:49.000Z",
    "review_update_date": null,
    "review_source": "BasicLink",
    "review_verification_source": "invitation",
    "review_verification_level": "invited",
    "consumer_name": "Carl Goddard",
    "consumer_profile_url": "https://www.trustpilot.com/users/66d449c1d6a807276ec56157",
    "consumer_avatar": "https://user-images.trustpilot.com/66d449c1d6a807276ec56157/73x73.png",
    "consumer_reviews_count": 3,
    "consumer_same_domain_reviews_count": 1,
    "consumer_country": "GB",
    "consumer_is_verified": false,
    "review_language": "en",
    "location": null,
    "company_reply_message": null,
    "company_reply_publish_date": null,
    "company_reply_update_date": null,
    "keyword_match": null
  },
  {
    "company_data": {
      "note": "Company data available in first row"
    },
    "review_page": 1,
    "review_id": "6a4bf530b07750c6d47b3848",
    "review_url": "https://www.trustpilot.com/reviews/6a4bf530b07750c6d47b3848",
    "filtered": false,
    "is_pending": false,
    "review_title": "Easy to do and hoping for great results",
    "review_text": "Easy to do and hoping for great results ",
    "rating": 5,
    "likes_count": 0,
    "is_verified": false,
    "review_publish_date": "2026-07-06T20:34:24.000Z",
    "review_update_date": null,
    "review_source": "BasicLink",
    "review_verification_source": "invitation",
    "review_verification_level": "invited",
    "consumer_name": "Michael Kaspar",
    "consumer_profile_url": "https://www.trustpilot.com/users/6504cd70dd1f4000121f6faa",
    "consumer_avatar": null,
    "consumer_reviews_count": 5,
    "consumer_same_domain_reviews_count": 1,
    "consumer_country": "US",
    "consumer_is_verified": false,
    "review_language": "en",
    "location": null,
    "company_reply_message": null,
    "company_reply_publish_date": null,
    "company_reply_update_date": null,
    "keyword_match": null
  },
  {
    "company_data": {
      "note": "Company data available in first row"
    },
    "review_page": 1,
    "review_id": "6a47d31218c73a19150cbe8a",
    "review_url": "https://www.trustpilot.com/reviews/6a47d31218c73a19150cbe8a",
    "filtered": false,
    "is_pending": false,
    "review_title": "I spoke with them once",
    "review_text": "I spoke with them once.  Didn't agree to do anything but a free trial.  They charged my card $ 216., and there is no phone number to speak with them about it.  I will report fraud on the card.  Don't use these guys. ",
    "rating": 1,
    "likes_count": 0,
    "is_verified": false,
    "review_publish_date": "2026-07-03T17:19:46.000Z",
    "review_update_date": null,
    "review_source": "Organic",
    "review_verification_source": "invitation",
    "review_verification_level": "not-verified",
    "consumer_name": "Tom Kennedy",
    "consumer_profile_url": "https://www.trustpilot.com/users/67ae16d5d7c729089217b9ac",
    "consumer_avatar": null,
    "consumer_reviews_count": 1,
    "consumer_same_domain_reviews_count": 1,
    "consumer_country": "US",
    "consumer_is_verified": false,
    "review_language": "en",
    "location": null,
    "company_reply_message": null,
    "company_reply_publish_date": null,
    "company_reply_update_date": null,
    "keyword_match": null
  }
]
````

### 🧾 What you get, per review

- Review content — title, full text, rating, publish/update dates, language, likes count
- Verification — verification status, source, and verification level
- Consumer info — display name, profile URL, review count, country, verification status
- Business reply — reply message and dates, when the business responded

### 🏢 What you get, per company

- Identity — name, identifying slug, Trustpilot URL, website URL, logo
- Reputation — trust score, star rating, total reviews, reviews in the last 12 months
- Classification — category list with rank and primary flag, breadcrumb hierarchy
- Status — claimed/closed/temporarily closed, location count, review collection status
- Verification & alerts — verification badges, consumer alerts, merged-profile flag
- Contact & activity — contact info block, recent activity data, AI-generated review summary (where available)

```json
{
  "company_id": "695bee8c1d2da56aaca58c5d",
  "company_name": "Soro",
  "company_identify": "trysoro.com",
  "trustpilot_url": "https://www.trustpilot.com/review/trysoro.com",
  "reviews_total": 700,
  "ratings_total": 715,
  "reviews_year": 706,
  "company_score": 4.8,
  "company_url": "https://trysoro.com",
  "facebook_url": null,
  "company_img": "https://s3-eu-west-1.amazonaws.com/tpd/logos/695bee8c1d2da56aaca58c5d/0x0.png",
  "company_promotion": null,
  "company_stars": 5,
  "company_categories": [
    {
      "category_name": "SEO Service",
      "rank": null,
      "is_primary": true
    }
  ],
  "breadcrumbs_list": [
    "Business Services",
    "Sales & Marketing",
    "SEO Service"
  ],
  "is_claimed": true,
  "is_closed": false,
  "is_temp_closed": false,
  "locations_count": 0,
  "is_collecting_reviews": false,
  "verifications": {
    "verifiedByGoogle": false,
    "verifiedPaymentMethod": false,
    "verifiedUserIdentity": false
  },
  "consumer_alert": null,
  "consumer_alerts": [],
  "is_merged": false,
  "contact_data": {
    "email": "info@trysoro.com",
    "address": "",
    "city": "",
    "country": "US",
    "phone": "",
    "zipCode": ""
  },
  "activity": {
    "isUsingPaidFeatures": false,
    "hasSubscription": false,
    "claimedDate": "2026-01-15T23:23:23.000Z",
    "isClaimed": true,
    "previouslyClaimed": true,
    "replyBehavior": {
      "averageDaysToReply": 1.5,
      "lastReplyToNegativeReview": "2026-06-30 15:32:14 UTC",
      "negativeReviewsWithRepliesCount": 8,
      "replyPercentage": 36.36363636363637,
      "totalNegativeReviewsCount": 22
    },
    "verification": {
      "verifiedByGoogle": false,
      "verifiedPaymentMethod": false,
      "verifiedUserIdentity": false
    },
    "hasBusinessUnitMergeHistory": false,
    "isUsingAIResponses": false,
    "hasRecentlyInvitedUsers": false
  },
  "company_description": "Soro helps your business show up when customers search on Google and ChatGPT. You don't need to know anything about SEO or spend hours writing blog posts - we do it all for you automatically. Every day, Soro writes a new article that answers those questions in your voice and publishes it directly to your website. We built Soro because most small businesses know they should be blogging, but either don't have time or can't afford expensive agencies. Set it up once, and let Soro handle everything while you focus on running your business.",
  "company_description_plain": "Soro helps your business show up when customers search on Google and ChatGPT. You don't need to know anything about SEO or spend hours writing blog posts - we do it all for you automatically. Every day, Soro writes a new article that answers those questions in your voice and publishes it directly to your website. We built Soro because most small businesses know they should be blogging, but either don't have time or can't afford expensive agencies. Set it up once, and let Soro handle everything while you focus on running your business.",
  "company_reviews_statistics": {
    "hasMultipleLanguages": true,
    "reviewLanguages": [
      {
        "isoCode": "all",
        "reviewCount": 700,
        "displayName": "all"
      },
      {
        "isoCode": "de",
        "reviewCount": 16,
        "displayName": "Deutsch"
      },
      {
        "isoCode": "el",
        "reviewCount": 1,
        "displayName": "Ελληνικά"
      },
      {
        "isoCode": "en",
        "reviewCount": 616,
        "displayName": "English"
      },
      {
        "isoCode": "es",
        "reviewCount": 21,
        "displayName": "español"
      },
      {
        "isoCode": "fr",
        "reviewCount": 11,
        "displayName": "français"
      },
      {
        "isoCode": "hu",
        "reviewCount": 1,
        "displayName": "magyar"
      },
      {
        "isoCode": "it",
        "reviewCount": 5,
        "displayName": "italiano"
      },
      {
        "isoCode": "lt",
        "reviewCount": 1,
        "displayName": "lietuvių"
      },
      {
        "isoCode": "nl",
        "reviewCount": 9,
        "displayName": "Nederlands"
      },
      {
        "isoCode": "pt",
        "reviewCount": 8,
        "displayName": "português"
      },
      {
        "isoCode": "ro",
        "reviewCount": 5,
        "displayName": "română"
      },
      {
        "isoCode": "sv",
        "reviewCount": 2,
        "displayName": "svenska"
      },
      {
        "isoCode": "tr",
        "reviewCount": 3,
        "displayName": "Türkçe"
      },
      {
        "isoCode": "zh",
        "reviewCount": 1,
        "displayName": "中文"
      }
    ],
    "ratings": {
      "total": 715,
      "one": 19,
      "two": 4,
      "three": 7,
      "four": 17,
      "five": 668
    }
  },
  "reviews_ai_summary": null
}
```

> **Note:** to avoid repeating the same company data on every row, the full `company_data` object is only populated on the **first review** of each run. All subsequent rows carry a short placeholder note in that field instead.

### 📊 Data Fields

#### 📝 Review Details

| Field | Description |
|---|---|
| `review_id` | Trustpilot's internal review ID |
| `review_url` | Direct link to the review |
| `review_title` | Review headline |
| `review_text` | Full review body text |
| `rating` | Star rating (1–5) |
| `likes_count` | Number of likes on the review |
| `review_publish_date` | When the review was published |
| `review_update_date` | When the review was last updated |
| `review_language` | Language code of the review |
| `location` | Reviewer-reported location, if provided |
| `filtered` | Whether Trustpilot flagged the review as filtered |
| `is_pending` | Whether the review is pending moderation |

#### ✅ Verification

| Field | Description |
|---|---|
| `is_verified` | Whether the review is verified |
| `review_source` | Name of the review source |
| `review_verification_source` | How the review was verified |
| `review_verification_level` | Verification level/tier |

#### 👤 Consumer

| Field | Description |
|---|---|
| `consumer_name` | Reviewer's display name |
| `consumer_profile_url` | Link to reviewer's Trustpilot profile |
| `consumer_avatar` | Reviewer's avatar image URL |
| `consumer_reviews_count` | Total reviews written by this consumer |
| `consumer_same_domain_reviews_count` | Reviews this consumer left for the same business |
| `consumer_country` | Reviewer's country code |
| `consumer_is_verified` | Whether the consumer account is verified |

#### 💬 Business Reply

| Field | Description |
|---|---|
| `company_reply_message` | Business's reply text, if any |
| `company_reply_publish_date` | When the reply was published |
| `company_reply_update_date` | When the reply was last updated |

#### 🏢 Company Profile

| Field | Description |
|---|---|
| `company_name` | Business display name |
| `company_identify` | Trustpilot identifying slug |
| `trustpilot_url` | Link to the business's Trustpilot page |
| `company_url` | Business's own website |
| `company_img` | Business logo URL |
| `company_score` | Trust score |
| `company_stars` | Star rating |
| `reviews_total` | Total reviews matching current filters |
| `ratings_total` | Total number of ratings on the profile |
| `reviews_year` | Reviews in the last 12 months |
| `company_categories` | Category list with rank and primary flag |
| `breadcrumbs_list` | Category breadcrumb hierarchy |
| `company_description` / `company_description_plain` | Business description, formatted and plain text |
| `facebook_url` | Business Facebook link |
| `company_promotion` | Active promotion data, if any |
| `is_claimed` | Whether the business profile is claimed |
| `is_closed` / `is_temp_closed` | Business closure status |
| `locations_count` | Number of business locations |
| `is_collecting_reviews` | Whether the business is actively collecting reviews |
| `verifications` | Business verification data |
| `consumer_alert` / `consumer_alerts` | Active consumer alerts on the profile |
| `is_merged` | Whether this profile was merged with another |
| `contact_data` | Business contact information |
| `activity` | Recent business activity data |
| `company_reviews_statistics` | Review statistics breakdown |
| `reviews_ai_summary` | AI-generated summary of reviews, where available |

### 🔧 Input options

| Field | Description |
|---|---|
| `companies` | One or more Trustpilot business identifiers (e.g. `crowdo.net`) |
| `maxResults` | Max reviews to collect per company. Leave empty to collect all available |
| `stars` | Filter by star rating, multi-select (1–5) |
| `sort` | Sort order — most recent or most relevant |
| `verified` | Only include verified reviewers |
| `date` | Only include reviews from a given time range |
| `search` | Only include reviews containing a keyword |
| `replies` | Only include reviews with a business reply |

### 💳 Pricing

Pay-per-result. You're charged for reviews actually delivered, not for pages fetched or requests made.

### ⚠️ Notes

- Free-tier accounts are capped at a small sample size per run — upgrade to a paid Apify plan for full volume.
- Data reflects what's publicly listed on trustpilot.com at the time of the run; the source updates continuously.

# Actor input Schema

## `companies` (type: `array`):

One or more Trustpilot business identifiers (e.g. 'www.flashbay.com' or full company url 'https://www.trustpilot.com/review/www.flashbay.com'). Each is scraped in sequence.

## `maxResults` (type: `integer`):

Maximum number of reviews to collect per company. Leave empty to collect ALL available reviews for that company.

## `stars` (type: `array`):

Filter reviews by star rating. Select one or more. Leave empty to include all ratings.

## `sort` (type: `string`):

How reviews should be ordered.

## `verified` (type: `boolean`):

Only include reviews from verified reviewers.

## `replies` (type: `boolean`):

Only include reviews that received a reply from the business owner.

## `date` (type: `string`):

Only include reviews published within this time range. Leave empty for all time.

## `search` (type: `string`):

Only include reviews whose text contains this keyword.

## `matchKeyword` (type: `boolean`):

If enabled, all reviews are collected and each one gets a 'keyword\_match' flag (true/false) based on the Search keyword below, instead of excluding non-matching reviews. If disabled, keyword filtering is skipped entirely and the flag stays null.

## Actor input object example

```json
{
  "companies": [
    "www.flashbay.com"
  ],
  "maxResults": 100,
  "sort": "recency",
  "verified": false,
  "replies": false,
  "search": "",
  "matchKeyword": false
}
```

# Actor output Schema

## `jobAds` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "companies": [
        "www.flashbay.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("mof1re/trustpilot-scraper-fast-browserlessapif").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "companies": ["www.flashbay.com"] }

# Run the Actor and wait for it to finish
run = client.actor("mof1re/trustpilot-scraper-fast-browserlessapif").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "companies": [
    "www.flashbay.com"
  ]
}' |
apify call mof1re/trustpilot-scraper-fast-browserlessapif --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=mof1re/trustpilot-scraper-fast-browserlessapif",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TrustPilot Reviews Scraper | 🔥 Fast Browserless",
        "description": "Browserless Trustpilot scraper delivering rich review and business data — full text, ratings, verification, dates, replies, consumer profiles, and more. Filter by star rating, date, or keyword. Clean, structured JSON, ready for analysis. No browser overhead, no rate-limits.",
        "version": "0.1",
        "x-build-id": "Fu8Xwr9jrtqL9yG3s"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/mof1re~trustpilot-scraper-fast-browserlessapif/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-mof1re-trustpilot-scraper-fast-browserlessapif",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/mof1re~trustpilot-scraper-fast-browserlessapif/runs": {
            "post": {
                "operationId": "runs-sync-mof1re-trustpilot-scraper-fast-browserlessapif",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/mof1re~trustpilot-scraper-fast-browserlessapif/run-sync": {
            "post": {
                "operationId": "run-sync-mof1re-trustpilot-scraper-fast-browserlessapif",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "companies"
                ],
                "properties": {
                    "companies": {
                        "title": "Companies",
                        "type": "array",
                        "description": "One or more Trustpilot business identifiers (e.g. 'www.flashbay.com' or full company url 'https://www.trustpilot.com/review/www.flashbay.com'). Each is scraped in sequence.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "Max reviews per company",
                        "type": "integer",
                        "description": "Maximum number of reviews to collect per company. Leave empty to collect ALL available reviews for that company.",
                        "default": 100
                    },
                    "stars": {
                        "title": "⭐ Star rating",
                        "type": "array",
                        "description": "Filter reviews by star rating. Select one or more. Leave empty to include all ratings.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "4",
                                "5"
                            ],
                            "enumTitles": [
                                "⭐ 1 Star",
                                "⭐⭐ 2 Stars",
                                "⭐⭐⭐ 3 Stars",
                                "⭐⭐⭐⭐ 4 Stars",
                                "⭐⭐⭐⭐⭐ 5 Stars"
                            ]
                        }
                    },
                    "sort": {
                        "title": "🔀 Sort order",
                        "enum": [
                            "recency",
                            "relevance"
                        ],
                        "type": "string",
                        "description": "How reviews should be ordered.",
                        "default": "recency"
                    },
                    "verified": {
                        "title": "✅ Verified only",
                        "type": "boolean",
                        "description": "Only include reviews from verified reviewers.",
                        "default": false
                    },
                    "replies": {
                        "title": "💬 Business replied only",
                        "type": "boolean",
                        "description": "Only include reviews that received a reply from the business owner.",
                        "default": false
                    },
                    "date": {
                        "title": "📅 Date range",
                        "enum": [
                            "last30days",
                            "last3months",
                            "last6months",
                            "last12months"
                        ],
                        "type": "string",
                        "description": "Only include reviews published within this time range. Leave empty for all time."
                    },
                    "search": {
                        "title": "🔎 Search keyword",
                        "type": "string",
                        "description": "Only include reviews whose text contains this keyword.",
                        "default": ""
                    },
                    "matchKeyword": {
                        "title": "🎯 Flag keyword matches (don't filter)",
                        "type": "boolean",
                        "description": "If enabled, all reviews are collected and each one gets a 'keyword_match' flag (true/false) based on the Search keyword below, instead of excluding non-matching reviews. If disabled, keyword filtering is skipped entirely and the flag stays null.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
