Capterra Reviews Scraper - Ratings, Pros & Cons, Reviewer Role
Pricing
$0.99 / 1,000 reviews
Capterra Reviews Scraper - Ratings, Pros & Cons, Reviewer Role
Pricing
$0.99 / 1,000 reviews
Rating
0.0
(0)
Developer
Lantern Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
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 tomaxReviewsPerProduct. - 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 withoutreviews/). 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: truewith the reason. - Caps itself:
maxUpstreamRequestsis 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
| Field | Default | Meaning |
|---|---|---|
productUrls | — | Capterra product URLs, one per line. At least one. |
maxReviewsPerProduct | 100 | Upper bound on reviews per product. 0 collects only the product profile. Max 10,000. |
sortBy | most_helpful | Capterra's default order; the only one available without sign-in. |
maxUpstreamRequests | derived | Hard ceiling on page requests to Capterra for the whole run. |
proxyConfiguration | Apify Proxy, residential, US | The proxy the browser goes through. |
Output
One row per review, recordType: "review", charged:
| Field | Meaning |
|---|---|
reviewId | Capterra's own review ID (the dedupe key). |
productId, productName, productSlug | The product reviewed. |
rating | Overall rating, 1-5 stars. |
easeOfUseRating, customerServiceRating, functionalityRating, valueForMoneyRating | Sub-ratings, 1-5; null when the reviewer skipped one. |
likelihoodToRecommend | 0-10. |
title, pros, cons, text | The headline, the Pros and Cons answers, and the overall comments. |
reasonsForChoosing, reasonsForSwitching | When the reviewer answered them. |
reviewerJobTitle, reviewerIndustry, companySize, timeUsedProduct | The reviewer's profile, as published. Never the name. Small products' pages do not publish a company size. |
incentive | Whether the reviewer was offered something for the review (none, Nominal gift, ...), as Capterra labels it. |
vendorResponse | The vendor's public reply, when there is one. |
publishedAt | The review date Capterra shows (YYYY-MM-DD). |
partial, partialReason | Always false / null on a review row: the row exists because the review was collected. |
collectedAt | Our 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.