Capterra Scraper
Pricing
from $0.01 / 1,000 results
Capterra Scraper
Scrape Capterra.com for business software product reviews, ratings, pricing information, and feature comparisons. Essential for SaaS market research and competitive analysis.
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer
The Howlers
Maintained by CommunityActor stats
0
Bookmarked
35
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Features
Share
Capterra Software Reviews & Pricing Scraper
Find any software product on Capterra by name and get its real product page data: product name, Capterra URL, rating, review count, category, what it is used for, pros and cons, starting price, pricing model, free trial, and reviews with their sub-ratings. Or list the products in a category.
Note: this actor runs in Demo Mode by default, so a default run returns labeled sample data and charges no task events (the Actor start fee still applies). Set demoMode to false to fetch real data.
How it reads the site
Capterra sits behind a Cloudflare bot check. The actor opens it in a stealth Firefox (Camoufox) whose fingerprint matches an Apify residential IP, keeps one session for the run, and paces its requests. It reads public pages only.
What Capterra does not show. Capterra product pages do not print the vendor company's name, street address or phone number (we checked the page text and its embedded data: the vendor name field is empty). The Visit Website button is a paid-click redirect that would bill the vendor, so the actor does not follow it. That means vendor and website come back null, and this actor gives no NAP (name, address, phone) for a business. It confirms that a product is listed on Capterra and returns its Capterra URL, rating, review count, category, pricing and reviews. Local service businesses (plumbers, agencies, dentists) are not on Capterra; expect a not_found row for them.
Quick Start
Test with Demo Mode (no task events)
{"demoMode": true}
Look up one product (citation check)
{"demoMode": false,"scrapeType": "product_profile","productName": "HubSpot CRM","maxResults": 3,"includeReviews": false}
Read a product page you already have
{"demoMode": false,"scrapeType": "reviews","productUrl": "https://www.capterra.com/p/152373/HubSpot-CRM/","maxReviewsPerProduct": 10}
List a category
{"demoMode": false,"scrapeType": "category_search","category": "CRM Software","maxResults": 20}
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
scrapeType | string | "category_search" | Type of scraping to perform |
productUrl | string | - | A Capterra product page, e.g. https://www.capterra.com/p/152373/HubSpot-CRM/. When set, the search is skipped. |
productName | string | - | Software product or company name to find on Capterra (e.g. 'HubSpot CRM'). Returns the product page with the same name; with scrapeType 'compare' it returns the top search matches. |
category | string | - | Capterra category (e.g., 'CRM Software', 'Project Management', 'Accounting') |
minRating | number | - | Minimum overall rating (1.0-5.0) |
deploymentType | string | "any" | Not applied to live data: Capterra product pages no longer show the deployment type, so live runs ignore it (it only filters the demo sample rows) |
includeReviews | boolean | true | Scrape user reviews for each product |
maxReviewsPerProduct | integer | 25 | Maximum reviews to collect per product |
includePricing | boolean | true | Include pricing information when available |
includeFeatures | boolean | true | Include detailed feature lists |
maxResults | integer | 50 | Maximum number of products to scrape |
proxyConfiguration | object | - | Capterra blocks datacenter IPs. Without a setting the Apify RESIDENTIAL proxy (US) is used with one sticky session per run. |
demoMode | boolean | true | Return sample data without actual scraping (for testing) |
webhookUrl | string | - | URL to POST results when scraping completes (Zapier, Make, n8n, custom endpoint) |
webhookPlatform | string | "custom" | Platform-specific payload formatting |
webhookHeaders | object | - | Custom HTTP headers to send with webhook (JSON object) |
Output
Each software product is one dataset row. A field Capterra does not show comes back null, never an empty string or 0:
productName,capterraUrl(also asurl),capterraId,productIdoverallRating,reviewCount,category,categoryUrl,subcategories,features,description,prosAndConspricing{startingPrice, pricingModel, hasFreeTrial, hasFreeVersion}reviews[]{title, overallRating, ratings (sub-ratings), pros, cons, usageDuration, date} when reviews are onvendorandwebsiteare null: Capterra does not print them (see above). There are no address or phone fields.searchQuery,matchScore(1 = same name)
When Capterra lists no product with that name the dataset gets one row with status: "not_found", a _notice and nearMatches. When Capterra blocks every session the row has status: "blocked". Neither charges a task event (the Actor start fee still applies).
Pricing
This actor uses pay-per-event billing:
| Event | When it is charged | Price |
|---|---|---|
| Actor start | Once when the run starts, one event per GB of memory (minimum one). At the default 4 GB of memory a run starts at $0.40 | $0.10 per GB |
| Product Scraped | Per software product scraped | $0.02 |
| Result | Each item written to the default dataset | $0.00001 |
Demo mode charges no task events: sample rows are never billed. Every run, a demo run included, still pays the Actor start fee and the small per-result fee shown above.
Troubleshooting
The run returned a "blocked" row
The site answered every proxy session with a bot check. No task events were charged (the Actor start fee still applies). Run again later.
The run returned a "not_found" row
The site has no listing with that name. Check the spelling, or pass the listing URL directly.
How do I test without paying for results?
Enable Demo Mode. It returns labeled sample rows and charges no task events; you pay only the Actor start fee and the per-result fee.
Built by John Rippy | Actor Arsenal