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

Scrape Capterra for software reviews, ratings, pricing, and product comparisons. Extract verified user reviews with pros, cons, and detailed ratings.

- **URL**: https://apify.com/junipr/capterra-scraper.md
- **Developed by:** [junipr](https://apify.com/junipr) (community)
- **Categories:** E-commerce, Developer tools
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$3.90 / 1,000 review scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Capterra Reviews Scraper

Scrape Capterra (Gartner) software reviews, ratings, pricing tiers, feature scores, and competitive alternatives. Extract B2B software intelligence at scale — the first dedicated Capterra scraper on Apify Store.

### What Can It Do?

- Extract complete product profiles with all rating dimensions
- Scrape up to 500 reviews per product with full reviewer details
- Extract pricing tiers including free plans and "Contact sales" options
- Get per-feature ratings (task management, collaboration, reporting, etc.)
- Capture "Likelihood to Recommend" scores — Capterra's unique metric
- Extract competing alternatives with ratings for comparison
- Filter reviews by star rating, company size, and sort order

### What Data Can You Extract?

| Field | Description |
|-------|-------------|
| Overall rating | Product average rating (0-5) |
| Total reviews | Total review count |
| Ratings breakdown | Ease of use, customer service, features, value for money |
| Likelihood to recommend | Capterra's unique 0-10 score |
| Rating distribution | Star distribution (1-5 counts) |
| Pricing tiers | All pricing plans with features |
| Feature ratings | Per-feature scores with review counts |
| Alternatives | Competing products with ratings |
| Review pros/cons | Structured reviewer feedback |
| Reviewer profile | Title, company, size, industry, usage duration |
| Deployment info | Cloud, on-premise, supported platforms |
| Badges | Top Rated, Shortlist Leader awards |

### How to Use

**Search by software name:**
```json
{
  "searchTerms": ["project management software"]
}
````

**Direct product URL:**

```json
{
  "productUrls": ["https://www.capterra.com/p/12345/Asana/"],
  "maxReviews": 100
}
```

**Category page:**

```json
{
  "categoryUrls": ["https://www.capterra.com/project-management-software/"],
  "maxProducts": 20,
  "maxReviews": 25
}
```

**Competitive intelligence (multiple products):**

```json
{
  "searchTerms": ["CRM software"],
  "maxProducts": 10,
  "maxReviews": 50,
  "reviewFilter": "most_recent",
  "includeFeatureRatings": true,
  "includeAlternatives": true
}
```

### Input Configuration

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `productUrls` | string\[] | `[]` | Direct Capterra product URLs |
| `searchTerms` | string\[] | `["project management software"]` | Software to search |
| `categoryUrls` | string\[] | `[]` | Capterra category pages |
| `maxProducts` | integer | `50` | Max products to scrape |
| `maxReviews` | integer | `25` | Max reviews per product (0 = product only) |
| `includeAlternatives` | boolean | `true` | Extract alternative products |
| `includePricing` | boolean | `true` | Extract pricing tiers |
| `includeFeatureRatings` | boolean | `true` | Extract per-feature ratings |
| `reviewFilter` | string | `"most_recent"` | `most_recent`, `most_helpful`, `highest`, `lowest` |
| `starFilter` | integer\[] | `[]` | Filter: `[4, 5]` for 4+ star reviews only |
| `companySizeFilter` | string\[] | `[]` | Filter by reviewer company size |

### Output Format

```json
{
  "url": "https://www.capterra.com/p/12345/Asana/",
  "productId": "12345",
  "productName": "Asana",
  "overallRating": 4.5,
  "totalReviews": 12456,
  "likelihoodToRecommend": 8.6,
  "ratings": {
    "easeOfUse": 4.3,
    "customerService": 4.2,
    "features": 4.4,
    "valueForMoney": 4.1
  },
  "pricing": {
    "hasFreePlan": true,
    "hasFreeTrial": true,
    "startingPrice": "$10.99/user/month"
  },
  "featureRatings": [
    { "feature": "Task Management", "rating": 4.6, "reviewCount": 5200 }
  ],
  "reviews": [
    {
      "author": { "name": "Jennifer K.", "title": "Project Manager", "companySize": "51-200 employees" },
      "rating": 4,
      "pros": "Intuitive interface, great for team task management",
      "cons": "Can get expensive as team grows",
      "likelihoodToRecommend": 8,
      "verified": true
    }
  ],
  "scrapedAt": "2026-03-11T12:00:00.000Z"
}
```

### Pricing

**Pay-Per-Event:** $0.0039 per review scraped ($3.90 per 1,000 reviews)

Pricing includes all platform compute costs — no hidden fees.

| Scenario | Reviews | Cost |
|----------|---------|------|
| Single product (25 reviews) | 25 | $0.10 |
| 10 products (25 reviews each) | 250 | $0.97 |
| Competitive landscape (100 products) | 2,500 | $9.75 |
| Full category analysis (500 products) | 12,500 | $48.75 |

### Tips & Best Practices

- **Start with search terms** to discover products, then switch to direct URLs for targeted scraping.
- **Set `maxReviews: 0`** if you only need product-level ratings and pricing without individual reviews — much faster and cheaper.
- **Use `companySizeFilter`** to focus on reviews from organizations matching your target market (e.g., enterprise-only or SMB-only feedback).
- **Combine with G2 data** for cross-platform review analysis. Different reviewers use each platform, so merging gives the most complete picture of software sentiment.
- **Export to CSV** for spreadsheet analysis or feed directly into BI tools via Apify integrations.

### Related Actors by junipr

- [Trustpilot Reviews Scraper](https://apify.com/junipr/trustpilot-reviews-scraper) — Consumer review intelligence
- [G2 Reviews Scraper](https://apify.com/junipr/g2-reviews-scraper) — B2B software reviews from G2
- [Glassdoor Jobs Scraper](https://apify.com/junipr/glassdoor-jobs-scraper) — Employee reviews and job data

### FAQ

#### How much does it cost to scrape Capterra?

$3.90 per 1,000 reviews scraped (pay-per-event). Product-level data with no reviews costs 1 event per product ($0.0039).

#### What's the difference between G2 and Capterra data?

Different reviewers use each platform. Capterra has Capterra-specific metrics like "Likelihood to Recommend" (0-10 scale). For complete B2B intelligence, scrape both platforms.

#### Can I get software pricing from Capterra?

Yes — set `includePricing: true` (default). Extracts all pricing tiers including free plans and "Contact sales" options.

#### Does it extract feature ratings?

Yes — Capterra shows per-feature ratings (e.g., Task Management: 4.6/5 from 5,200 reviews). Set `includeFeatureRatings: true` (default).

#### Is scraping Capterra legal?

Reviews and ratings are publicly viewable without login. Capterra (Gartner) has not pursued legal action against scraping of public data. We use respectful rate limiting and residential proxies to minimize server load.

# Actor input Schema

## `productUrls` (type: `array`):

Direct Capterra product page URLs. E.g. \["https://www.capterra.com/p/12345/Asana/"]. Max 200.

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

Software names to search on Capterra. E.g. \["project management software", "Asana"]. Max 50.

## `categoryUrls` (type: `array`):

Capterra category pages to scrape. E.g. \["https://www.capterra.com/project-management-software/"]. Max 50.

## `maxProducts` (type: `integer`):

Maximum products to scrape. Min: 1, Max: 1000.

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

Maximum reviews per product. 0 = product data only, no reviews. Max: 500.

## `includeAlternatives` (type: `boolean`):

Extract alternative/competing products listed on each product page.

## `includePricing` (type: `boolean`):

Extract pricing tiers and information.

## `includeFeatureRatings` (type: `boolean`):

Extract per-feature ratings (task management, collaboration, etc.).

## `reviewFilter` (type: `string`):

Sort reviews by: most\_recent, most\_helpful, highest, lowest.

## `starFilter` (type: `array`):

Filter reviews by star rating. E.g. \["4", "5"] for only 4 and 5 star reviews. Empty = all ratings.

## `companySizeFilter` (type: `array`):

Filter reviewers by company size. E.g. \["1-50", "51-200"].

## `proxyConfig` (type: `object`):

Proxy settings. Residential proxy recommended — Capterra uses Cloudflare.

## Actor input object example

```json
{
  "searchTerms": [
    "project management software"
  ],
  "maxProducts": 50,
  "maxReviews": 25,
  "includeAlternatives": true,
  "includePricing": true,
  "includeFeatureRatings": true,
  "reviewFilter": "most_recent",
  "proxyConfig": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Individual review records scraped from Capterra, each including product info, reviewer details, and review text.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("junipr/capterra-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 = {}

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

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

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

```

## CLI example

```bash
echo '{}' |
apify call junipr/capterra-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=junipr/capterra-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Capterra Reviews Scraper",
        "description": "Scrape Capterra for software reviews, ratings, pricing, and product comparisons. Extract verified user reviews with pros, cons, and detailed ratings.",
        "version": "1.0",
        "x-build-id": "qdWbh7ekp59f0C4lj"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/junipr~capterra-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-junipr-capterra-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/junipr~capterra-scraper/runs": {
            "post": {
                "operationId": "runs-sync-junipr-capterra-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/junipr~capterra-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-junipr-capterra-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "productUrls": {
                        "title": "Product URLs",
                        "type": "array",
                        "description": "Direct Capterra product page URLs. E.g. [\"https://www.capterra.com/p/12345/Asana/\"]. Max 200.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchTerms": {
                        "title": "Search Terms",
                        "type": "array",
                        "description": "Software names to search on Capterra. E.g. [\"project management software\", \"Asana\"]. Max 50.",
                        "items": {
                            "type": "string"
                        },
                        "default": [
                            "project management software"
                        ]
                    },
                    "categoryUrls": {
                        "title": "Category URLs",
                        "type": "array",
                        "description": "Capterra category pages to scrape. E.g. [\"https://www.capterra.com/project-management-software/\"]. Max 50.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxProducts": {
                        "title": "Max Products",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum products to scrape. Min: 1, Max: 1000.",
                        "default": 50
                    },
                    "maxReviews": {
                        "title": "Max Reviews Per Product",
                        "minimum": 0,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum reviews per product. 0 = product data only, no reviews. Max: 500.",
                        "default": 25
                    },
                    "includeAlternatives": {
                        "title": "Include Alternatives",
                        "type": "boolean",
                        "description": "Extract alternative/competing products listed on each product page.",
                        "default": true
                    },
                    "includePricing": {
                        "title": "Include Pricing",
                        "type": "boolean",
                        "description": "Extract pricing tiers and information.",
                        "default": true
                    },
                    "includeFeatureRatings": {
                        "title": "Include Feature Ratings",
                        "type": "boolean",
                        "description": "Extract per-feature ratings (task management, collaboration, etc.).",
                        "default": true
                    },
                    "reviewFilter": {
                        "title": "Review Sort Order",
                        "enum": [
                            "most_recent",
                            "most_helpful",
                            "highest",
                            "lowest"
                        ],
                        "type": "string",
                        "description": "Sort reviews by: most_recent, most_helpful, highest, lowest.",
                        "default": "most_recent"
                    },
                    "starFilter": {
                        "title": "Star Rating Filter",
                        "type": "array",
                        "description": "Filter reviews by star rating. E.g. [\"4\", \"5\"] for only 4 and 5 star reviews. Empty = all ratings.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "companySizeFilter": {
                        "title": "Company Size Filter",
                        "type": "array",
                        "description": "Filter reviewers by company size. E.g. [\"1-50\", \"51-200\"].",
                        "items": {
                            "type": "string"
                        }
                    },
                    "proxyConfig": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings. Residential proxy recommended — Capterra uses Cloudflare.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
