# G2 + Capterra Review Scraper (`novashieldai/g2-capterra-review-scraper`) Actor

Scrape B2B software reviews from G2 and Capterra. Search products, get ratings, reviews with pros/cons, compare software side by side.

- **URL**: https://apify.com/novashieldai/g2-capterra-review-scraper.md
- **Developed by:** [Ali haydar Karadaş](https://apify.com/novashieldai) (community)
- **Categories:** Lead generation, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

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

## G2 + Capterra Review Scraper

Extract software reviews, product details, and ratings from G2 and Capterra at scale. We built this to be the most reliable software review scraper on the platform -- it pulls structured data from both sites in a single run, so you don't need separate tools for each.

### What does G2 + Capterra Review Scraper do?

This actor scrapes software review platforms (G2 and Capterra) and returns clean, structured data you can use right away. Whether you need to monitor competitor reviews, build a SaaS comparison database, or track sentiment over time, this does the heavy lifting.

It works in four modes. **Search** mode finds software products by keyword across both platforms. **Product** mode pulls full product details including features, pricing, ratings breakdown, integrations, and alternatives. **Reviews** mode extracts individual reviews with author info, pros/cons, star ratings, and timestamps. **Compare** mode lets you put multiple products side by side with structured comparison data.

You can target G2 only, Capterra only, or both at once. Filter reviews by star rating, sort by recency or helpfulness, and paginate through large result sets.

### What data do you get?

- Product name, slug, vendor, category, and description
- Overall rating and total review count
- Pricing info, free trial, and free version availability
- Full feature lists, pros/cons summaries, and rating breakdowns by category
- Integrations, deployment options, supported languages, and alternatives
- Individual review text with pros, cons, title, and date
- Reviewer name, job title, company, company size, and industry
- Helpful vote count, vendor response, features mentioned, and recommendation status
- Source URLs for every data point

### Who is this for?

- **SaaS founders** tracking competitor reviews and feature requests in real time
- **Market researchers** building software comparison databases across categories
- **Sales teams** gathering social proof and objection-handling data from real users
- **Investors** doing due diligence on SaaS companies by analyzing review sentiment
- **Content marketers** creating data-driven comparison articles and buying guides

### How to use it

1. Open the actor in Apify Console and select a mode (search, product, reviews, or compare).
2. Enter your search query, product slug, or comparison slugs depending on the mode.
3. Choose the platform (G2, Capterra, or both) and set any filters you need.
4. Click Start and wait for the run to finish.
5. Download your results as JSON, CSV, or Excel from the Dataset tab.

### Input parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| mode | string | search | Scraping mode: search, product, reviews, or compare |
| query | string | - | Search keywords (e.g., "CRM software") |
| slug | string | - | Product slug or URL for product/reviews mode |
| platform | string | both | Target platform: g2, capterra, or both |
| sort | string | most_recent | Sort reviews: most_recent, most_helpful, highest_rated, lowest_rated |
| starFilter | integer | - | Filter reviews by star rating (1-5) |
| limit | integer | 25 | Maximum results to return (1-100) |
| page | integer | 1 | Page number for pagination (1-20) |
| compareSlugs | array | - | List of product slugs for compare mode |

### Sample output

```json
{
  "id": "rev_8834021",
  "platform": "g2",
  "rating": 4.5,
  "title": "Solid CRM but onboarding takes time",
  "body": "We switched from Salesforce six months ago and the transition was smoother than expected...",
  "pros": "Intuitive pipeline view, great email integration, affordable pricing",
  "cons": "Reporting could be more flexible, mobile app needs work",
  "date": "2026-05-18",
  "author": {
    "name": "Sarah K.",
    "title": "VP of Sales",
    "company": "TechFlow Inc.",
    "company_size": "51-200 employees",
    "industry": "SaaS",
    "verified": true
  },
  "helpful_count": 12,
  "source_url": "https://www.g2.com/products/example-crm/reviews/8834021",
  "features_mentioned": ["Pipeline Management", "Email Integration", "Reporting"],
  "use_case": "Sales Management",
  "time_used": "6-12 months",
  "recommendation": true
}
````

### How much does it cost?

This actor uses a pay-per-result pricing model at **$0.005 per result**. That means 1,000 reviews cost you $5. Apify gives every account $5 in free monthly credits, so you can try it out without paying anything.

### Common questions

**Can I scrape reviews for any software product?**
Yes, as long as the product has a public profile on G2 or Capterra. Just provide the product slug or URL and select the right platform.

**How fresh is the data?**
Every run pulls live data directly from G2 and Capterra. There is no caching -- you always get the latest reviews and ratings.

**What's the difference between search and compare mode?**
Search finds products matching a keyword. Compare takes two or more specific product slugs and returns structured side-by-side data including ratings, features, pros/cons summaries, and pricing.

### Contact & Custom Solutions

Need a custom scraper, higher volume, or a specific integration? We're here to help.

If anything isn't working right or you need support, don't hesitate to reach out.

- Telegram: [t.me/novashield\_dev](https://t.me/novashield_dev)
- Email: novashield.dev@gmail.com

# Actor input Schema

## `mode` (type: `string`):

Mode

## `query` (type: `string`):

Search Query

## `slug` (type: `string`):

Product Slug or URL

## `platform` (type: `string`):

Platform

## `sort` (type: `string`):

Sort Reviews

## `starFilter` (type: `integer`):

Star Filter

## `limit` (type: `integer`):

Max Results

## `page` (type: `integer`):

Page

## `compareSlugs` (type: `array`):

Compare Slugs (comma-separated)

## Actor input object example

```json
{
  "mode": "search",
  "query": "CRM software",
  "platform": "both",
  "sort": "most_recent",
  "limit": 25,
  "page": 1
}
```

# 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 = {
    "query": "CRM software"
};

// Run the Actor and wait for it to finish
const run = await client.actor("novashieldai/g2-capterra-review-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 = { "query": "CRM software" }

# Run the Actor and wait for it to finish
run = client.actor("novashieldai/g2-capterra-review-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 '{
  "query": "CRM software"
}' |
apify call novashieldai/g2-capterra-review-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "G2 + Capterra Review Scraper",
        "description": "Scrape B2B software reviews from G2 and Capterra. Search products, get ratings, reviews with pros/cons, compare software side by side.",
        "version": "1.0",
        "x-build-id": "hgAeJIwlFOXNoDxIH"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/novashieldai~g2-capterra-review-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-novashieldai-g2-capterra-review-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/novashieldai~g2-capterra-review-scraper/runs": {
            "post": {
                "operationId": "runs-sync-novashieldai-g2-capterra-review-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/novashieldai~g2-capterra-review-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-novashieldai-g2-capterra-review-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": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "product",
                            "reviews",
                            "compare"
                        ],
                        "type": "string",
                        "description": "Mode",
                        "default": "search"
                    },
                    "query": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Search Query"
                    },
                    "slug": {
                        "title": "Product Slug or URL",
                        "type": "string",
                        "description": "Product Slug or URL"
                    },
                    "platform": {
                        "title": "Platform",
                        "enum": [
                            "g2",
                            "capterra",
                            "both"
                        ],
                        "type": "string",
                        "description": "Platform",
                        "default": "both"
                    },
                    "sort": {
                        "title": "Sort Reviews",
                        "enum": [
                            "most_recent",
                            "most_helpful",
                            "highest_rated",
                            "lowest_rated"
                        ],
                        "type": "string",
                        "description": "Sort Reviews",
                        "default": "most_recent"
                    },
                    "starFilter": {
                        "title": "Star Filter",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Star Filter"
                    },
                    "limit": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Max Results",
                        "default": 25
                    },
                    "page": {
                        "title": "Page",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Page",
                        "default": 1
                    },
                    "compareSlugs": {
                        "title": "Compare Slugs (comma-separated)",
                        "type": "array",
                        "description": "Compare Slugs (comma-separated)",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
