TrustRadius $1π° Reviews, Products, Category & Compare Scraper
Pricing
from $1.00 / 1,000 results
TrustRadius $1π° Reviews, Products, Category & Compare Scraper
π° $1 per 1,000 results TrustRadius all-in-one scraper β product, reviews, category & compare URLs in one actor. Flat per-review rows with full Q&A sections, reviewer firmographics & LinkedIn URL, dual 0β10/0β5 ratings, awards & featureList. Sitemap-driven bulk mode. Pure HTTP, no browser.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
28
Total users
3
Monthly active users
4 hours ago
Last modified
Categories
Share
TrustRadius Reviews, Products, Categories & Compare Scraper
How it works

π§ NEW: AI Pain-Point Analysis β reviews β product intel
Flip on painPointAnalysis and the scraper doesn't just return reviews β it tells you what to fix and build next. After scraping, one AI pass per product clusters every complaint into ranked themes and surfaces the features users keep asking for. One painPointAnalysis row per product, straight from real TrustRadius reviews. Paid plans only, billed per product analyzed.
All-in-one TrustRadius.com scraper β paste any mix of URL kinds in the same input list and the actor auto-classifies each one:
| Input | Row(s) emitted |
|---|---|
Any product URL β /products/{slug}, /products/{slug}/reviews, or /products/{slug}/reviews/all | 1 product row + N review rows β all three variants are treated identically. The actor fetches both the product page (rich SoftwareApplication JSON-LD with name/description/awards/featureList/vendor + 5 sample reviews with reviewer.profilePicUrl + linkedInUrl nested) and /reviews/all (paginated full review thread, 10 per page). Review count capped by maxReviewsPerProduct. |
Category URL β /categories/{slug} (e.g. collaboration, crm) | N category-product rows β one per product in the category (rowType: "category-product"). Each row carries a nested categoryAggregate with description, total count, FAQs (from JSON-LD FAQPage), and related categories. |
Compare URL β /compare-products/{slug-a}-vs-{slug-b} | 1 compare row: side-by-side products with ratings, vendor info, logos |
Sitemap URL β /sitemap_index.xml | Bulk discovery β expands the sitemap into product URLs and scrapes the first maxProductsFromSitemap (default 50). |
Bare product slugs (slack) also work. JSON + CSV.
One product URL β product overview + every review. You don't need to paste both
/reviewsand/reviews/allβ any product-shaped URL gives you the full coverage. The three variants (/products/slack,/products/slack/reviews,/products/slack/reviews/all) all dedupe to the same canonical URL internally.
Reviews are flat with the aggregate denormalized into every row. Every dataset row from a reviews URL is a single review. The thread-level aggregate (rating, awards, features, vendor info, total reviews, pages scraped) lives under each row's
productAggregatefield β duplicated on every review row from the same URL, but that keeps each row self-contained and makes billing trivial: one row = one paidoutputrecordevent.
Pure HTTP. No Puppeteer, no Playwright, no headless Chromium. TrustRadius is open (no Cloudflare) so we use a simple impit Firefox fingerprint at concurrency 5.
TrustRadius's anti-bot posture is far gentler than Capterra's or G2's β there's no Cloudflare gate, no challenge JS, no IP banning at our request volume. We confirmed this with parallel probes across 9 URL kinds: every one returned 200 on the first impit attempt through Apify Residential US. robots.txt is permissive β /products/, /categories/, /compare-products/, and /sitemap_index.xml are all crawl-allowed.
So no warmup, no session rotation, no cookie jar. We fan out parallel requests through a sliding-window scheduler (default concurrency 5).
Data architecture
- Product / reviews / category pages use Next.js App-router with
__next_f.pushRSC streaming + comprehensive JSON-LD. We extract structured data from both sources:SoftwareApplicationJSON-LD shipsaggregateRating,featureList,award,offers, plus 5 fully-structuredreview[]objects (Person author + Rating + reviewBody + datePublished).- The RSC stream carries
reviewer:{firstName, lastName, jobTitle, companyName, companySize, department, user:{pictureUrl, linkedInProfileUrl, linkedInIsVerified}}blocks per visible review β same brace-balanced extractor we proved on Capterra.
/reviews/all?page=Nis the paginated review thread: 10 visible<article>cards per page, JSON-LD only carriesaggregateRatinghere. We DOM-walk articles for title + date + rating + section headings (Q&A) and align them with RSC reviewer blocks for firmographics./categories/{slug}hasItemListJSON-LD (product cards),FAQPageJSON-LD (editorial Q&A), andBreadcrumbListβ three structured sources we merge into one row per product./compare-products/{a}-vs-{b}is HTML-only (6 MB of editorial content; no embedded data JSON). We extract product info per slug via visible card walking β best-effort in v1.
Input
| Field | Type | Required | Notes |
|---|---|---|---|
startUrls | string[] | yes | Any mix of product / reviews / category / compare / sitemap URLs (or bare product slugs). Auto-classified. |
maxItems | integer | no | Safety cap on total dataset rows, not URLs. A reviews URL with 100 reviews emits 100 review rows; a category URL with 50 products emits 50 rows. Default 1000. Free-tier users are capped at 100. |
maxReviewsPerProduct | integer | no | Max individual review rows emitted per reviews URL. TrustRadius paginates 10 per page; Slack has ~10,000 reviews across ~1,000 pages β cap aggressively. Default 100, 0 = no limit. |
maxProductsPerCategory | integer | no | Max category-product rows emitted per category URL. Default 50, 0 = no limit. |
maxProductsFromSitemap | integer | no | When you paste a sitemap URL, the actor discovers product URLs and scrapes the first N. Default 50. |
normalizeRatings | boolean | no | Add averageNormalized (0β5 scale) alongside native 0β10. Default true. |
includeReviewSections | boolean | no | Include full per-question sections[] on each review row. Adds 1β3 KB per row but captures TrustRadius's unique Q&A structure. Default true. |
maxConcurrency | integer | no | Parallel HTTP requests. TrustRadius is open β concurrency up to 10 is safe. Default 5. |
maxRequestRetries | integer | no | Per-URL retry budget on 5xx/network errors. Default 3. |
proxy | object | no | Apify Residential US recommended. |
Example input
{"startUrls": ["https://www.trustradius.com/products/slack","https://www.trustradius.com/categories/collaboration","https://www.trustradius.com/compare-products/slack-vs-microsoft-teams"],"maxItems": 100,"maxReviewsPerProduct": 30,"maxProductsPerCategory": 20,"normalizeRatings": true,"includeReviewSections": true,"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US" }}
That yields 52 rows on Slack: 1 product row (with 5 rich nested review snippets + LinkedIn URLs) + 30 flat review rows (paginated /reviews/all, with productAggregate nested) + 20 category-product rows + 1 compare. Use maxItems / maxReviewsPerProduct / maxProductsPerCategory to cap per-URL fan-out.
Output schema
Four row shapes, distinguished by the rowType field: product, review, category-product, compare.
rowType: "product"
{"rowType": "product","productUrl": "https://www.trustradius.com/products/slack/reviews","productSlug": "slack","name": "Slack","description": "Slack brings team communication and collaboration into one placeβ¦","applicationCategory": "BusinessApplication","categories": ["Collaboration"],"rating": {"average": 9,"averageNormalized": 4.5, // 0β5 scale for cross-platform consumers"count": 9979,"bestRating": 10,"worstRating": 1},"vendor": {"name": "Salesforce","url": "https://slack.com/β¦"},"offer": {"price": 0,"priceCurrency": "USD","offerUrl": null},"awards": [{ "title": "Buyer's Choice 2026", "year": "2026" }],"features": ["Task Management", "Gantt Charts", "Scheduling", /* +20 more */],"reviewSnippets": [ /* up to 5 fully-structured reviews from JSON-LD */ ],"breadcrumbs": [ /* ... */ ],"scrapedAt": "2026-05-12T17:36:00.000Z"}
rowType: "review" (one per individual review)
{"rowType": "review","reviewsUrl": "https://www.trustradius.com/products/slack/reviews/all","productSlug": "slack","productName": "Slack","reviewId": null, // TrustRadius doesn't surface stable IDs on /reviews/all"title": "Slack Review","reviewUrl": "https://www.trustradius.com/products/slack/reviews","rating": {"average": 10, // native 0β10"averageNormalized": 5, // 0β5 normalized"count": 1,"bestRating": 10,"worstRating": 1},"text": "So we use it for daily collaboration, just notificationsβ¦","pros": null,"cons": null,"publishedAt": "2026-05-12T01:30:29.251Z", // ISO 8601 β cleaner than Capterra's "May 31, 2024"// Reviewer firmographics β RICHER than Capterra (companyName + department + LinkedIn URL)"reviewer": {"name": "Sapna Nayak","firstName": "Sapna","lastName": "Nayak","jobTitle": "Senior Salesforce Administrator","jobType": "Administrator","companyName": "Side", // β Capterra doesn't surface company NAME"companySize": "51-200 employees","department": "Other", // β richer than Capterra"industry": null,"profileUrl": null,"profilePicUrl": "https://media.trustradius.com/profile-photos/β¦jpeg", // when available"linkedInUrl": "https://www.linkedin.com/in/sapna-nayak-β¦", // β UNIQUE to TrustRadius"linkedInVerified": null},// Per-question Q&A β UNIQUE to TrustRadius"sections": [{"title": "Use Cases and Deployment Scope","responses": [{"question": "Use Cases and Deployment Scope","answer": "So we use it for daily collaboration, just notifications for different thingsβ¦"}]},{"title": "Pros","responses": [{ "question": "Pros", "answer": "Real-time messaging | File sharing | Channel organization" }]},{"title": "Cons","responses": [{ "question": "Cons", "answer": "Search can be slow for large workspaces" }]}/* + more sections per review */],"incentive": null, // "Incentivized" when TrustRadius flags it"source": "TrustRadius","trusted": null,// Thread-level aggregate (same on every review row from the same reviews URL)"productAggregate": {"rating": { "average": 9, "averageNormalized": 4.5, "count": 9980, "bestRating": 10, "worstRating": 1 },"awards": [{ "title": "Buyer's Choice 2026", "year": "2026" }],"features": ["Task Management", "Gantt Charts", /* +21 */],"vendor": { "name": "Salesforce", "url": "https://slack.com/β¦" },"totalReviewsEmitted": 30,"pagesScraped": 3},"scrapedAt": "2026-05-12T17:36:00.000Z"}
rowType: "category-product" (one per product in the category)
{"rowType": "category-product","categoryUrl": "https://www.trustradius.com/categories/collaboration","categorySlug": "collaboration","productSlug": "slack","productUrl": "https://www.trustradius.com/products/slack","name": "Slack","description": "Slack brings team communication into one placeβ¦","rating": { "average": 9, "averageNormalized": 4.5, "count": null, "bestRating": 10, "worstRating": 1 },"vendor": { "name": "Salesforce", "url": "β¦" },"logoUrl": "https://media.trustradius.com/product-logos/β¦png","sponsored": null,"categoryAggregate": {"categoryUrl": "https://www.trustradius.com/categories/collaboration","categorySlug": "collaboration","categoryName": "Collaboration Tools","description": "Collaboration tools help teams work togetherβ¦","totalProductsOnPage": 25,"faqs": [ // β TrustRadius ships editorial Q&A as JSON-LD FAQPage{ "question": "What is collaboration software?", "answer": "β¦" },{ "question": "How much does it cost?", "answer": "β¦" }],"relatedCategories": [{ "name": "Web Conferencing", "url": "β¦" }, /* +29 */]},"scrapedAt": "2026-05-12T17:36:00.000Z"}
rowType: "compare"
{"rowType": "compare","compareUrl": "https://www.trustradius.com/compare-products/slack-vs-microsoft-teams","title": "Microsoft Teams vs Slack","products": [{"productSlug": "slack","productUrl": "https://www.trustradius.com/products/slack","name": "Slack","rating": { "average": 9, "averageNormalized": 4.5, /* β¦ */ },"vendor": null,"logoUrl": "https://media.trustradius.com/product-logos/β¦png"},{"productSlug": "microsoft-teams","productUrl": "https://www.trustradius.com/products/microsoft-teams","name": "Microsoft Teams","rating": { "average": 8.6, "averageNormalized": 4.3, /* β¦ */ },/* β¦ */}],"scrapedAt": "2026-05-12T17:36:00.000Z"}
Compare row is best-effort in v1.0. TrustRadius compare pages are HTML-rendered editorial articles (no embedded JSON data block). We DOM-walk the visible cards per slug β good for slug + name + rating + logo, but vendor info may be partial. For full data, scrape each product separately.
Pricing
Pay-per-event. Reviews and category-products are billed flat β each is its own dataset row, one outputrecord event per row. Cost = rows Γ outputrecord-price. No nested-array arithmetic.
| Event | When | Suggested rate |
|---|---|---|
outputrecord | Once per dataset row pushed β product, review, category-product, compare. Thread/category aggregate is nested INSIDE each flat row. | configured on the actor page |
additional-data | Once per nested item inside a product / compare row only (features, awards, review snippets, breadcrumb categories, compared products). Reviews and category-products are never billed here. | $0.75 per 1,000 items ($0.00075 each) |
What makes this richer than the competition
We surveyed all 16 TrustRadius actors on Apify Store (May 2026). The top specialist (zen-studio/trustradius-review-scraper, 25 users) covers reviews only. Same gap we filled for Capterra.
| Capability | Competitor actors | This actor |
|---|---|---|
| Product + reviews + category + compare in one actor | β (reviews-only is the norm) | β |
| Sitemap-driven bulk discovery | β | β |
| URL auto-classification (paste any mix) | β | β |
Per-question sections[] Q&A captured on every review | partial (1 actor mentions Q&A, partial coverage) | β |
| Reviewer LinkedIn URL | β | β |
| Reviewer company name (not just size) | β | β |
| Reviewer department | β | β |
| Dual 0β10 native + 0β5 normalized ratings | β | β |
| Capterra-style awards (Buyer's Choice etc.) | β | β |
Category FAQ extraction (from JSON-LD FAQPage) | β | β |
| Flat-per-review billing (1 review = 1 paid row) | mixed | β |
Notes & limitations
- TrustRadius is open β no Cloudflare, no warmup needed. Apify Residential US works first-attempt at 100%.
- Reviews pagination auto-walks
/reviews/all?page=Nuntil empty ormaxReviewsPerProducthits. Slack has ~10,000 reviews across ~1,000 pages β set caps appropriately. - Compare extraction is best-effort in v1.0 β TrustRadius compare pages ship as HTML-only editorial. v1.1 will follow per-product fetches for richer compare rows (same pattern that worked on Capterra).
reviewer.profilePicUrl/linkedInUrldata-source notes. These fields are surfaced on the product page (/products/{slug}/reviews) β the 5 reviews shipped via JSON-LD + RSC carry full reviewer.user blocks (profile pic + LinkedIn URL + verification flag). On the paginated/products/{slug}/reviews/all?page=N, TrustRadius ships a slimmer payload that does not include these fields β reviewer firmographics (name, company, jobTitle, department, companySize) are still 100%-filled, but profile pic + LinkedIn URLs come back null. If you need full reviewer enrichment, prefer the/reviewsURL over/reviews/all.- Sitemap mode is conservative β only walks
maxProductsFromSitemapURLs to avoid runaway costs. Buyers wanting full-catalog scrapes should run multiple sitemap calls withmaxItemsset high.
Support
Issues, feature requests, or custom output shapes? Open a ticket on the actor's Apify page or message the maintainer.