Capterra Reviews Scraper - Ratings, Pros & Cons, Reviewer Role avatar

Capterra Reviews Scraper - Ratings, Pros & Cons, Reviewer Role

Pricing

$0.99 / 1,000 reviews

Go to Apify Store
Capterra Reviews Scraper - Ratings, Pros & Cons, Reviewer Role

Capterra Reviews Scraper - Ratings, Pros & Cons, Reviewer Role

Pricing

$0.99 / 1,000 reviews

Rating

0.0

(0)

Developer

Lantern Lab

Lantern Lab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Capterra Reviews Scraper

Give it Capterra product URLs and get the public software reviews back: star rating and the four sub-ratings, title, pros, cons and overall comments, with the reviewer's job title, industry and company size (never the name). Each product also gets its Capterra rating, published review count, vendor and category. No Capterra login, no cookies of yours.

Price: $0.99 per 1,000 reviews. Product rows, input status rows and the run summary are free, and so is a URL that finds nothing.

Quick example

Open the product on capterra.com and copy its link from the address bar: https://www.capterra.com/p/<id>/<name>/, with or without reviews/ at the end.

Input:

{
"productUrls": [
"https://www.capterra.com/p/135003/Slack/reviews/",
"https://www.capterra.com/p/156777/CRM-Pro/"
],
"maxReviewsPerProduct": 25
}

One review row (recordType: "review", shortened):

{
"recordType": "review",
"reviewId": "7209002",
"productName": "Slack",
"rating": 5,
"easeOfUseRating": 5,
"customerServiceRating": 5,
"functionalityRating": 5,
"valueForMoneyRating": 5,
"likelihoodToRecommend": 10,
"title": "Slack: Essential for remote work productivity...and employee engagement",
"pros": "Since 2020, I've worked remotely as a business developer across two digital services companies. ...",
"cons": "Honestly, not much. The only time I get frustrated with it is when I need to invite partners ...",
"text": "Slack has been part of the corporate toolkits of the companies I've worked for since 2017 ...",
"reviewerJobTitle": "Director, Business Development",
"reviewerIndustry": "Information Technology and Services",
"companySize": "201-500 employees",
"timeUsedProduct": "2+ years",
"incentive": "none",
"publishedAt": "2026-09-03",
"partial": false,
"collectedAt": "2026-10-24T09:12:40.118Z"
}

One product row (recordType: "product", free):

{
"recordType": "product",
"productId": "135003",
"name": "Slack",
"vendor": "Slack",
"category": "Team Communication Software",
"overallRating": 4.7,
"reviewCount": 24230,
"url": "https://www.capterra.com/p/135003/Slack/",
"reviewsReturned": 25,
"signInRequiredForMore": true,
"partial": false,
"statusText": "Collected 25 review(s) of 24230 published."
}

Limits

  • Popular products: the first 25 reviews only. On many popular products (Slack, Salesforce, Discord, ...) Capterra shows a visitor who is not signed in the first page of reviews only - page 2 and later open a sign-in prompt. This Actor does not sign in, so for those products it collects that first page (25 reviews, Capterra's "Most Helpful" order). If you ask for more, the product row says so: partial: true, partialReason: "sign_in_required". Products without that prompt are paged through up to maxReviewsPerProduct.
  • One order: Most Helpful. Capterra's other orders and its filters also sit behind the sign-in prompt.
  • Public data only. The reviewer's name, initials and photo are never collected, even where Capterra shows them.
  • capterra.com (the US/English site) only.
  • Runs a real browser on Apify Proxy residential IPs, because Capterra refuses plain HTTP clients and datacenter IPs.
  • No scheduling or monitoring built in; use Apify schedules.

What it does

  • Accepts product URLs (https://www.capterra.com/p/<id>/<product>/, with or without reviews/). There is no keyword search: find the product on Capterra and copy its link.
  • Reads both page layouts Capterra serves today (large and small products) into one output shape.
  • Deduplicates across the whole run: a product given twice (any slug, with or without reviews/) is collected once, and a review is written and charged once.
  • Keeps Capterra's review ID (reviewId), the review date (publishedAt, a day) and our collection time (collectedAt) as separate fields.
  • Says what happened to every input and product. A product with no reviews, a URL that is not a product, and a product that was cut short are different records and are never confused: a cut-short product is marked partial: true with the reason.
  • Caps itself: maxUpstreamRequests is a hard ceiling on page requests to Capterra for the whole run, derived from your input when you leave it empty, so a run is never unbounded.

Input

FieldDefaultMeaning
productUrls—Capterra product URLs, one per line. At least one.
maxReviewsPerProduct100Upper bound on reviews per product. 0 collects only the product profile. Max 10,000.
sortBymost_helpfulCapterra's default order; the only one available without sign-in.
maxUpstreamRequestsderivedHard ceiling on page requests to Capterra for the whole run.
proxyConfigurationApify Proxy, residential, USThe proxy the browser goes through.

Output

One row per review, recordType: "review", charged:

FieldMeaning
reviewIdCapterra's own review ID (the dedupe key).
productId, productName, productSlugThe product reviewed.
ratingOverall rating, 1-5 stars.
easeOfUseRating, customerServiceRating, functionalityRating, valueForMoneyRatingSub-ratings, 1-5; null when the reviewer skipped one.
likelihoodToRecommend0-10.
title, pros, cons, textThe headline, the Pros and Cons answers, and the overall comments.
reasonsForChoosing, reasonsForSwitchingWhen the reviewer answered them.
reviewerJobTitle, reviewerIndustry, companySize, timeUsedProductThe reviewer's profile, as published. Never the name. Small products' pages do not publish a company size.
incentiveWhether the reviewer was offered something for the review (none, Nominal gift, ...), as Capterra labels it.
vendorResponseThe vendor's public reply, when there is one.
publishedAtThe review date Capterra shows (YYYY-MM-DD).
partial, partialReasonAlways false / null on a review row: the row exists because the review was collected.
collectedAtOur own collection time.

One row per product, recordType: "product", free: name, vendor (when Capterra names one), category, overallRating, reviewCount, url, then reviewsAvailable / reviewsRequested / reviewsReturned / duplicatesSkipped, signInRequiredForMore, and partial / partialReason (sign_in_required, upstream_request_cap, charge_limit_reached, blocked, upstream_error, not_collected) with statusText.

One row per product URL, recordType: "input_status", free: outcome is found, not_found (no such product), invalid_url (not a Capterra product URL) or partial, with productIds and statusText.

The last row is recordType: "RUN_SUMMARY" — what the inputs resolved to, products and reviews collected and charged, products with no review, partial products by reason, requests sent, and why collection stopped. The same object is also in the run's key-value store under RUN_SUMMARY.