# TrustRadius Reviews Scraper — Ratings, Pros, Cons & Dates (`bovi/trustradius-reviews`) Actor

Scrape TrustRadius B2B software reviews: star rating, full review text, pros, cons, reviewer role, company size, and ISO date. Resilient structural parser; residential access handles the protected target. Only populated reviews are billed — pay per review.

- **URL**: https://apify.com/bovi/trustradius-reviews.md
- **Developed by:** [Vitalii Bondarev](https://apify.com/bovi) (community)
- **Categories:** Marketing, Business
- **Stats:** 5 total users, 4 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.73 / 1,000 reviews

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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## TrustRadius Reviews Scraper

**Pay-per-review: $2.00/1K reviews. Reviewer role + company name included. No login, no proxy, no monthly fee.**

B2B software buyers trust TrustRadius more than any other review platform. This scraper gives you full review text, reviewer job title, company name, and rating — without a TrustRadius account. Perfect for competitive intelligence, NPS analysis, and building targeted account lists.

Scrape B2B software reviews from [TrustRadius](https://www.trustradius.com) — the leading platform for peer reviews of enterprise software.

**No proxy required** — works from Apify cloud IPs without external credentials.

### What you get

| Field | Description |
|---|---|
| `review_id` | Stable MD5 hash of review slug |
| `product` | Product name |
| `title` | Review headline |
| `rating` / `rating_max` | Numeric rating (scale shown in rating\_max) |
| `body` | Full use-cases / main review text |
| `pros` | List of listed pros |
| `cons` | List of listed cons |
| `author` | Reviewer display name |
| `reviewer_role` | Job title / role (e.g. "Director in Information Technology") |
| `reviewer_company` | Company name (e.g. "Devtics Technologies") |
| `date` | ISO 8601 review date |
| `url` | Direct link to review |
| `aggregate_rating` | Product overall rating |
| `aggregate_count` | Total number of ratings on the product |
| `parse_confidence` | 0–1 quality score per record |
| `warnings` | Machine-readable quality flags |

### Input

```json
{
  "productUrls": ["slack", "hubspot", "https://www.trustradius.com/products/salesforce/reviews"],
  "maxReviews": 25,
  "maxPages": 10
}
```

- **productUrls** — TrustRadius product slugs or full review URLs
- **maxReviews** — max reviews per product (0 = no limit)
- **maxPages** — max pages to fetch per product (~5 reviews/page)

### Pricing example

| Reviews scraped | Cost |
|---|---|
| 100 reviews | $0.20 |
| 500 reviews | $1.00 |
| 1,000 reviews | $2.00 |
| 10,000 reviews | $20.00 |

No proxy, no login, no monthly fee — pay only for results returned.

### Output sample

```json
{
  "review_id": "a3f8b1c2d4e5f6a7",
  "product": "Slack",
  "title": "Great for async teams, but noisy at scale",
  "rating": 8,
  "rating_max": 10,
  "body": "We use Slack across 5 departments. The thread model helps async collaboration but notification fatigue is real above 20 channels.",
  "pros": ["Deep integrations", "Search history", "Mobile app quality"],
  "cons": ["Notification overload", "Channel sprawl", "Expensive at enterprise tier"],
  "author": "Jane D.",
  "reviewer_role": "Director of Engineering",
  "reviewer_company": "Acme SaaS Inc.",
  "date": "2025-11-04",
  "url": "https://www.trustradius.com/reviews/slack-2025-11-04-1",
  "aggregate_rating": 8.4,
  "aggregate_count": 1247,
  "parse_confidence": 0.95,
  "warnings": []
}
```

### FAQ

**Do I need a TrustRadius account or login?** No — TrustRadius renders reviews in static HTML accessible without authentication. No account, no cookie, no proxy needed.

**What export formats are available?** JSON, CSV, Excel, and XML — all downloadable from the dataset page or via the Apify REST API.

**Can I track competitor reviews on a schedule?** Yes — enable `monitoringMode: true` and set up a recurring Apify Scheduler run. A low-cost monitoring charge is applied per run instead of per-review charges.

**What if the actor returns 0 reviews for a product?** Confirm the product slug exists on trustradius.com (e.g. `slack`, `salesforce`, `hubspot`). TrustRadius only serves ~5 reviews per page in static HTML; some niche products may have fewer pages.

### Why this beats the competition

| | This actor | Other review scrapers |
|---|---|---|
| reviewer\_role (job title) | Yes | Rarely |
| reviewer\_company | Yes | No |
| pros / cons structured | Yes (lists) | Raw text only |
| No login required | Yes | Often requires cookie |
| Rating scale preserved | Yes (rating\_max) | Normalized only |
| parse\_confidence | Yes | No |
| Price | $2.00/1K | $3-5/1K |

Every record ships a `parse_confidence` score (0.0–1.0). Below 0.7 is a machine-readable signal that the page structure has drifted — your data pipeline can filter automatically.

### Use with AI agents (MCP)

This scraper is callable as a **tool by AI agents** (Claude Desktop, Cursor, VS Code, n8n, LangGraph, CrewAI, or any MCP-compatible client) via Apify's hosted Model Context Protocol server. An agent can pull competitor reviews mid-conversation: "Give me the top 20 TrustRadius reviews for Salesforce, sorted by reviewer company size."

Point your MCP client at this tool:

```json
{
  "mcpServers": {
    "apify": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp.apify.com/?tools=bovi/trustradius-reviews",
        "--header",
        "Authorization: Bearer <YOUR_APIFY_TOKEN>"
      ]
    }
  }
}
```

### Monitoring mode — recurring brand tracking

Set `monitoringMode: true` and schedule a weekly run to track competitor review velocity and rating changes. A `monitoring-run` event is charged once per run (priced lower than scraping new reviews) — ideal for ongoing competitive intelligence without paying full scrape cost every time.

```json
{
  "productUrls": ["salesforce", "hubspot"],
  "maxReviews": 10,
  "monitoringMode": true
}
```

Schedule via Apify Scheduler (or n8n/Zapier) for hands-off brand tracking.

### Notes

- TrustRadius renders ~5 reviews per page in static HTML; the rest are loaded client-side. This actor harvests the server-side rendered batch. Static HTML = fast, stable, cheap — no JS execution needed.
- `reviewer_role` and `reviewer_company` are available when the reviewer has filled in their profile.
- **Not affiliated with TrustRadius.**

### Integrations

Built for B2B competitive-intelligence and sales teams mining enterprise software reviews with reviewer role and company data — the JSON/dataset output drops into the tools you already run, no glue code:

- **n8n / Make / Zapier** — trigger a run or pipe every new dataset item into 500+ apps (Google Sheets, Airtable, Slack, HubSpot, your database) with no code: [n8n](https://docs.apify.com/platform/integrations/n8n), [Make](https://docs.apify.com/platform/integrations/make), [Zapier](https://docs.apify.com/platform/integrations/zapier).
- **Webhooks** — fire your own endpoint the moment a run finishes, to push results straight into your pipeline ([docs](https://docs.apify.com/platform/integrations/webhooks)).
- **MCP server** — expose this actor as a tool to Claude, Cursor, or any [MCP client](https://mcp.apify.com) so an AI agent can pull this data mid-conversation ([guide](https://blog.apify.com/how-to-use-mcp/)).
- **API & SDKs** — fetch the dataset as JSON, CSV, or Excel through the Apify REST API or the Python / JS SDKs.

See all [Apify integrations](https://apify.com/integrations).

# Actor input Schema

## `productUrls` (type: `array`):

List of TrustRadius product slugs or full review URLs to scrape. Accepted formats: slug only (e.g. 'slack', 'salesforce', 'hubspot') or full URL (https://www.trustradius.com/products/slack/reviews). At least one required. Multiple products = one run.

## `maxReviews` (type: `integer`):

Maximum reviews to collect per product. Each review = one PPE charge ($2/1K). 0 = no limit (~5 reviews per page). Default: 25.

## `maxPages` (type: `integer`):

Maximum number of pages to fetch per product. Each page yields ~5 reviews. 0 = no page limit. Default 10.

## `monitoringMode` (type: `boolean`):

Enable when scheduling this actor for recurring brand/competitor tracking. Adds a monitoring-run charge per run — priced lower than scraping new reviews. Useful for weekly/daily reputation alerts.

## `proxyConfiguration` (type: `object`):

TrustRadius requires a residential proxy for reliable access — bare datacenter/home IPs are blocked. Residential is selected by default; the buyer's Apify account is billed for proxy usage.

## Actor input object example

```json
{
  "productUrls": [
    "slack",
    "salesforce"
  ],
  "maxReviews": 25,
  "maxPages": 10,
  "monitoringMode": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset containing Trustradius Reviews records (product, title, author, reviewer\_role, reviewer\_company, rating, rating\_max, aggregate\_rating, aggregate\_count, url, date, parse\_confidence).

# 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 = {
    "productUrls": [
        "slack",
        "salesforce"
    ],
    "maxReviews": 25,
    "maxPages": 10,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("bovi/trustradius-reviews").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 = {
    "productUrls": [
        "slack",
        "salesforce",
    ],
    "maxReviews": 25,
    "maxPages": 10,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("bovi/trustradius-reviews").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 '{
  "productUrls": [
    "slack",
    "salesforce"
  ],
  "maxReviews": 25,
  "maxPages": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call bovi/trustradius-reviews --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=bovi/trustradius-reviews",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/FbzDxF17AX69JglQl/builds/5VeSn2uIKnHd7ZaNu/openapi.json
