# Capterra Scraper - Software Reviews, Ratings & Leads (`scrapesage/capterra-scraper`) Actor

Scrape Capterra software products by category, keyword or URL: star rating, review count, ease-of-use, service, features and value ratings, pricing plans, features, integrations and verified user reviews. Monitor mode. Export CSV, JSON, Excel. Independent tool, not affiliated with Capterra.

- **URL**: https://apify.com/scrapesage/capterra-scraper.md
- **Developed by:** [Scrape Sage](https://apify.com/scrapesage) (community)
- **Categories:** Lead generation, Agents, Integrations
- **Features:** Limited permissions
- **Stats:** 10 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.79 / 1,000 software 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 Ratings, Pricing & Reviews

> **Disclaimer:** This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by G2.com, Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. "Capterra" is referenced only to describe the publicly available website this Actor collects data from.

Scrape **Capterra's software directory** at scale: every product in any of its ~1,000 categories, in Capterra's own ranking, with the **overall star rating, the four sub-ratings** (ease of use, customer service, features, value for money), **review counts** (all time, last 6 and 12 months, by company size), the **star breakdown**, vendor, logo, descriptions, features with their ratings, free trial and free version. Switch on product details for **every pricing plan**, deployment / support / training options, integrations, alternatives, awards and Shortlists, and attach Capterra's **verified user reviews** with pros, cons and reviewer profile.

Category pages return 25 to 50 products per request, so a 100-product category export finishes in seconds. No login, no API key, no browser to babysit.

### What can you get from Capterra?

| Data | Category listing | + Product details | + Reviews |
|---|:-:|:-:|:-:|
| Product, vendor, logo, Capterra URL, category, rank | ✅ | ✅ | ✅ |
| Overall rating + **ease of use / customer service / features / value for money** | ✅ | ✅ | ✅ |
| Review count, **reviews in the last 6 and 12 months**, reviews by company size, 1-5 star breakdown | ✅ | ✅ | ✅ |
| Likelihood to recommend, Capterra Shortlist badge, sponsored-listing flag | ✅ | ✅ | ✅ |
| Short and full description, feature list, feature ratings, free trial / free version | ✅ | ✅ | ✅ |
| Starting price and **every pricing plan** (price, billing period, pricing model, plan features) | page-1 cards | ✅ | ✅ |
| Awards, every Shortlist the product is on, review sentiment, pros & cons themes | | ✅ | ✅ |
| Deployment, support, training options, target company sizes, target market | | ✅ | ✅ |
| Integrations, top alternatives (with their ratings), FAQ, main categories | | ✅ | ✅ |
| **Full reviews**: title, date, all sub-ratings, pros, cons, comments, reasons for choosing / switching, products considered, reviewer role / industry / company size / time used, incentive disclosure, vendor reply | | | ✅ |

### Use cases

- **Competitive intelligence** - pull a whole category with ratings, sub-ratings and review momentum to see who is winning, who is slipping and who is buying sponsored placement.
- **Software selection** - build comparison tables of pricing plans, deployment options, support channels and integrations across dozens of tools.
- **Review and sentiment analysis** - collect verified reviews with pros, cons, reasons for switching and the products buyers compared, ready for an LLM or a BI tool.
- **Market maps and sizing** - every category, how many products it holds, and how reviews split between small business, mid-size and enterprise buyers.
- **Vendor prospecting** - list the software vendors in a category with their rating, review volume, recent review growth and Shortlist status, then enrich them with the tool of your choice.
- **Monitoring** - schedule the actor with monitor mode to receive only new entrants and products whose rating, review count or price changed.

### How to scrape Capterra

1. Open the actor and add one or more **Categories**: the slug from the category URL (`project-management-software`), a category name (`CRM`, `Email Marketing`) or a full Capterra category URL. Not sure of the name? Put keywords in **Search terms** (`video conferencing`) and the closest Capterra category is used.
2. Or paste **Start URLs**: Capterra product pages (`/p/79104/Smartsheet/`) or category pages. Lists can be imported from a text file or Google Sheet.
3. Tick **Include product details** and/or **Include reviews** if you need them, set **Max results**, and click **Start**.
4. Download the dataset as Excel, CSV, JSON or XML, or pull it over the API.

### Input examples

A category export, Capterra's ranking order:

```json
{
    "categories": ["project-management-software", "CRM"],
    "maxResults": 200
}
```

Keywords matched to Capterra's categories, with product details:

```json
{
    "searchTerms": ["email marketing", "payroll"],
    "includeProductDetails": true,
    "maxResults": 50
}
```

Specific products with their 25 newest reviews:

```json
{
    "startUrls": [{ "url": "https://www.capterra.com/p/79104/Smartsheet/" }, { "url": "https://www.capterra.com/p/147657/monday-com/" }],
    "includeReviews": true,
    "reviewsSort": "newest"
}
```

A scheduled watch on a category (only new or changed products are returned):

```json
{
    "categories": ["help-desk-software"],
    "monitorMode": true,
    "maxResults": 100
}
```

**Input fields**

- **categories** - category slugs, names or URLs. Shorthands such as `crm-software`, `hr-software`, `erp` or `pos` work too.
- **searchTerms** - keywords; each is matched to the closest Capterra category name (the run's status message says which).
- **startUrls** / **urlsFromFile** - product, reviews, pricing or category URLs, typed, uploaded or linked as a file.
- **maxResults** *(default 100)* - products to return, shared fairly between categories. `0` = the whole category.
- **includeProductDetails** - reads each product's page (pricing plans, options, integrations, alternatives...).
- **includeReviews**, **maxReviewsPerProduct** *(default 25, up to 100)*, **reviewsSort** (`relevance` = Capterra's default order, `newest` = the 25 most recent).
- **minRating**, **minReviews** - filters, applied before any product is billed.
- **monitorMode**, **monitorKey** - return only new or changed products across runs.

### Output

One record per product (`type: "product"`), always with the same columns; a value Capterra does not publish is `null`. Product-detail fields appear when product details or reviews are on. A trimmed example:

```json
{
    "type": "product",
    "productId": "143607",
    "name": "kintone",
    "vendorName": "Cybozu",
    "url": "https://www.capterra.com/p/143607/kintone/",
    "category": "CRM",
    "rank": 1,
    "categoryProductCount": 2318,
    "rating": 4.7,
    "reviewCount": 153,
    "ratingEaseOfUse": 4.5,
    "ratingCustomerService": 4.6,
    "ratingFeatures": 4.4,
    "ratingValueForMoney": 4.6,
    "likelihoodToRecommend": 87,
    "ratingDistribution": { "fiveStar": 111, "fourStar": 35, "threeStar": 4, "twoStar": 3, "oneStar": 0 },
    "reviewsByCompanySize": { "smallBusiness": 109, "midSizeBusiness": 20, "enterprise": 13 },
    "hasFreeTrial": true,
    "hasFreeVersion": false,
    "startingPrice": "$24.00 (Per User, Per Month)",
    "pricingPlans": [{ "name": "Professional Plan", "price": 24, "currency": "USD", "frequency": "Per Month", "model": "Per User", "features": ["No-code development", "Open API", "Mobile Access"] }],
    "onCapterraShortlist": false,
    "isSponsored": true,
    "leadScore": 61,
    "detailFetched": true,
    "deploymentOptions": ["Cloud, SaaS, Web-Based", "Desktop Mac", "Desktop Windows", "Mobile Android", "Mobile iPhone"],
    "supportOptions": ["Email/Help Desk", "FAQs/Forum", "Knowledge Base", "Phone Support", "Chat"],
    "integrationsCount": 28,
    "alternatives": [{ "name": "Bigin by Zoho CRM", "rating": 4.7, "reviewCount": 744, "url": "https://www.capterra.com/p/204998/Bigin-by-Zoho-CRM/" }],
    "reviewSentiment": { "positivePercent": 95, "neutralPercent": 3, "negativePercent": 2 },
    "reviewsFetched": 25,
    "reviews": [{
        "title": "Low-code solution for project management",
        "date": "2021-10-09",
        "rating": 4,
        "likelihoodToRecommend": 8,
        "pros": "The low-code aspect of creation is the most compelling aspect we have found...",
        "cons": "Pricing is a bit of a challenge to quickly understand after 5 users...",
        "reviewerJobTitle": "Research Leader",
        "reviewerIndustry": "Information Technology and Services",
        "reviewerCompanySize": "51-200 employees",
        "timeUsed": "Less than 6 months",
        "incentive": "Nominal gift card",
        "vendorResponse": { "text": "Thank you for your review!...", "date": "2022-01-20" }
    }],
    "scrapedAt": "2026-10-09T01:54:53.572Z"
}
```

`leadScore` is a 0-100 prominence score built from the rating, review volume, recent review growth, likelihood to recommend, Shortlist status and pricing transparency. Reviews arrive nested in `reviews`; the dataset's **Reviews, one per row** view (or `unwind=reviews` on the dataset API) turns them into one row per review.

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

This Actor uses Apify's **pay-per-event** pricing: you pay for the products it delivers, with no monthly rental, and the proxy traffic is included. From 23 October 2026 each run also carries Apify's standard **run-start fee**, charged once per run per GB of run memory.

- **Software product** - charged once per product returned.
- **Product details add-on** - charged once per product when "Include product details" or "Include reviews" is on. It covers the product page and every review attached to that product (up to 100).

The current price of each event is shown on the **Pricing** tab. Products removed by your filters are never charged, in monitor mode unchanged products are never charged, and you can set a maximum total charge on the run for a hard cap.

### Automate & schedule

Run this Actor on autopilot and pull results into your own stack:

- **[Apify API](https://docs.apify.com/api/v2)** - start runs, fetch datasets and manage schedules over REST.
- **[apify-client for JavaScript](https://docs.apify.com/api/client/js/)** and **[apify-client for Python](https://docs.apify.com/api/client/python/)** - official SDKs.
- **[Schedules](https://docs.apify.com/platform/schedules)** - run it hourly, daily or weekly and keep your dataset current.
- **[Webhooks](https://docs.apify.com/platform/integrations/webhooks)** - trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.

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

const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });

const run = await client.actor('scrapesage/capterra-scraper').call({
    "categories": [
        "project-management-software"
    ],
    "maxResults": 10,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} records`);
```

### Integrate with any app

Connect the dataset to thousands of apps - no code required:

- **[Make](https://docs.apify.com/platform/integrations/make)** - multi-step automation scenarios.
- **[Zapier](https://docs.apify.com/platform/integrations/zapier)** - push new records straight into your CRM or spreadsheet.
- **[Slack](https://docs.apify.com/platform/integrations/slack)** - get notified when a scheduled run finds something new.
- **[Google Drive / Sheets](https://docs.apify.com/platform/integrations/drive)** - auto-export every run to a spreadsheet.
- **[Airbyte](https://docs.apify.com/platform/integrations/airbyte)** - pipe results into your data warehouse.
- **[GitHub](https://docs.apify.com/platform/integrations/github)** - trigger runs from commits or releases.

### Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. You can call this Actor from Claude, ChatGPT or any agent framework through the **[Apify MCP server](https://docs.apify.com/platform/integrations/mcp)** - describe the data you need and let the assistant run this Actor for you.

### Agent-ready: autonomous payments (x402 & Skyfire)

This actor is **agent-ready**: AI agents can discover it, run it, and **pay for it autonomously**, with no Apify account and no human in the loop. It uses [pay-per-event](https://docs.apify.com/platform/actors/publishing/monetize/pay-per-event) pricing and [limited permissions](https://docs.apify.com/platform/actors/development/permissions), so it qualifies for Apify's agentic-payment standards:

- **[x402](https://docs.apify.com/platform/integrations/x402)**: an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp), with no account and no API key.
- **[Skyfire](https://docs.apify.com/platform/integrations/skyfire)**: agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

### Tips

- **Whole categories**: set `maxResults` to `0` and raise the run timeout - Capterra's Project Management category alone lists about 1,900 products.
- **Exact category names**: Capterra's own names work as typed (`Help Desk`, `Point of Sale`). The run's status message tells you which category each keyword was matched to.
- **Fast vs rich**: the listing run already carries every rating and review count. Turn on product details only when you need pricing plans, deployment and support options, integrations or alternatives.
- **Reviews**: `relevance` follows Capterra's default order and goes up to 100 per product; `newest` returns the 25 most recent, ideal for a weekly sentiment check.
- **Monitoring**: pair monitor mode with a [Schedule](https://docs.apify.com/platform/schedules). Each run checks the top `maxResults` products of every category and returns only what is new or changed, with a `changes` list on each row.

### FAQ

**Do I get the sub-ratings for every product?** Yes. Ease of use, customer service, features and value for money come with every product that has reviews, straight from the category listing.

**Can I get the vendor's website or e-mail?** No. Capterra does not publish vendor websites: its "Visit website" buttons are paid-click links that this Actor does not follow. You get the vendor name, the product's Capterra URL and its ratings, which you can enrich with a contact tool.

**Which reviews do I get?** Capterra's verified reviews, with the reviewer's job title, industry, company size and how long they used the product. Reviewer names appear as Capterra shows them (first name and initial) and are left out for anonymous reviews.

**How is it billed?** Per product delivered, plus the product details add-on when you switch on details or reviews. From 23 October 2026 each run also carries Apify's standard run-start fee (per GB of run memory). There is no monthly rental. See the Pricing tab for the current prices.

**Can I export to Google Sheets, CSV or Excel?** Yes - one click in the dataset view, or automatically after every run with the [Google Drive integration](https://docs.apify.com/platform/integrations/drive).

**Is it legal to scrape Capterra?** This Actor collects publicly available pages only, without logging in. You are responsible for using the output lawfully, including data-protection law for the reviewer details and the source website's terms. See **Data & lawful use** and the **Disclaimer** below.

**Is this an official Capterra tool?** No. It is an independent, third-party Actor with no affiliation to, endorsement by or sponsorship from Capterra or its owner. See the **Disclaimer** below.

### Data & lawful use

This Actor reads only what Capterra publishes to logged-out visitors: it does not log in, use cookies or session tokens, create accounts, or reach anything behind a sign-in. Names, handles, bios and engagement figures are public, but they relate to identifiable people, so treat the output as personal data. If you are in the EU or UK you are the data controller for what you do with it: have a lawful basis (usually legitimate interest for research, marketing analytics or B2B prospecting), honour access and deletion requests, and do not use the output for spam or unsolicited messaging.

Under [Apify's Standard Actor Contract](https://docs.apify.com/legal/standard-actor-contract), which governs your use of this Actor, you are the controller of any personal data in your input and output and scrapesage acts only as your processor: that data is processed solely to run your job, written only to your own Apify storage, never used for any other purpose and never shared onward. If you need help with a data-subject request that involves this Actor's output, open an issue on the Issues tab.

### Disclaimer

**This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by G2.com, Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.**

"Capterra" and any related marks are the property of their respective owners and are used here only in a descriptive, nominative sense - to identify the publicly accessible website from which this Actor collects data. This Actor is not an official Capterra product, is not authorised or certified by G2.com, Inc., and does not distribute Capterra software. It collects only publicly available information; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the terms of the source website.

### Need help?

Open an issue on the Actor's **Issues** tab, or visit the [Apify help center](https://help.apify.com/). Feature requests are welcome - this Actor is actively maintained.

# Actor input Schema

## `categories` (type: `array`):

Capterra categories to scrape - every product listed is returned in Capterra's own ranking, with its full ratings. Use the slug from the category URL <code>capterra.com/<b>project-management-software</b>/</code>, a full category URL, or the category's name (<code>CRM</code>, <code>Email Marketing</code>, <code>Payroll</code>). Common shorthands work too: <code>crm-software</code>, <code>hr-software</code>, <code>erp</code>, <code>pos</code>, <code>lms</code>.

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

Keywords such as <code>video conferencing</code>, <code>payroll</code> or <code>ai chatbot</code> when you don't know the category slug. Each keyword is matched to the closest of Capterra's ~1,000 category names and that category is scraped (the run's status message says which category was used).

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

Capterra URLs: product pages (<code>/p/\<id>/\<slug>/</code>, also their <code>/reviews/</code> and <code>/pricing/</code> pages) and category pages (<code>/\<slug>-software/</code>). Used in addition to the categories and search terms above.

## `urlsFromFile` (type: `string`):

Paste a list of Capterra URLs (one per line), OR one link to a .txt/.csv file, Google Sheet or Google Drive file containing them. Google Sheet/Drive share links are handled automatically.

## `maxResults` (type: `integer`):

Global cap on the number of products returned, shared fairly between your categories. Capterra lists 25 products on a category's first page and 50 on each page after it. 0 = no limit (a whole category, e.g. ~1,900 project-management products). In monitor mode this is the number of top-ranked products checked on every run.

## `includeProductDetails` (type: `boolean`):

Open each product's page to add: every pricing plan with its features, starting-price unit, free trial / free version, credit card requirement, awards and every Capterra Shortlist the product is on, review sentiment, pros & cons themes, deployment / support / training options, target company sizes and market, integrations, top alternatives, FAQ and main categories. Slower (two pages per product) and billed per product (productDetails event).

## `includeReviews` (type: `boolean`):

Attach Capterra's verified user reviews to each product: title, date, overall and sub-ratings, likelihood to recommend, pros, cons, comments, reasons for choosing or switching, products considered, reviewer role / industry / company size / time used, incentive disclosure and the vendor's reply. Opens the product page too (implies 'Include product details') and is billed per product, not per review.

## `maxReviewsPerProduct` (type: `integer`):

How many reviews to attach to each product when 'Include reviews' is on. Up to 100 in Capterra's 'most relevant' order, up to 25 with 'Newest first'.

## `reviewsSort` (type: `string`):

<b>Most relevant</b> = Capterra's default review order (up to 100 per product, every review field). <b>Newest first</b> = the product's 25 most recent reviews, ideal for monitoring (these come without the value-for-money sub-rating and the reviewer's verification details).

## `minRating` (type: `string`):

Keep only products with at least this average rating. Leave on 'All ratings' for every product.

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

Keep only products with at least this many reviews (filters out brand-new or thin products). Leave empty for all.

## `monitorMode` (type: `boolean`):

Remember products across runs and return only NEW products or products whose rating, review count or starting price changed (each row says what changed). Great for watching a category for new entrants and rating moves - pair it with an Apify Schedule.

## `monitorKey` (type: `string`):

Namespace for monitor memory. Use a distinct key per saved search so their states don't collide.

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

Leave this on the default: Capterra only answers residential IP addresses, so the actor uses Apify residential proxies (US) automatically and the proxy traffic is included in the price. If you pick your own proxies or proxy groups, they are tried first and Apify residential takes over whenever Capterra refuses them.

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

How many product / reviews pages to read in parallel when product details or reviews are on. 4-8 is a good balance.

## `enrichVendorContacts` (type: `boolean`):

Retired: Capterra no longer publishes vendor websites (its 'Visit website' buttons are paid-click redirects), so there is nothing to enrich. Accepted for compatibility; never billed.

## `withWebsiteOnly` (type: `boolean`):

Retired: Capterra no longer publishes vendor websites, so this filter can match nothing. A run with it on ends at once with an explanation, before any product is billed.

## `debugMode` (type: `boolean`):

Save the first raw pages to the key-value store for troubleshooting.

## `headful` (type: `boolean`):

Retired: the actor no longer uses a browser. Accepted for compatibility.

## Actor input object example

```json
{
  "categories": [
    "project-management-software",
    "CRM"
  ],
  "searchTerms": [
    "email marketing"
  ],
  "urlsFromFile": "",
  "maxResults": 100,
  "includeProductDetails": false,
  "includeReviews": false,
  "maxReviewsPerProduct": 25,
  "reviewsSort": "relevance",
  "minRating": "",
  "monitorMode": false,
  "monitorKey": "default",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  },
  "maxConcurrency": 6,
  "enrichVendorContacts": false,
  "withWebsiteOnly": false,
  "debugMode": false,
  "headful": true
}
```

# Actor output Schema

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

All scraped Capterra product records as JSON items in the default dataset.

# 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 = {
    "categories": [
        "project-management-software"
    ],
    "urlsFromFile": "",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

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

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapesage/capterra-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/d7Hjh2cGoaZgvHtiU/builds/79LPXwMlDSGKwSwcn/openapi.json
