# Capterra Reviews Scraper (`neuro-scraper/capterra-reviews-scraper`) Actor

Capterra Reviews Scraper SD - Capterra Reviews Scraper is a logged-out tool that extracts Capterra software reviews: overall and 4 sub-ratings, pros, cons, comments, reasons for choosing and switching, reviewer industry and company size, review source, incentive, dates and product rating summary.

- **URL**: https://apify.com/neuro-scraper/capterra-reviews-scraper.md
- **Developed by:** [Neuro Scraper](https://apify.com/neuro-scraper) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.49 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

./README.md

# Actor input Schema

## `startUrls` (type: `array`):

Product or review page URLs, one per line. Accepted: Capterra on any regional domain (https://www.capterra.com/p/135003/Slack/ or .../reviews/, https://www.capterra.co.uk/reviews/135003/slack), the same product on Software Advice (https://www.softwareadvice.com/voip/microsoft-teams-profile/) or GetApp (https://www.getapp.com/collaboration-software/a/slack/). Reviews are read from Software Advice, Capterra's sister site that publishes the same Capterra review pool (capterra.com itself answers every visitor without a browser session with a Cloudflare block).

## `searchTerms` (type: `array`):

Optional. Software names instead of URLs, one per line (e.g. Microsoft Teams, Asana). Each name is matched against the live list of reviewed products (Software Advice reviews sitemap, read on every run); the run log names the product that was picked.

## `maxReviews` (type: `integer`):

How many reviews to save for each product. Pages of 25 are followed with the site's own ?page=N until this number or the end. The site shows at most 400 pages (10,000 reviews) per product - measured 2026-10-09 on Slack (24,221 reviews): page 400 = reviews 9,976-10,000, page 401 = not found. 0 = as many as the site shows.

## `maxItems` (type: `integer`):

Optional cap for the whole run across all products. 0 = no total cap (only Max reviews per product applies).

## `starRating` (type: `array`):

Optional. Keep only reviews with these overall star ratings. Applied to every review as pages are read (the site's own rating filter is a URL parameter its robots.txt asks crawlers not to use), so a rare rating may need many pages; Max reviews counts matching reviews only.

## `minRating` (type: `integer`):

Optional. Keep only reviews rated at least this many stars (1-5). Applied as pages are read, like the star filter.

## `maxRating` (type: `integer`):

Optional. Keep only reviews rated at most this many stars (1-5). Example: 2 for critical reviews only.

## `publishedAfter` (type: `string`):

Optional. Keep only reviews written on or after this date (YYYY-MM-DD), or a relative age such as '30 days' / '6 months'. The site lists reviews in its 'Recommended' order, not by date, so pages are read until Max reviews matching reviews are found or the end.

## `publishedBefore` (type: `string`):

Optional. Keep only reviews written on or before this date (YYYY-MM-DD).

## `maxConcurrency` (type: `integer`):

How many products are read at the same time (each on its own proxy session). Pages of one product are always read one after another.

## `requestTimeoutSecs` (type: `integer`):

Timeout for one page request. Deep pages are slower (page 400 took 6 s, page 101 up to 10 s).

## `proxyConfiguration` (type: `object`):

Apify residential proxies in the United States are the default and recommended.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.capterra.com/p/135003/Slack/"
    }
  ],
  "searchTerms": [],
  "maxReviews": 50,
  "maxItems": 0,
  "starRating": [],
  "maxConcurrency": 2,
  "requestTimeoutSecs": 60,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.capterra.com/p/135003/Slack/"
        }
    ],
    "searchTerms": [],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("neuro-scraper/capterra-reviews-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://www.capterra.com/p/135003/Slack/" }],
    "searchTerms": [],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("neuro-scraper/capterra-reviews-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.capterra.com/p/135003/Slack/"
    }
  ],
  "searchTerms": [],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call neuro-scraper/capterra-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,neuro-scraper/capterra-reviews-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/q0Yn0U0aYQuARs8jf/builds/eycnjeA377gXfh9B4/openapi.json
