Capterra Reviews Scraper
Scrape Capterra reviews with no API key or login: ratings, pros, cons, sub-scores, reviewer profile. JSON, CSV or Excel. $0.85 per 1,000 reviews.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
productUrls,maxReviewsPerProduct,sort(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.00085 per review = $0.85 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Review scraped | Charged once per Capterra review returned. Summary, sample and diagnostic rows are never charged. | $0.00085 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-08, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
productUrls | One entry per product. Paste the Capterra reviews URL straight from your address bar (https://www.capterra.com/p/135003/Slack/reviews/), a Capterra country URL (https://www.capterra.co.uk/software/135003/slack), or just the numeric product id (135003). Only the number matters, the actor looks up the rest itself. | array |
maxReviewsPerProduct | Hard cap on billable review rows for each product. You are charged per review returned, so this is also your budget cap. Capterra itself stops paginating at 2,500 reviews per product, which is the ceiling here too. | integer |
sort | Which reviews come first, and so which ones you get when you ask for fewer than the product has. Most helpful is Capterra's own default and what this actor has always read. The other three are the orders Capterra's sort box offers: newest first, or by overall star rating, highest or lowest first. | string |
includeProductSummary | On by default. Adds one extra, never-charged row per product with the product name, average rating and sub-scores, Capterra's total review count, how many were collected, and the newest/oldest review dates. | boolean |
What you get
A structured dataset — each result includes fields like:
productNamereviewIdtitleoverallRatingpublishedAtreviewerNamereviewerJobTitlereviewerIndustrycompanySizeusedForprosconsreviewUrlExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
Related tools in Reviews & Reputation Data
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
Tripadvisor Reviews Scraper
Scrape Tripadvisor reviews for hotels, restaurants and attractions. Get rating, full text, reviewer, hometown, trip type and owner reply. $0.25/1,000.
Booking.com Reviews Scraper
Scrape Booking.com guest reviews. Get the score, title, liked and disliked text, reviewer name, country and stay dates. $1.50 per 1,000 reviews.
Google Play Reviews Scraper
Google Play reviews by app ID or URL: score, text, reviewer, date, developer reply. Any country. Up to 5,000 per app. $0.09 per 1,000.
2GIS Reviews Scraper
Scrape 2GIS reviews by place URL or city: rating, text, author, date, photos, owner replies. No API key. $0.50 per 1,000.
Yelp Scraper
Scrape Yelp businesses and reviews through Yelp's official Fusion API. Get rating, review count, price, phone, address, GPS and text. Bring your own key.
Glassdoor Company Reviews Scraper
Scrape Glassdoor reviews: pros, cons, six sub-ratings, recommend rate and CEO approval. First page per company without login. $2.50 per 1,000.
Where this tool sits
- Categories
- Reviews & Reputation Data
- Platforms
- G2 & Capterra
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, so a product with 24,000 reviews cannot be read end to end by anyone. What you can choose is the order, and with it which reviews you get: most helpful first, newest first, or by rating.
| Input | Capterra product URLs, country URLs, or numeric product ids |
| Output | One row per review, plus an optional summary row per product |
| Ceiling | 2,500 reviews per product |
| Account needed | None, 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,
"sort": "most_recent",
"includeProductSummary": true
}
| Field | Default | What it is |
|---|---|---|
productUrls | none, the box starts with the Slack product URL | One entry per product. A reviews URL, a Capterra country URL, or the numeric product id on its own. |
maxReviewsPerProduct | 100 when you leave it out, and the box starts at 100 | Cap on billable review rows for each product, 1 to 2,500. This is your budget control. |
sort | most_helpful | The order reviews come in: most_helpful (Capterra's default), most_recent, highest_rated or lowest_rated. With a cap below the product's total, this decides which reviews you get. |
includeProductSummary | on | One extra, never-charged row per product with the averages and totals. Set it to false to skip it. |
proxyConfiguration | none | Optional. 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
}
| Field | What it is |
|---|---|
reviewId | Stable. Use it as your dedupe key across runs. |
overallRating and the four beside it | Capterra's full score set. likelihoodToRecommend is the 0 to 10 answer. |
pros, cons, comments | The reviewer's own text, kept as written including line breaks. |
alternativesConsidered, switchedFrom, reasonsForChoosing, reasonsForSwitching | Filled in only when the reviewer answered those questions, which most do not. null otherwise. |
reviewerName | null when the review was left anonymously. |
incentivized, incentiveType, reviewerSource | Whether the reviewer got something for writing it, in Capterra's own wording. |
sourceSite, globalReviewId | Capterra shares a review corpus with its sister sites, so a review can originate elsewhere and say so here. |
publishedAt | The ISO date. publishedText keeps Capterra's own wording. |
🧾 Reading the output
Four kinds of row can land in your dataset.
| Row | How to spot it | Charged |
|---|---|---|
| A review | A reviewId, and none of the flags below | yes |
| The product summary | _summary: true | no |
| The sample row | _sample: true | no |
| A diagnostic | _diagnostic: true and a reason | no |
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:
| Reason | What it means |
|---|---|
unrecognised-product-reference | That entry is not a Capterra product URL or id. |
product-not-found | Capterra has no product with that number. |
blocked | Capterra would not serve a readable page for that product on this run. Try again. |
skipped | An earlier product in the same run could not be served, so this one was not attempted. |
no-new-reviews | Paging stopped because Capterra started repeating itself. |
page-limit-reached | The 2,500-review ceiling. Everything up to it was delivered. |
unknown-sort | The sort value is not one of the four above. Nothing was fetched or charged. |
sort-unavailable | Capterra's sort did not answer for that product on this run. Try again, or use most_helpful. |
sort-not-applied | Capterra sent a page that was not in the order you asked for. That page was dropped and not charged. |
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, and a Review order if you want the newest or the best and worst rated first. 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, with
sortonmost_recentand deduping
on reviewId.
- Pulling
switchedFromandreasonsForSwitchingacross 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.
- No oldest-first order. Capterra's sort offers most helpful, newest, highest and lowest rating,
and those four are what you can ask for here.
- 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.
alternativesConsideredand 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 want | Use |
|---|---|
| Capterra reviews with all five sub-scores | This one |
| The same job on G2 | G2 Reviews Scraper |
| Agency and service-provider reviews | Clutch Agencies Scraper |
| Mobile app reviews on Android | Google Play Reviews Scraper |
| Mobile app reviews on iOS | App 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? Set sort to most_recent and you do, newest first. Left alone, you get Capterra's default order, most helpful first.
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.