TrustRadius Reviews Scraper avatar

TrustRadius Reviews Scraper

Pricing

from $5.00 / 1,000 review scrapeds

Go to Apify Store
TrustRadius Reviews Scraper

TrustRadius Reviews Scraper

Scrape TrustRadius B2B software reviews: ratings (0–10), pros/cons, firmographics, feature scores. Product URL, slug, or search. HTTP-first with Residential + Firefox fallback. MCP-ready.

Pricing

from $5.00 / 1,000 review scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Share

For SaaS competitive analysts, product marketers, and MCP agents who need structured B2B review evidence. This Actor extracts public TrustRadius software reviews into flat dataset rows with native TrustRadius scores (zero to ten), titles, bodies, best-effort pros/cons, and reviewer firmographics when the public page exposes them. Provide a product URL, product slug, or search query — then download JSON/CSV/Excel or pull rows via the Apify API.

Focused standalone workflow

This Actor is a focused standalone TrustRadius workflow. An analyst pastes a Slack product reviews URL, keeps Apify Residential US on, caps maxReviewsPerProduct at a small number for a smoke test, then exports review rows into a competitor matrix. For multi-platform review aggregation across G2/Capterra/TrustRadius after the TrustRadius shortlist, use software-reviews-all-in-one-scraper. For Capterra-only depth, use capterra-reviews-scraper.

Best fit

Choose this Actor when you already know a TrustRadius product URL or slug and need native TrustRadius scores plus public review text for competitive research or agent pipelines.

It works well for bounded product deep-dives and search-to-reviews discovery. Pair it with software-reviews-all-in-one-scraper when the next step is a cross-platform corpus rather than TrustRadius alone.

Practical scenario

A competitive analyst pastes the Slack TrustRadius reviews URL, sets maxReviewsPerProduct to 10, and leaves Residential US as the default proxy. The run returns review rows with rating, reviewTitle, reviewBody, and optional firmographics. Next they filter starRating to high-score bands and feed themes into a battlecard.

Best results

  • Prefer exact product URLs or known slugs over broad search when you need depth on one product.
  • Keep Apify Residential US enabled; bare IPs commonly hit Cloudflare challenges.
  • TrustRadius scores use a native zero-to-ten scale — use ratingOutOf5 only as a convenience helper for classic five-star style filters.
  • Start with maxReviewsPerProduct: 1 to confirm the slug, then raise the cap for production batches.
  • When Cloudflare challenges every path and zero rows are saved, the Actor records UPSTREAM_FAILED with an honest upstream outcome instead of empty billed rows.

Quick start input

{
"startUrls": [
{ "url": "https://www.trustradius.com/products/slack/reviews" }
],
"maxReviewsPerProduct": 10,
"sortReviewsBy": "newest",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

Slug mode:

{
"productSlugs": ["notion"],
"maxReviewsPerProduct": 5
}

Search mode:

{
"searchQuery": "Slack",
"maxProductsPerSearch": 1,
"maxReviewsPerProduct": 3,
"includeReviews": true
}

Input reference

FieldTypeWhat it controls
startUrlsarrayTrustRadius product/reviews URLs (normalized to /products/{slug}/reviews).
productSlugsarraySlugs without a full URL (for example slack, notion).
searchQuerystringProduct name search, then scrape matched products.
maxReviewsPerProductintegerCap per product (default 50, prefill 1).
maxProductsPerSearchintegerCap on search matches (default 5).
includeReviewsbooleanSearch mode: scrape reviews (default) vs product cards only.
includeProductSummarybooleanEmit a product card when reviews are off.
sortReviewsByenumnewest or helpful.
starRatingarrayMarket-style 1–5★ bands mapped onto TrustRadius 0–10.
companySizearraysmall / medium / large when firmographics exist.
proxyConfigurationobjectPrefer Apify Residential US; Unblocker is used automatically as a separate recovery path when Residential yields zero reviews.

Output data

FieldDescription
recordTypereview or product
productName / productSlug / productUrlProduct context
ratingNative TrustRadius score (zero to ten)
ratingOutOf5Derived half-scale helper
reviewTitle / reviewBodyPublic review text
pros / consWhen the HTML card exposes them
reviewername, title, company, size, industry when public
reviewDate / reviewUrlProvenance
scrapedAtISO 8601 timestamp

Example review row:

{
"platform": "trustradius",
"recordType": "review",
"productName": "Slack",
"productSlug": "slack",
"productUrl": "https://www.trustradius.com/products/slack/reviews",
"rating": 9,
"ratingOutOf5": 4.5,
"reviewTitle": "Essential for remote collaboration",
"reviewBody": "Channels keep our distributed team organized...",
"pros": ["Fast search", "Integrations"],
"cons": ["Notification noise"],
"reviewer": {
"name": "Alex R.",
"title": "IT Manager",
"companySize": "201-1000",
"industry": "Software"
},
"reviewDate": "2025-11-02T00:00:00.000Z",
"scrapedAt": "2026-09-22T12:00:00.000Z"
}

You can download the dataset as JSON, HTML, CSV, or Excel.

Pricing

Pay per event + platform usage (isPPEPlatformUsagePaidByUser: true). The live Pricing tab is the current source of truth after deployment.

EventPriceWhen charged
apify-actor-start$0.00005Once per run (memory-scaled)
review-scraped (primary)$0.005Each review row saved
product-found$0.01Each product card when reviews are not scraped

Worked cost example for a Slack prefill-style run with one review: $0.00005 + $0.005 = $0.00505 in named PPE events, plus Residential/browser platform usage. Invalid inputs and truthful empty matches skip review-scraped charges; Cloudflare-challenged runs with zero rows likewise skip review events.

API example

curl "https://api.apify.com/v2/acts/khadinakbar~trustradius-reviews-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"startUrls": [{"url": "https://www.trustradius.com/products/slack/reviews"}],
"maxReviewsPerProduct": 10,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}'
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('khadinakbar/trustradius-reviews-scraper').call({
startUrls: [{ url: 'https://www.trustradius.com/products/slack/reviews' }],
maxReviewsPerProduct: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

MCP / AI agent

MCP tool name: apify--trustradius-reviews-scraper.

Scrape Slack TrustRadius public reviews with Residential US, return dataset rows, and note COMPLETE vs VALID_EMPTY vs UPSTREAM_FAILED.

Agent guidance: prefer startUrls / productSlugs over broad search; keep Residential US on; page via maxReviewsPerProduct; read OUTPUT/RUN_SUMMARY for outcome and charges. Partial runs keep successful rows and mark PARTIAL.

Outcomes

OutcomeMeaning
COMPLETETargets produced useful rows
PARTIALSome targets incomplete with warnings
VALID_EMPTYValid targets, no matching public reviews (or filters excluded all)
INVALID_INPUTNo usable TrustRadius targets
UPSTREAM_FAILEDCloudflare/CSR block with zero useful rows
CONFIG_ERRORRequired proxy/config unavailable

Every run writes OUTPUT and RUN_SUMMARY with itemsPushed and chargedEventCounts.

Scope and recovery guidance

Provide Residential US for Cloudflare-protected TrustRadius pages. Start with known URLs or slugs, validate one product, then scale caps. When CSR review loading stays empty after retries (including a separate Unblocker recovery attempt), the Actor records UPSTREAM_FAILED so operators can adjust proxy settings while keeping the contract honest. Invalid hosts resolve as INVALID_INPUT with zero review charges.

Builder's note

I built this Actor after TrustRadius stopped embedding review[] arrays inside SoftwareApplication JSON-LD and moved public reviews behind a client-rendered loader. HTTP-first still wins when the shell is warm, but the reliable path is Playwright Firefox waiting out ReviewsAll_loading, scrolling for lazy cards, and capturing review JSON from network responses. In my testing, Slack/Notion/Asana clear Residential consistently, while some high-traffic CRM/video products remain Cloudflare-sensitive — so the runtime records an honest block when aggregate review counts exist but zero cards extract.

Differentiation

Dedicated TrustRadius depth with native zero-to-ten scores, MCP-ready schemas, PPE + usage pass-through, Residential-first transport plus separate Unblocker recovery, and outcome contracts that refuse hollow soft-success.

Use only for lawful purposes and respect TrustRadius terms of service and applicable privacy law. Public pages only — no login bypass. Reviewer names and firmographics may appear when TrustRadius shows them publicly; callers need a lawful basis for any personal data use. TrustRadius is a trademark of its owner. This independent Actor is not affiliated with, associated with, or endorsed by TrustRadius.