# Capterra Scraper: Software Vendors, Ratings, Websites & Emails (`avoca_code/capterra-software-vendors-scraper`) Actor

Scrape Capterra category pages for software products with ratings, sub-ratings, pricing, review counts by company size, vendor websites and contact emails.

- **URL**: https://apify.com/avoca_code/capterra-software-vendors-scraper.md
- **Developed by:** [Avocado Code](https://apify.com/avoca_code) (community)
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 products

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/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

## Capterra Scraper: Software Vendors, Ratings, Websites & Emails

Get every software product in any Capterra category with its **ratings, sub-ratings, pricing, review counts by company size, vendor website and contact emails**, ready for lead generation, market research or competitor tracking.

Paste a Capterra category page, choose how many products you want, and get one clean row per product.

### Who it's for

- **Agencies and B2B sales teams** building lists of software companies to pitch, with the vendor's website and contact emails.
- **SaaS founders and product marketers** tracking competitors' ratings, review volume and pricing in their category.
- **Investors and analysts** sizing a software market: how many vendors, how they rate, who is growing reviews fastest.

### What you get for each product

| Field | Example |
|---|---|
| Product and vendor | monday CRM, by monday.com |
| Capterra link and ID | capterra.com/p/245800/Monday-CRM/ |
| Overall rating and review count | 4.69 from 468 reviews |
| Sub-ratings | Ease of use 4.68, customer service 4.57, functionality 4.52, value for money 4.5 |
| Likelihood to recommend | 0.85 |
| Rating breakdown | Count of 1 to 5 star reviews |
| Review momentum | Reviews in the last 6 and 12 months |
| Who reviews it | Small business, mid-size and enterprise review counts |
| Pricing | Free trial, free version |
| Description and features | Short and long description, full feature list |
| Position in category, sponsored flag | 1, true |
| **Website and domain** (optional) | monday.com, with a high / review confidence label |
| **Emails, phones, socials** (optional) | Public contact details from the vendor's own website |

### How to use it

1. Open [capterra.com/categories](https://www.capterra.com/categories), pick a category and copy its address, for example `https://www.capterra.com/project-management-software/`.
2. Paste one or more category addresses into **Capterra category pages**.
3. Set **Max products per category**. Capterra shows 25 products per page; the Actor moves through the pages for you.
4. **Find vendor websites** is on by default. Turn on **Find contact emails** too if you're building a lead list, or turn websites off if you only need the Capterra data.
5. Start the run and download the results as Excel, CSV or JSON, or send them to Google Sheets, n8n, Make or Zapier.

### Example output

```json
{
  "productName": "monday CRM",
  "vendorName": "monday.com",
  "capterraUrl": "https://www.capterra.com/p/245800/Monday-CRM/",
  "category": "Customer Relationship Management Software",
  "rating": 4.69,
  "reviewCount": 468,
  "easeOfUseRating": 4.68,
  "customerServiceRating": 4.57,
  "valueForMoneyRating": 4.5,
  "reviewsLast12Months": 31,
  "smallBusinessReviews": 395,
  "hasFreeTrial": true,
  "domain": "monday.com",
  "domainConfidence": "high",
  "emails": ["..."]
}
```

### Pricing

You pay per result, nothing for failed pages:

- **Per product** in the dataset.
- **Per website found**: an extra charge for each product where a vendor website was found. "Find vendor websites" is **on by default**. Turn it off if you only need the Capterra data, and you'll pay for products only. Products with no website found cost nothing extra.
- **Emails** come from the [Website Email & Contact Scraper](https://apify.com/avoca_code/website-email-contact-scraper), billed on its own only for websites where at least one email is found.

See the exact prices on the Pricing tab of this page. Set a maximum cost per run in the run options if you want a hard limit: the Actor checks it before finding websites and only processes as many products as your limit covers, so you never pay for work you didn't budget for.

### Tips

- **Domain confidence:** `high` means every check passed (see *How websites are found* below). `review` means it's the most likely site but worth a quick look before outreach. Empty means no site could be confirmed.
- **Filters:** use **Minimum number of reviews** to skip tiny or inactive vendors.
- **Several categories in one run:** a product listed in more than one category is saved once.
- **Proxy:** Capterra blocks datacenter IPs, so the default is Apify's US residential proxy. Keep it unless you know you need something else.

### Related Actors

- [Website Email & Contact Scraper](https://apify.com/avoca_code/website-email-contact-scraper): emails, phones and socials for any list of websites.
- [Clutch.co Company Scraper](https://apify.com/avoca_code/clutch-company-scraper): agencies and service providers from Clutch with websites and emails.

### Questions or a missing field?

Open an issue on the Issues tab. Requests for new fields are welcome.

### How websites are found

Each product's website is looked up on its own (two products from the same vendor can live on different sites). The Actor tries the addresses a software product usually lives on, such as product.com, getproduct.com, productapp.com, product.io and the vendor's own domain. It then opens each homepage and keeps the one that names the product or vendor, sits on a matching domain, describes the same kind of software as the Capterra listing, and looks like a software site. Products still without a confident match get a web search, and each search hit is checked the same way.

- **high**: all checks passed.
- **review**: the site names the product and matches the topic, but one signal was weak. Worth a quick look before outreach.
- **empty**: no site passed the checks. A blank is better than a wrong company.

Some large vendors block automated visits to their homepage. When the exact product address (for example clio.com) answers with a bot check, the Actor keeps that address as `review` instead of settling for a look-alike such as a reseller or a different company with a similar name.

### Changelog

- **0.3.x**: Works again behind Capterra's updated bot check. Prefers the product's exact domain over look-alike and reseller domains. Common-word vendor names (for example "Simple Technology") no longer count as a match. Contact pages are crawled faster (up to 5 pages per website).
- **0.3**: Websites are found per product instead of per vendor. Matching on a single word of the vendor name (for example "Pixel" for Pixel Paddock) is no longer accepted. Pages must be about the same kind of software as the listing. Phone numbers are validated and capped at 5 per product, emails at 10.

# Actor input Schema

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

Capterra category pages to scrape, for example https://www.capterra.com/project-management-software/. Open https://www.capterra.com/categories to find the one you need and copy its address. Page numbers are handled for you.

## `maxProductsPerCategory` (type: `integer`):

Stop after this many products in each category. Capterra shows 25 products per page.

## `minReviews` (type: `integer`):

Skip products with fewer reviews than this. Use it to keep only established vendors.

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

Skip products rated below this (0 to 5).

## `findWebsites` (type: `boolean`):

Look up each vendor's own website and domain, labelled 'high' or 'review' confidence. Costs extra per website found (see the Pricing tab). Turn off to pay for products only.

## `findEmails` (type: `boolean`):

Find public contact emails, phones and social profiles on each vendor's website. Turns on 'Find vendor websites' automatically. Runs the Website Email & Contact Scraper, billed on its own per website where emails are found.

## `emailFilter` (type: `string`):

'Outreach inboxes only' keeps sales, partnership, info@ and named-person inboxes and drops jobs@, noreply-style addresses.

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

Capterra blocks datacenter IPs. US residential proxies work best and are the default.

## Actor input object example

```json
{
  "categoryUrls": [
    "https://www.capterra.com/project-management-software/"
  ],
  "maxProductsPerCategory": 100,
  "minReviews": 0,
  "minRating": 0,
  "findWebsites": true,
  "findEmails": false,
  "emailFilter": "outreach",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `products` (type: `string`):

One row per product: name, vendor, domain, emails, rating, review count and category.

## `allFields` (type: `string`):

Every field for each product, including sub-ratings, review counts by company size, features, phones and socials.

# 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 = {
    "categoryUrls": [
        "https://www.capterra.com/project-management-software/"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("avoca_code/capterra-software-vendors-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 = {
    "categoryUrls": ["https://www.capterra.com/project-management-software/"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("avoca_code/capterra-software-vendors-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 '{
  "categoryUrls": [
    "https://www.capterra.com/project-management-software/"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call avoca_code/capterra-software-vendors-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,avoca_code/capterra-software-vendors-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/2JzTjoP80N2Y1RLNU/builds/h1ZiJou4TOcmpE24m/openapi.json
