# Gartner Reviews Scraper (`solidcode/gartner-reviews-scraper`) Actor

\[💰 $0.85 / 1K] Extract verified B2B software reviews from Gartner Peer Insights — ratings, headlines, summaries, reviewer roles, industries, company sizes (USD revenue bands), and deployment regions. Filter by rating, company size, industry, job function, region, language, and date.

- **URL**: https://apify.com/solidcode/gartner-reviews-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** Developer tools, Automation, Lead generation
- **Stats:** 15 total users, 6 monthly users, 97.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.85 / 1,000 results

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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Gartner Reviews Scraper

Pull verified B2B software reviews from Gartner Peer Insights at scale — star ratings, full headlines and summaries, reviewer job titles, industries, company revenue bands, partner-vs-end-user labels, and review dates for every product on the platform. Built for competitive intelligence teams, SaaS marketers, and enterprise sales analysts who need IT-decision-maker review data without copy-pasting one Gartner page at a time.

### Why This Scraper?

- **Three input modes, no URL hand-crafting** — paste full Gartner review URLs, drop in product slugs like `salesforce-sales-cloud`, or supply a vendor slug like `microsoft` to auto-discover every product that vendor ships on Peer Insights.
- **Vendor sweep in a single run** — point the actor at one vendor slug and it enumerates every product page under that vendor (Microsoft alone fans out to 170+ products) and harvests reviews across all of them.
- **Five company-size bands keyed to revenue, not headcount** — Gartner uniquely segments reviewers by USD revenue (`Under 50M`, `50M – 1B`, `1B – 10B`, `10B+`, `Gov't / Public Sector / Education`), so you can isolate enterprise buyers from SMB voice in one filter.
- **21 industry codes and 28 reviewer-function codes resolved by name** — type `Banking`, `Healthcare`, or `Engineering` and the actor maps the free text to Gartner's internal industry/function codes for you.
- **Four deployment regions with native server-side filtering** — North America, EMEA, Asia/Pacific, and Latin America are pushed straight to Gartner's API so you only pay for rows that match.
- **Three reviewer cohorts, isolated on demand: everyone, end users only, or partners only** — every row is labelled `partner` or `end-user` from Gartner's own flag on the review, not inferred from your filter, so an unfiltered run still tells you which reviews came through a vendor-partner program. A 45-review sweep of Microsoft Teams comes back 38 end-user and 7 partner. Partner-only is the rare slice worth naming: 17 of 6,328 reviews on Zoom Meetings, 97 of 2,548 on Salesforce Sales Cloud.
- **Five sort orders shipped exactly as Gartner ranks them** — Most recent, Most helpful, Highest rated, Lowest rated, and Oldest first, so you can reproduce any Gartner view from the input panel.
- **ISO 8601 dates plus original review language** — every row carries `date` in `YYYY-MM-DD` form and a `reviewLanguage` field across 10 supported languages (English through Chinese Simplified), ready for BI and locale-aware analysis.
- **Pre-translated content fields surfaced when Gartner provides them** — `preTranslatedHeadline` and `preTranslatedSummary` come through alongside the originals so multilingual datasets stay aligned.

### Use Cases

**Competitive Intelligence**

- Track sentiment shifts on a competitor's flagship product across quarters
- Compare your win/loss themes against verified buyer reviews of the competing vendor
- Detect new feature complaints surfacing in 1-star and 2-star reviews
- Benchmark net rating across an entire competitor catalog by sweeping a vendor slug

**SaaS Marketing & Demand Generation**

- Mine reviewer job titles and industries for verbatim quotes to use in ad creative
- Identify which enterprise revenue bands rate your product highest and target them in ABM
- Map reviewer roles (IT, Finance, Marketing, Operations) to refine ICP segmentation
- Pull headline-and-summary pairs for case-study lead lists

**Product & Customer Research**

- Categorize critical reviews by reviewer industry to spot vertical-specific gaps
- Tag complaints by company size to separate SMB friction from enterprise blockers
- Track headline themes for new feature launches by filtering on `dateFrom`
- Surface deployment-region-specific issues (EMEA vs. APAC adoption signals)

**Sales & Account Intelligence**

- Pre-call research: pull every Gartner review from a target account's industry and size band
- Identify advocate vs. detractor accounts among enterprise reviewers
- Build verified-buyer testimonial libraries grouped by vertical
- Surface objection themes that match a prospect's profile before a discovery call

**Investment & Market Research**

- Score vendor traction by review velocity and average rating over time
- Compare review distributions across categories to size emerging software markets
- Build sentiment time series for due diligence on private SaaS acquisitions

### Getting Started

#### Simplest Run

One product slug, default of 100 reviews:

```json
{
    "productSlugs": ["salesforce-sales-cloud"]
}
```

#### Filter to Enterprise IT Reviewers

Pull only 5-star, North-America-deployed reviews from large enterprises in IT Services:

```json
{
    "productSlugs": ["hubspot-marketing-hub"],
    "minRating": "5",
    "companySize": ["1b_10b", "10b_plus"],
    "industries": ["IT Services"],
    "regions": ["north_america"],
    "reviewerType": "end-user",
    "sortBy": "highest-rated",
    "maxResults": 50
}
```

#### Sweep an Entire Vendor Catalog

Discover every product Microsoft ships on Peer Insights and pull the 25 most-helpful reviews from each:

```json
{
    "vendorSlugs": ["microsoft"],
    "sortBy": "most-helpful",
    "maxResults": 25
}
```

#### Paste Gartner URLs Directly

Supports canonical category-and-vendor URLs and short product URLs. Filters embedded in the URL win for that URL:

```json
{
    "startUrls": [
        "https://www.gartner.com/reviews/market/sales-force-automation-platforms/vendor/salesforce/product/sales-cloud",
        "https://www.gartner.com/reviews/vendor/microsoft"
    ],
    "dateFrom": "2026-01-01",
    "maxResults": 200
}
```

### Input Reference

#### What to Scrape

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `startUrls` | string\[] | `[]` | Paste Gartner Peer Insights URLs — canonical review listing pages (with or without filters), short product URLs, or vendor URLs. Filters embedded in the URL take precedence for that URL. |
| `productSlugs` | string\[] | `[]` | Gartner product slugs like `salesforce-sales-cloud`. The actor builds the URL for you. |
| `vendorSlugs` | string\[] | `[]` | Gartner vendor slugs like `microsoft`. The actor enumerates every product page under the vendor and collects reviews across all of them. |
| `maxResults` | integer | `100` | Maximum reviews per input item (URL, product, or vendor). Set to `0` to fetch every available review. |

#### Filters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `minRating` | select | `No filter` | Only include reviews with this overall rating or higher. Options: `No filter`, `1 star and above`, `2 stars and above`, `3 stars and above`, `4 stars and above`, `5 stars only`. |
| `companySize` | select\[] | `[]` | Reviewer's company revenue band: `Under 50M USD`, `50M – 1B USD`, `1B – 10B USD`, `10B+ USD`, `Gov't / Public Sector / Education`. Multi-select; empty = all. |
| `industries` | string\[] | `[]` | Free-text industry names (`Banking`, `Healthcare`, `Manufacturing`, `Retail`, `IT Services`). Matched case-insensitively against Gartner's 21 industry codes. |
| `roles` | string\[] | `[]` | Reviewer job functions (`IT`, `Finance`, `Marketing`, `Engineering`, `Operations`, `Sales`). Matched case-insensitively against Gartner's 28 function codes. |
| `regions` | select\[] | `[]` | Deployment regions: `North America`, `Europe, Middle East and Africa`, `Asia / Pacific`, `Latin America`. |
| `reviewerType` | select | `null` | Who wrote the review: `Everyone (end users and partners)`, `End users only`, or `Partners only`. The only way to isolate the partner cohort on its own. |
| `includePartnerReviews` | boolean | `true` | Simple on/off switch for the partner cohort. Leave it on for both, turn it off for end users only. Ignored when `reviewerType` is set. |
| `dateFrom` | date | `null` | Earliest review date to include (`YYYY-MM-DD`). |
| `dateTo` | date | `null` | Latest review date to include (`YYYY-MM-DD`). |

#### Advanced

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `sortBy` | select | `Most recent` | How Gartner orders reviews before collection: `Most recent`, `Most helpful`, `Highest rated`, `Lowest rated`, `Oldest first`. |
| `language` | select | `Any language` | Keep only reviews originally written in this language. Options: `Any language`, `English`, `German`, `French`, `Spanish`, `Italian`, `Portuguese`, `Dutch`, `Japanese`, `Korean`, `Chinese (Simplified)`. |

### Output

One review per row. Empty values are dropped so every row stays clean. The sample below is from a
run narrowed to North America, which is why it carries a `regions` value.

```json
{
    "id": "6639926",
    "productName": "Salesforce Sales Cloud",
    "productSlug": "salesforce-sales-cloud",
    "rating": 4,
    "headline": "powerful and scalable CRM with strong analytics, but requires investment and expertise",
    "summary": "gives you a powerful and highly customizable CRM Platform that supports complex sales processes and large scale operations",
    "date": "2026-05-04",
    "jobTitle": "Data Analyst And Process Improvement",
    "industryName": "Retail",
    "companySize": "<50M USD",
    "reviewerType": "end-user",
    "regions": ["North America"],
    "incentiveCode": 1,
    "sourceCode": 2,
    "reviewLanguage": "en",
    "hasPreTranslatedContent": false,
    "url": "https://www.gartner.com/reviews/review/6639926"
}
```

#### Output Fields

| Field | Type | Description |
|-------|------|-------------|
| `id` | string | Gartner review ID (primary key). |
| `productName` | string | Product reviewed, as displayed on Gartner. |
| `productSlug` | string | Gartner SEO slug for the product (e.g., `salesforce-sales-cloud`). |
| `marketSlug` | string | Gartner market slug when known (e.g., `sales-force-automation-platforms`). |
| `rating` | number | Overall rating, 1–5. |
| `headline` | string | Reviewer-supplied headline. |
| `summary` | string | Reviewer-supplied summary / overall comment. |
| `date` | string | Submission date in ISO 8601 `YYYY-MM-DD` form. |
| `jobTitle` | string | Reviewer's job title. |
| `industryName` | string | Reviewer's industry (e.g., `IT Services`, `Banking`). |
| `companySize` | string | Reviewer's company revenue band (e.g., `1B-10B USD`). |
| `reviewerType` | string | `end-user` or `partner`, taken from Gartner's own partner flag on that review — accurate even when you leave both cohorts switched on. |
| `regions` | string\[] | The reviewer's region, and only when it is certain: set when you narrow the run to exactly one region (Gartner then returns only reviews from it). Left empty otherwise, because Gartner does not publish a region on individual reviews. Available in the full dataset rather than the preview table, since it stays empty on runs that span every region. |
| `incentiveCode` | integer | Gartner internal incentive code, raw. |
| `sourceCode` | integer | Gartner internal source code, raw. |
| `reviewLanguage` | string | Original language code (`en`, `de`, `fr`, `es`, `it`, `pt`, `nl`, `ja`, `ko`, `zh-CN`). |
| `hasPreTranslatedContent` | boolean | `true` when Gartner ships a Gartner-translated version alongside the original. |
| `preTranslatedHeadline` | string | Gartner's translated headline (present only when `hasPreTranslatedContent: true`). |
| `preTranslatedSummary` | string | Gartner's translated summary (present only when `hasPreTranslatedContent: true`). |
| `url` | string | Permalink to the review on Gartner Peer Insights. |

### Tips for Best Results

- **Use `vendorSlugs` for category sweeps.** One vendor slug fans out to every product the vendor sells on Peer Insights — that's the fastest way to build a competitor catalog without listing 170+ product slugs by hand.
- **Set `maxResults` per input, not globally.** The cap applies to each URL, product slug, or vendor slug individually, so a vendor sweep with `maxResults: 50` returns 50 reviews per product the vendor ships, not 50 total.
- **Filter at Gartner, not after.** `minRating`, `companySize`, `industries`, `roles`, `regions`, and `reviewerType` are all sent server-side — you only pay for rows that match. Post-filtering in your warehouse wastes results.
- **Sort by `Most helpful` for ICP research.** Gartner's helpful-vote signal surfaces the reviews other IT decision-makers found most credible, which is closer to social proof than chronological order.
- **Pair `dateFrom` with `sortBy: most-recent` to track new launches.** Gartner only treats date-from cleanly as "last twelve months" — setting `dateFrom` to a date within the past year unlocks Gartner's native fast filter and significantly cuts run time.
- **Industries are matched case-insensitively by substring.** Typing `Health` will hit `Healthcare`; typing `IT` will hit `IT Services`. Use plain English instead of Gartner's numeric codes.
- **Use `language: en` to drop translated reviews from non-English markets.** Gartner returns the original language code on every row, so language-filtering early keeps your sentiment models from drifting on machine-translated text.

### Pricing

**$0.85 per 1,000 results** — undercuts the leading Gartner actor on the Apify store and bills one review = one result, no compute charges.

| Results | Estimated Cost |
|---------|----------------|
| 100 | $0.085 |
| 1,000 | $0.85 |
| 10,000 | $8.50 |
| 100,000 | $85.00 |

No compute charges — you only pay per result returned. A "result" is any review row in the output dataset. Platform fees (storage, transfer) depend on your Apify plan.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new results
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This actor is designed for legitimate market research, competitive intelligence, and product analysis. Users are responsible for complying with applicable laws and Gartner Peer Insights' terms of service. Do not use extracted review content for spam, harassment, attribution-stripped republication, or any illegal purpose. Reviews are personal opinions of identified IT professionals — treat them accordingly when quoting in derivative work.

# Actor input Schema

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

Paste one or more Gartner Peer Insights URLs — canonical review listing pages (with or without filters in the URL), short product URLs, or vendor URLs. Examples: `https://www.gartner.com/reviews/market/crm-customer-engagement-center/vendor/salesforce/product/sales-cloud` or `https://www.gartner.com/reviews/vendor/microsoft`. Filters embedded in the URL take precedence over the Filters section below for that URL.

## `productSlugs` (type: `array`):

Alternative to URLs: paste Gartner product slugs (e.g., `salesforce-sales-cloud`, `hubspot-marketing-hub`). The actor builds the URL for you. Find the slug at the end of the product page URL on Gartner.

## `vendorSlugs` (type: `array`):

Paste Gartner vendor slugs (e.g., `salesforce`, `microsoft`) to collect reviews across every product the vendor sells on Peer Insights.

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

Maximum number of reviews to fetch per URL, product, or vendor. Set to 0 to fetch every available review. This counts reviews you actually receive — anything dropped by the language or date filters doesn't use up your allowance.

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

Only include reviews with this overall rating or higher. Leave empty for no rating filter.

## `companySize` (type: `array`):

Only include reviews from companies in these revenue bands. Leave empty for all sizes. (Gartner uses USD revenue bands, not employee count.)

## `industries` (type: `array`):

Free-text industry names matched case-insensitively against Gartner's 21 industries. Supported: Banking, Construction, Consumer Goods, Education, Energy and Utilities, Finance (non-banking), Government, Hardware, Healthcare and Biotech, Insurance (except health), IT Services, Manufacturing, Media, Miscellaneous, Real Estate, Retail, Services (non-government), Software, Telecommunications, Transportation, Travel and Hospitality. Unknown names will surface a specific error listing every valid option.

## `roles` (type: `array`):

Reviewer job functions matched case-insensitively against Gartner's 28 functions. Common picks: IT, Sales, Marketing, Finance, Operations, Engineering, Customer Service and Support, Data and Analytics, Human Resources, Product Management. Leave empty for all roles. Unknown names will surface a specific error listing every valid option.

## `regions` (type: `array`):

Only include reviews from deployments in these regions.

## `reviewerType` (type: `string`):

Who wrote the review. Gartner labels every review as written either by an end user of the product or by a vendor partner — a reseller or implementation partner, usually reviewing through an incentivized program. Pick "Partners only" to isolate that cohort on its own: it is a small, high-signal slice (17 of 6,328 reviews on Zoom Meetings, 97 of 2,548 on Salesforce Sales Cloud). Leave this empty to use the Include Partner / Incentivized Reviews switch below instead.

## `includePartnerReviews` (type: `boolean`):

Simple on/off switch: leave it on to get end-user and partner reviews together, turn it off for end-user reviews only. Ignored whenever Reviewer Type above is set, which is also the only way to get partner reviews on their own.

## `dateFrom` (type: `string`):

Only include reviews submitted on or after this date (YYYY-MM-DD). When this date falls within the last 12 months, the actor automatically uses Gartner's `inLastTwelveMonths` fast filter — this can significantly speed up runs but cannot reach reviews older than 12 months. Only reviews inside the date range count towards your maximum.

## `dateTo` (type: `string`):

Only include reviews submitted on or before this date (YYYY-MM-DD). Sorting by newest or oldest first lets the actor stop as soon as it leaves your date range instead of reading the whole review history.

## `sortBy` (type: `string`):

The order reviews arrive in. `Most recent`, `Most helpful` and `Oldest first` are Gartner's own orderings. `Highest rated` and `Lowest rated` are delivered by collecting one star rating at a time (5-star first, or 1-star first), newest first inside each rating, so the rows are strictly ordered by score.

## `language` (type: `string`):

Only keep reviews originally written in this language (e.g., `en`, `de`, `fr`, `es`). Leave as `Any language` to include all. Gartner has no language search of its own, so reviews are checked one by one as they come in and only matching ones count towards your maximum. If a language is rare for a product, the run stops after 50 pages in a row with no match and tells you it returned fewer reviews than you asked for.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.gartner.com/reviews/market/sales-force-automation-platforms/vendor/salesforce/product/sales-cloud"
  ],
  "productSlugs": [],
  "vendorSlugs": [],
  "maxResults": 100,
  "companySize": [],
  "industries": [],
  "roles": [],
  "regions": [],
  "includePartnerReviews": true,
  "sortBy": "most-recent",
  "language": "any"
}
```

# Actor output Schema

## `reviews` (type: `string`):

Table of reviews with rating, headline, reviewer profile, industry, company size, and reviewer type.

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "startUrls": [
        "https://www.gartner.com/reviews/market/sales-force-automation-platforms/vendor/salesforce/product/sales-cloud"
    ],
    "productSlugs": [],
    "vendorSlugs": [],
    "maxResults": 100,
    "companySize": [],
    "industries": [],
    "roles": [],
    "regions": [],
    "includePartnerReviews": true,
    "sortBy": "most-recent",
    "language": "any"
};

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

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

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

```

## Python example

```python
from apify_client import ApifyClient

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

# Prepare the Actor input
run_input = {
    "startUrls": ["https://www.gartner.com/reviews/market/sales-force-automation-platforms/vendor/salesforce/product/sales-cloud"],
    "productSlugs": [],
    "vendorSlugs": [],
    "maxResults": 100,
    "companySize": [],
    "industries": [],
    "roles": [],
    "regions": [],
    "includePartnerReviews": True,
    "sortBy": "most-recent",
    "language": "any",
}

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

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [
    "https://www.gartner.com/reviews/market/sales-force-automation-platforms/vendor/salesforce/product/sales-cloud"
  ],
  "productSlugs": [],
  "vendorSlugs": [],
  "maxResults": 100,
  "companySize": [],
  "industries": [],
  "roles": [],
  "regions": [],
  "includePartnerReviews": true,
  "sortBy": "most-recent",
  "language": "any"
}' |
apify call solidcode/gartner-reviews-scraper --silent --output-dataset

```

## MCP server setup

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

```

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

## OpenAPI specification

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