Capterra Reviews Scraper - Five Scores per Review avatar

Capterra Reviews Scraper - Five Scores per Review

Pricing

from $0.85 / 1,000 review scrapeds

Go to Apify Store
Capterra Reviews Scraper - Five Scores per Review

Capterra Reviews Scraper - Five Scores per Review

Scrape Capterra reviews for any software product. Every review has five scores: overall, ease of use, customer service, features and value. All five come back. You also get pros, cons, the date and the reviewer's job title, industry and company size. Input a product URL or numeric id.

Pricing

from $0.85 / 1,000 review scrapeds

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

6 hours ago

Last modified

Share

Capterra Reviews Scraper: every review for a software product, no API key

Give it a Capterra product URL or just the numeric product id, and you get one row per review. All five scores, the pros and cons in the reviewer's own words, the date, and who wrote it: job title, industry, company size and how long they have used the product.

Capterra's own pagination stops at 2,500 reviews per product, and its default order is the only one available, so a product with 24,000 reviews cannot be read end to end by anyone.

InputCapterra product URLs, country URLs, or numeric product ids
OutputOne row per review, plus an optional summary row per product
Ceiling2,500 reviews per product
Account neededNone, and no API key
Price$0.85 per 1,000 reviews, flat on every plan

🔍 What Capterra Reviews Scraper does

Only the product number matters. Paste the reviews URL from your address bar, a Capterra country URL like capterra.co.uk/software/135003/slack, or the bare 135003. The actor works out the rest, including the exact capitalisation Capterra insists on in the product slug.

Every review comes back with all five of Capterra's scores, not just the headline star: overall, ease of use, customer service, features and value for money, plus the 0 to 10 recommend score. The reviewer's profile comes with it, so you can cut the results by company size or industry later.

Switch on the summary row and each product also gets one extra, never-charged row: the average and its four sub-scores, how many reviews Capterra says exist in total, how many you collected, and the newest and oldest dates in your set.

📥 What you give it

{
"productUrls": ["https://www.capterra.com/p/135003/Slack/reviews/", "217965"],
"maxReviewsPerProduct": 300,
"includeProductSummary": true
}
FieldDefaultWhat it is
productUrlsnone, the box starts with the Slack product URLOne entry per product. A reviews URL, a Capterra country URL, or the numeric product id on its own.
maxReviewsPerProduct100 when you leave it out, and the box starts at 100Cap on billable review rows for each product, 1 to 2,500. This is your budget control.
includeProductSummaryonOne extra, never-charged row per product with the averages and totals. Set it to false to skip it.
proxyConfigurationnoneOptional. Only touch it if the run has to leave through your own servers.

Reviews for a product arrive when that product's walk finishes, not page by page. Ask for 2,500 from one product on a short run timeout and the run can end with nothing for it. Split a very large pull into several runs, or raise the timeout.

Products are read one after another. If Capterra will not serve the first product on a given run, the later ones in the same run are reported as skipped rather than attempted.

📤 What you get back

A real review row from a recent run, with the avatar URL trimmed:

{
"productId": "135003",
"productName": "Slack",
"productUrl": "https://www.capterra.com/p/135003/Slack/reviews/",
"reviewId": "Capterra___7189737",
"reviewUrl": "https://www.capterra.com/p/135003/Slack/reviews/?review=Capterra___7189737",
"title": "Slack: Essential for Desk Based Workforces",
"publishedAt": "2026-07-25",
"publishedText": "July 25, 2026",
"overallRating": 5,
"easeOfUse": 5,
"customerService": 5,
"features": 5,
"valueForMoney": 5,
"likelihoodToRecommend": 10,
"pros": "Slack is the best way for a desk based workforce to communicate. Hands down. \n\nNothing beats the speed, customizability, and ease of using Slack...",
"cons": "Honestly, nothing. \n\nOccassionally there will be a bug or issue, like when you had to hard refresh to get rid of phantom notifications, but that is once in a blue moon.",
"comments": "I love Slack and could not run my business without it...",
"alternativesConsidered": null,
"switchedFrom": null,
"reasonsForChoosing": null,
"reasonsForSwitching": null,
"reviewerName": "Richard M.",
"reviewerJobTitle": "Founder",
"reviewerIndustry": "Marketing and Advertising",
"companySize": "Self-employed",
"usedFor": "2+ years",
"verifiedLinkedInUser": true,
"reviewerValidations": "LinkedIn, ProofOfLink",
"reviewerAvatar": "https://reviews.capterra.com/cdn/profile-images/linkedin/...",
"incentivized": false,
"incentiveType": "NoIncentive",
"reviewerSource": "No Incentive Offered: This review was submitted organically.",
"sourceSite": "Capterra",
"globalReviewId": "Capterra___7189737",
"sourceDomain": "www.capterra.com",
"_charged": true
}
FieldWhat it is
reviewIdStable. Use it as your dedupe key across runs.
overallRating and the four beside itCapterra's full score set. likelihoodToRecommend is the 0 to 10 answer.
pros, cons, commentsThe reviewer's own text, kept as written including line breaks.
alternativesConsidered, switchedFrom, reasonsForChoosing, reasonsForSwitchingFilled in only when the reviewer answered those questions, which most do not. null otherwise.
reviewerNamenull when the review was left anonymously.
incentivized, incentiveType, reviewerSourceWhether the reviewer got something for writing it, in Capterra's own wording.
sourceSite, globalReviewIdCapterra shares a review corpus with its sister sites, so a review can originate elsewhere and say so here.
publishedAtThe ISO date. publishedText keeps Capterra's own wording.

🧾 Reading the output

Four kinds of row can land in your dataset.

RowHow to spot itCharged
A reviewA reviewId, and none of the flags belowyes
The product summary_summary: trueno
The sample row_sample: trueno
A diagnostic_diagnostic: true and a reasonno

Every row carries _charged. Treat it as the marker that tells a real review apart from the summary, sample and diagnostic rows, and filter on the three flags rather than on that one field. Run the actor with nothing filled in and you get the sample row on its own.

The reason on a diagnostic row names what went wrong:

ReasonWhat it means
unrecognised-product-referenceThat entry is not a Capterra product URL or id.
product-not-foundCapterra has no product with that number.
blockedCapterra would not serve a readable page for that product on this run. Try again.
skippedAn earlier product in the same run could not be served, so this one was not attempted.
no-new-reviewsPaging stopped because Capterra started repeating itself.
page-limit-reachedThe 2,500-review ceiling. Everything up to it was delivered.

The summary row also carries stoppedBecause, with the same vocabulary plus reached-requested-count and all-reviews-collected, so you can tell a finished walk from a capped one at a glance.

▶️ How to run it

  1. Open Capterra Reviews Scraper and click Try for free.
  2. Paste one or more products into Capterra product URLs, one per line.
  3. Set Maximum reviews per product. Start around 100 to see the output shape.
  4. Leave Add a product summary row on unless you only want review rows, then click Start.
  5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.

💰 How much does it cost?

$0.85 per 1,000 reviews. Flat on every Apify plan, no volume tiers.

You pay per review row delivered. The summary row, the sample row and diagnostic rows carry no review charge, and a product that returns no reviews produces none either.

💡 What people use it for

  • Reading what buyers in one company size band actually complain about, by filtering companySize and then cons.
  • Tracking a product's score month by month on a schedule, deduping on reviewId.
  • Pulling switchedFrom and reasonsForSwitching across a category to see which products people leave and why.
  • Sorting the sub-scores against each other, because a product can rate well on features and badly on customer service and the headline average hides it.

🚧 What it does not do

  • 2,500 reviews per product is the ceiling. That is Capterra's own pagination, not a setting here. Popular products have far more than that and nobody can read past it.
  • Capterra's default order only. There is no way to ask for newest first, so on a large product you get whichever slice Capterra puts first rather than the most recent.
  • No search by product name. You need the URL or the id. Find the product on Capterra once and keep the number.
  • English reviews from the .com site. Paste a country URL and the product id is kept, but the reviews still come from the main site.
  • No reviewer country. Capterra does not publish it on the review.
  • The optional fields are usually empty. alternativesConsidered and the three beside it depend on the reviewer having answered, and most skip them.
  • Rows are a snapshot. A review can be edited or removed later, and the run records what was on the page when it read it.

🧭 Which review scraper do you need?

If you wantUse
Capterra reviews with all five sub-scoresThis one
The same job on G2G2 Reviews Scraper
Agency and service-provider reviewsClutch Agencies Scraper
Mobile app reviews on AndroidGoogle Play Reviews Scraper
Mobile app reviews on iOSApp Store Scraper

❓ Questions people ask

Where do I find the product id? Open the product on Capterra and read the number out of the URL: capterra.com/p/135003/Slack/reviews/ is 135003. Paste either form.

Can I scrape several products in one run? Yes, one per line. Each gets its own cap and its own summary row.

Why did I get fewer reviews than I asked for? Either the product has fewer than that, or you hit the 2,500 ceiling, or paging started repeating. The summary row's stoppedBecause says which.

Do I get the newest reviews? Only in the sense that Capterra's default order tends to surface recent ones early. There is no newest-first setting to ask for.

Can I run it on a schedule? Yes. Keep the cap modest, dedupe on reviewId, and compare newestReview between runs.

Is scraping reviews legal? These are public reviews on public product pages. They carry personal data all the same, which GDPR and similar laws cover, so have a reason for collecting it. Apify's write-up on scraping and the law is a good starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the product URL or id and the run ID. The reason on the diagnostic row usually names the problem on its own.