Capterra Reviews Scraper avatar

Capterra Reviews Scraper

Pricing

from $0.70 / 1,000 reviews

Go to Apify Store
Capterra Reviews Scraper

Capterra Reviews Scraper

Paste Capterra product URLs or names such as Asana or ClickUp and get their reviews: ratings, sub-ratings, pros, cons, reviewer role, company size, vendor replies. Compare products in free summary and comparison rows: top pros, cons, price. Only-new mode. $1 per 1,000 reviews, failures free.

Pricing

from $0.70 / 1,000 reviews

Rating

0.0

(0)

Developer

Gautham Krishna

Gautham Krishna

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Share

Get Capterra software reviews as clean rows, for product teams, competitor analysis and market research.

Use cases, each with a ready-to-run example:

Paste product URLs or just name the products (Asana, monday.com, ClickUp), pick newest first or a star filter, and get one row per review with ratings, pros, cons, the reviewer's role and company size, the incentive flags and the vendor's reply.

You pay $1 per 1,000 reviews ($0.001 each), and less on Apify Store discount tiers (Bronze, Silver, Gold), down to $0.70 per 1,000 on Gold. Failed URLs, missing products, unmatched names and products with no reviews are never charged.

At a glance

TopicDetails
InputCapterra product or review page URLs, or product names such as Asana or monday.com
OutputOne JSON row per review: overall and sub-ratings, pros, cons, reviewer role, industry and company size, incentive flags and the vendor's reply. Optional free summary row per product and comparison row per run
Price$0.001 per review ($1 per 1,000), or $0.90 per 1,000 on Bronze, $0.80 on Silver and $0.70 on Gold. No start fee. Failed URLs, products without reviews, summary rows and comparison rows are free
TestedFinal test run: 63 of 63 products returned reviews, 1,860 in total. A separate run collected 3,000 Slack reviews in under 3 minutes. Name test: 82 of 90 software names returned reviews of the product they name. Small products: 30 of 30 products with 1 to 6 reviews returned all 78 of their reviews
MonitoringonlyNewSinceLastRun returns only reviews you have not had before, and publishedAfter sets a date cutoff. Schedule it in Apify for a weekly feed
Limitscapterra.com only. maxReviewsPerProduct is 100 by default, raise it (up to 100,000) to get every review

What you get per review

FieldWhat it holds
productName, vendorName, productRating, productReviewCount, productCategory, productUrlProduct summary, repeated on every row so each row stands alone. vendorName is empty for small products that have no reviews page yet
reviewId, title, reviewDateReview ID, headline and date (YYYY-MM-DD)
ratingOverall rating, 1 to 5
easeOfUseRating, customerSupportRating, functionalityRating, valueForMoneyRatingSub-ratings, 1 to 5
recommendationScoreHow likely the reviewer is to recommend it, 0 to 10
pros, cons, overallThe review text
reviewerNameThe name exactly as Capterra shows it publicly (first name and initial). Empty for anonymous reviewers
reviewerJobTitle, reviewerIndustry, reviewerCompanySize, timeUsedProductReviewer context as shown on Capterra
isVerified, verificationMethodsWhether Capterra validated the reviewer, and how (LinkedIn, business email, proof of use)
isIncentivized, isVendorReferred, incentive, reviewSourceWhether the reviewer got a gift card or was invited by the vendor, with Capterra's own explanation
switchedFrom, alternativesConsideredProducts the reviewer moved from or compared
vendorResponse{ "text", "date" } when the vendor replied, otherwise null
nameMatchOnly on rows from a product name: the name you typed, how it matched (exact, starts_with or contains) and up to 3 other products it could mean
status, inputok for reviews. See the FAQ for other statuses

No emails, phone numbers or profile photos are collected.

Input

{
"startUrls": [
"https://www.capterra.com/p/135003/Slack/reviews/",
"https://www.capterra.com/p/158833/ClickUp/"
],
"maxReviewsPerProduct": 100,
"sortBy": "newest",
"starRatings": ["1", "2"]
}
OptionValues
startUrlsCapterra product or review page links. Old /reviews/<id>/<name> links work too
productNamesSoftware names instead of links, such as "Asana", "monday.com" or "ClickUp". See Product names below. Empty by default
maxReviewsPerProductDefault 100
sortBynewest (default), most_helpful, highest_rated, lowest_rated
starRatingsAny of "1" to "5". Empty means all ratings
onlyNewSinceLastRunDefault false. See Monitoring below
publishedAfterEmpty by default. See Monitoring below
productSummaryDefault false. One free summary row per product. See Compare products below
compareProductsDefault false. One free comparison row across all products in the run. See Compare products below

lowest_rated with starRatings: ["1", "2"] is a quick way to collect a competitor's complaints.

Product names instead of URLs

{
"productNames": ["Asana", "monday.com", "ClickUp"],
"maxReviewsPerProduct": 100
}

Each name goes through Capterra's own search, one lookup per name, and the lookup is free. A domain such as asana.com is searched as asana. You can mix productNames and startUrls in one run.

The scraper then picks the product the name means. A product counts as a match when its name equals yours, starts with yours, or holds yours as whole words. Add-ons for a product, such as "SSIS Data Flow Components for Slack" or "SugarCRM Mailchimp Integration", never count. Each match scores its review count plus one, times 10 for an exact name, times 1 when it starts with your name, and times 0.5 when your name comes later in it. The highest score wins.

NameWhat happened in the test run
ZoomZoom Workplace (14,690 reviews). A listing called "ZooM" matches exactly, but with 63 reviews it scores 640 against 14,691
monday.commonday AI Work Platform, sold by monday.com
Bill.comBILL Accounts Payable & Receivable
MyCase8am MyCase, the product's current name
HubSpotAmbiguous. HubSpot Marketing Hub (6,258 reviews) and HubSpot CRM (4,491) score too close

Ties. When the second-best match scores at least half the best one's score, the name is ambiguous. The scraper then collects no reviews for it and returns a free ambiguous row listing up to 5 candidates with their URLs, rating and review count. Pass the full product name, such as HubSpot CRM, or its URL on the next run.

Every review row from a name carries a nameMatch field. This one is copied from a test run:

"nameMatch": {
"name": "monday.com",
"matchType": "starts_with",
"otherMatches": [
{ "productName": "monday CRM", "productUrl": "https://www.capterra.com/p/245800/Monday-CRM/", "productReviewCount": 467 },
{ "productName": "monday service", "productUrl": "https://www.capterra.com/p/10023357/monday-service/", "productReviewCount": 111 },
{ "productName": "monday dev", "productUrl": "https://www.capterra.com/p/10008569/monday-dev/", "productReviewCount": 67 }
]
}

A name that matches nothing comes back as a free not_found row. When a name points at a product that another input in the same run already covers, its reviews are listed once, and the other input gets a free duplicate row.

Test run on 90 software names across CRM, project management, HR, accounting, help desk, marketing, retail, developer, design, field service, construction, legal, healthcare, church, education, property, security and website tools, 30 reviews each:

ResultNames
Reviews of the product the name means, checked against each row's vendor82
Ambiguous5: HubSpot, Square, RingCentral, Insightly, Qualtrics
No match3: Intercom (Capterra's search does not list it), Toggl Track (listed as Toggl), Kareo (now Tebra)

Monitoring: only new reviews and a date cutoff

Two optional inputs turn a scheduled run into a feed of new reviews. Both are off by default, and a run without them works exactly as before.

OptionWhat it does
onlyNewSinceLastRunReturns only reviews this scraper has not returned to you before for the same product and filters, and none dated more than 14 days before the newest one it returned last time. Capterra checks reviews before they go live, so some appear days after their date, and the 14 days catch them. The first run returns the usual results and remembers them
publishedAfterOnly reviews published on or after a date: 2026-10-01, 2026-10-01T12:00:00Z (UTC), or a relative value such as 7 days

With sortBy: "newest" the run stops at the first page that holds nothing new, so a daily run reads only the pages it needs. With other orders it still skips old reviews, but it reads further to find new ones. You pay only for the reviews returned. The memory is a key-value store named software-reviews-scraper-monitor in your own Apify account, one record per product and star filter. Delete that store to start over. A product with nothing new comes back as a free no_reviews row.

Run it on a schedule

A weekly run with onlyNewSinceLastRun: true and sortBy: "newest" gives you a feed of new reviews for the products you follow. We ran the same 65 product links on 15 Oct and again on 20 Oct. The 20 Oct run returned 2 reviews that Capterra put live after the earlier runs but dated 13 Oct, and none that an earlier run had returned. A second run straight after returned 0 reviews and 63 free no_reviews rows, so a run with nothing new costs you nothing.

  1. Set your input with onlyNewSinceLastRun: true and click Save as a new task.
  2. On the task page, click Actions, then Schedule, and pick how often it runs. Apify's schedules guide covers cron times and time zones.
  3. On the task's Integrations tab, choose where each run's results go.
IntegrationWhat it does
SlackPosts a message to your channel when a run finishes
Google DriveSaves each run's results as a file in your Drive
WebhookSends the finished run, with its dataset ID, to your own URL
Make, Zapier, n8nAdds each new row to a Google Sheet, a CRM or a database

Each review has a stable reviewId, so a sheet or database can skip rows it already holds.

Compare products: free summary and comparison rows

Two optional switches add free rows for tasks such as "compare Asana, monday.com and ClickUp". Both are off by default, and a run without them returns the same rows as before.

{
"productNames": ["Asana", "monday.com", "ClickUp"],
"maxReviewsPerProduct": 10,
"productSummary": true,
"compareProducts": true
}

productSummary adds one summary row per product, after its reviews. compareProducts adds one comparison row at the end of the run. Neither is charged. Each product needs one more page read, its Capterra profile page.

The summary holds Capterra's own figures, which cover every review of the product, not only the ones you collected.

FieldWhat it holds
productRating, productReviewCountThe rating and review count Capterra shows, the same as on review rows
productRatingExactCapterra's unrounded average. The profile page's "Overall rating" box can show 0.1 more than productRating. Jira's 4.4469 shows there as 4.5 and elsewhere as 4.4
starDistributionHow many reviews gave 1 to 5 stars. The counts add up to productReviewCount
sentimentPercentShare of 4 and 5 star (positive), 3 star (neutral) and 1 and 2 star (negative) reviews. Capterra's "Reviews sentiment" box shows about the same numbers, rounded
subRatingsEase of use, customer support, functionality and value for money, each with its average and how many reviews rated it
recommendPercentShare of reviewers who rated their likelihood to recommend 8 to 10 out of 10. Reviewers who skipped the question are left out
topPros, topConsCapterra's own pros and cons themes: the theme, Capterra's one-line description, the share of positive or negative mentions, and how many reviews mention it. Products without enough reviews have none
pricingStarting price, currency and unit, and whether there is a free trial and a free version. The price is empty when Capterra says "Contact vendor"
returnedReviewsFigures from the reviews this run returned: count, oldest and newest date, average, star counts, share of 1 and 2 stars, recommend share, vendor reply share, the same for the last 90 days, and the products reviewers most often switched from or considered

returnedReviews depends on maxReviewsPerProduct, sortBy and the filters. With the newest 100 reviews, it describes recent opinion, while the other fields describe the product's whole history.

The comparison row lists every product side by side, in the order you gave them, with its rating, sub-ratings, recommend share, share of 1 and 2 star reviews, starting price, top pro and top con. leaders names the best product on each figure, and ties share a place. A product leads only when the figure rests on 20 or more reviews, so a product with one 5-star review does not top the list. The overall rating uses productRatingExact, so 4.57 and 4.63 do not count as a tie. notCompared lists inputs that gave no product, with their status, such as an ambiguous name.

This comparison row is copied from a test run on the input above, with the products list cut to its first entry:

{
"status": "comparison",
"site": "capterra",
"productCount": 3,
"products": [
{
"productName": "Asana",
"productId": "184581",
"productUrl": "https://www.capterra.com/p/184581/Asana-PM/",
"input": "Asana",
"productRating": 4.5,
"productRatingExact": 4.4866,
"productReviewCount": 13764,
"easeOfUse": 4.4,
"customerSupport": 4.3,
"functionality": 4.4,
"valueForMoney": 4.4,
"recommendPercent": 76.7,
"negativePercent": 1.7,
"startingPrice": 10.99,
"currency": "$",
"priceUnit": "Per User, Per Month",
"freeVersion": true,
"freeTrial": true,
"topPro": "Comprehensive real-time project tracking",
"topCon": "Overwhelming and excessive notifications",
"returnedReviews": 10,
"returnedAverageRating": 5,
"returnedNegativePercentLast90Days": 0,
"returnedVendorReplyPercent": 0
}
],
"leaders": {
"productRating": ["ClickUp"],
"easeOfUse": ["monday AI Work Platform"],
"customerSupport": ["ClickUp"],
"functionality": ["ClickUp"],
"valueForMoney": ["ClickUp"],
"recommendPercent": ["ClickUp"],
"productReviewCount": ["Asana"],
"fewestNegative": ["ClickUp"]
},
"notCompared": [],
"message": "Capterra's figures for all reviews of each product, in input order. leaders names the best product on each figure among products with at least 20 reviews behind it, and ties share a place. The returned* fields cover only the reviews this run returned.",
"input": null
}

Test runs with both switches on:

RunResult
90 software names, 30 reviews eachAll 82 products found got a summary row with star counts, sub-ratings and recommend share. 78 had pros and cons themes, 68 a starting price
65 product URLs, 30 reviews eachAll 63 products got a summary row with star counts, sub-ratings and recommend share
10 products checked against their Capterra pages in a browserReview count, top pro and top con with their shares and counts, starting price, free trial and free version matched on all 10. Sub-ratings with their review counts matched on the 9 pages that show them

Output example

This is a real row from a test run.

{
"status": "ok",
"site": "capterra",
"productId": "154664",
"productName": "Tithe.ly",
"vendorName": "Tithe.ly",
"productRating": 4.7,
"productReviewCount": 693,
"productCategory": "Nonprofit CRM",
"productUrl": "https://www.capterra.com/p/154664/Tithe-ly-Church-Giving/",
"reviewId": "6761023",
"title": "Great, easy-to-use software",
"rating": 5,
"easeOfUseRating": 5,
"customerSupportRating": 5,
"functionalityRating": 5,
"valueForMoneyRating": 5,
"recommendationScore": 10,
"pros": "Tithely has been really easy to use. The learning curve is minimal and it helps keep our church connected.",
"cons": "I can't think of anything I didn't like.",
"overall": "Great support. Easy to use. Good end user experience",
"reviewDate": "2025-03-29",
"reviewerName": "Marcy C.",
"reviewerJobTitle": "Communications and. Executive Assistant",
"reviewerIndustry": "Non-Profit Organization Management",
"reviewerCompanySize": "1-10 employees",
"timeUsedProduct": "1-2 years",
"isVerified": true,
"verificationMethods": ["BusinessEmail", "ProofOfLink"],
"isIncentivized": true,
"isVendorReferred": true,
"incentive": "VendorReferredIncentivized",
"reviewSource": "Vendor Referred - Incentive Offered: This reviewer was invited by the software vendor to submit an honest review and offered a nominal incentive as a thank you.",
"switchedFrom": ["Planning Center"],
"alternativesConsidered": null,
"vendorResponse": {
"text": "Thank you Marcy for your feedback!",
"date": "2025-04-01"
},
"input": "https://capterra.com/p/154664/Tithe-ly-Church-Giving/reviews/?page=2"
}

Pricing

Prices are per 1,000 reviews.

EventNo discountBronzeSilverGold
Review returned$1$0.90$0.80$0.70
Name lookup, unmatched or ambiguous name, duplicate, missing product, product with no reviews, unsupported or invalid URL, failed fetch, summary row, comparison rowFreeFreeFreeFree

Bronze, Silver and Gold are Apify Store discount tiers, and Apify's Pricing tab shows them as Starter, Scale and Business. Apify decides which tier an account is on.

Set a maximum cost per run in the run options. The scraper stops once that limit is reached.

Speed

In tests, one product returned about 19 reviews per second, and 3,000 Slack reviews took under 3 minutes. Several products run in parallel, 5 by default.

Use it from AI agents

The scraper works as a tool through the Apify MCP server in Claude, Cursor, VS Code and other MCP clients. An agent can pass a few product names, such as Asana, monday.com and ClickUp, with compareProducts on, and get back their reviews plus one row that puts Capterra's figures for each product side by side.

You can also call it through the Apify API, schedule it, or connect it to Make, Zapier and n8n.

More from heyitsgautham

Other actors from the same account.

FAQ

What do the other statuses mean? not_found means Capterra has no product at that URL, or no product matches that name. ambiguous means a name matches several products about equally well. The row lists the candidates. duplicate means a name points at a product another input already covers, so its reviews are listed once. no_reviews means the product has no reviews, none match your filters, or, when monitoring, none are new. That row still carries the product summary. unsupported_site is a G2 URL. invalid_input is anything else that isn't a capterra.com product link. When it looks like a product name, such as Asana, the message says to put it in productNames. error means the page could not be fetched after several retries. summary and comparison are the optional rows described under Compare products. None of these rows are charged.

Does it scrape G2? No. G2 shows a CAPTCHA to automated visitors, and this scraper does not solve CAPTCHAs. G2 URLs come back as unsupported_site at no cost.

Does it work for small products? Yes. Capterra gives a product with only a few reviews no reviews page and shows them on its profile page, and the scraper reads those too. In a test, 30 of 30 products with 1 to 6 reviews returned all 78 of their reviews. Capterra does not show the vendor on those pages, so vendorName is empty.

Can I get every review of a big product? Yes. Set maxReviewsPerProduct above the product's review count.

Does it log in? No. It reads the same public pages any visitor sees.

Why is the product URL different from mine? Capterra routes by the numeric product ID and sometimes renames products, so the scraper follows Capterra to the current page.

Limitations

  • capterra.com only. Country sites such as capterra.co.uk are not supported.
  • Product names rely on Capterra's search, which does not list every product. If a name comes back not_found but you know the product is on Capterra, pass its URL.
  • Review text comes back as Capterra shows it, in the reviewer's language.
  • If Capterra changes its site, sorting and star filters may stop working until the scraper is updated. The default order keeps working through a fallback.