Gartner.com [$0.9💰] Reviews [Short URLs + Detail Enrichment] avatar

Gartner.com [$0.9💰] Reviews [Short URLs + Detail Enrichment]

Pricing

from $0.90 / 1,000 results

Go to Apify Store
Gartner.com [$0.9💰] Reviews [Short URLs + Detail Enrichment]

Gartner.com [$0.9💰] Reviews [Short URLs + Detail Enrichment]

💰$0.9 per 1,000 results. Extracts structured Gartner review data: ratings, company size, industry, job titles, detailed Q&A sections, vendor comparisons, deployment info, and reviewer demographics. Outputs a comprehensive JSON with 50+ fields per review.

Pricing

from $0.90 / 1,000 results

Rating

5.0

(6)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

4

Bookmarked

106

Total users

14

Monthly active users

10 hours ago

Last modified

Share

Gartner.com Peer Insights Reviews Scraper

How it works

This actor scrapes product reviews from Gartner Peer Insights (gartner.com/reviews). It accepts both canonical URLs (/reviews/market/<market>/vendor/<vendor>/product/<product>/reviews) and short product URLs (/reviews/product/<slug>), forwards query-string filters (review rating, company size, industry, job role, sort), and paginates through all matching reviews. Malformed URLs with missing & separators between query params are auto-repaired. For deep per-review data — Q&A sections, deployment architecture, vendor/market metadata, user demographics — opt in with enrichReviewDetails: true and supply an authenticated Gartner cookie session (Gartner gates /review/view/{id} pages behind login).

Features

Multiple Inputs Supported:

Enhanced URL Parser & API Builder:

  • Intelligently parses complex filter URLs with support for:
    • Company Size Filters: Automatically maps company size values (1-5) to include additional internal IDs
    • Multi-value Filters: Supports pipe (|) and comma (,) separated values for filters like companySize=2|3|4|5|1
    • Review Rating Filters: Handles rating filters like reviewRating=4|5
    • Partner Review Filters: Supports boolean partner review filtering
    • Industry & Function Filters: Parses job roles, industries, and deployment regions
    • Sort Parameters: Preserves sort preferences (-helpfulness, -review_date)
  • Constructs optimized API calls with proper parameter encoding and filter mapping

Pagination and enrichment:

  • Fetches the initial page to get total counts, then requests all reviews.
  • Optionally visits each review page to extract extra details — opt in with enrichReviewDetails: true in input (default false).

Review-detail enrichment requires authentication. Gartner gates /review/view/{id} pages behind login — anonymous proxy requests are redirected to /peer-insights/login with regActivity=read_greater_4_reviews and return an empty SSR HTML shell. To use enrichReviewDetails: true you must supply Gartner credentials (recommended) or a logged-in cookie session.

Three ways to authenticate (in priority order):

  1. gartnerAccounts (recommended): a JSON array of { "email": "...", "password": "..." }. The actor logs in automatically at the start of the run and mints a fresh session — no manual cookie pasting and no expiry problem (sessions die in ~1–2 hours, so pasted cookies go stale fast; auto-login refreshes every run). Supply several accounts to spread load (one is used per run). Logins are cached in a private key-value store and reused for sessionCacheMinutes (default 30) so frequent/scheduled runs don't hammer Gartner's login endpoint. These are YOUR Gartner accounts; credentials are sent only to Gartner's own login endpoint and never stored in plain text in the dataset.

  2. cookieString: paste a raw Cookie: header value. In DevTools, log into gartner.com → Network tab → click any www.gartner.com request → copy the Cookie: request header → paste verbatim. Good for one-off runs; expires within hours.

  3. cookies: a JSON array of {name, value, domain, sameSite} objects (e.g. from a Cookie-Editor extension).

Behaviour when enrichment is requested:

  • With valid cookies: each review yields a merged item with a rich nested reviewDetails object (headline, summary, submitDate, rating, source, upvote, downvote, deploymentArchitecture, partnerReview, user{id,title,industry,companySize,function}, market{id,name,seoName}, vendor{id,name,seoName}, products[…], sections[…] with per-section Q&A and ratingValue, plus a flattened top-level questions array tagged with their source section). Verified live against Zendesk reviews — every field populates.
  • With enrichReviewDetails: true but no credentials/cookies supplied: the actor logs a warning, disables enrichment for the run, and proceeds with the basic-listing scrape only (no wasted proxy traffic).
  • With stale/invalid cookies or a failed login: each detail fetch is detected as auth-gated and logged; the actor pushes the basic listing item (tagged enrichmentError) without rich details — the run still succeeds and delivers data.

Billing with enrichReviewDetails: true: enrichment currently costs the same as basic scraping — $0.90/1k — because every review pushes exactly one dataset item. (A dedicated review-detail-page upcharge event is planned; once it's live in the Apify Console the actor will automatically add a per-detail charge, with no redeploy needed.) The failed-enrichment cases (login redirect, stale cookies) still push the basic item. Note that enrichment roughly doubles HTTP traffic (one detail fetch per review on top of pagination), so runs take longer.

Category runs, summaries and incremental updates

A whole category at once

Point startUrls at a category instead of a single product and the actor reads Gartner's vendor list for that market, then scrapes every vendor and product in it:

{ "startUrls": [{ "url": "https://www.gartner.com/reviews/market/collaborative-work-management" }] }

Add vendors to narrow it to the companies you care about. Names are matched against both vendor and product names, so everyday spellings work and you don't need the SEO slug. Anything that matches nothing is reported in the log rather than silently ignored:

{
"startUrls": [{ "url": "https://www.gartner.com/reviews/market/collaborative-work-management" }],
"vendors": ["monday.com", "Smartsheet", "Asana"]
}

Summary only

summaryOnly: true returns one market_summary row per vendor — average rating, the 1-5 star breakdown, review volume and the products listed under that vendor — without pulling the reviews themselves. For all-time and last-12-months these are Gartner's own published figures and the whole category costs a single request.

{
"startUrls": [{ "url": "https://www.gartner.com/reviews/market/adaptive-project-management-and-reporting" }],
"summaryOnly": true,
"lastNMonths": 12
}

Each row carries scoreSource, which is gartner-published for those two windows and computed for any other window, where the figures are calculated from the reviews inside it.

Time windows and incremental re-runs

Both options apply to single products and whole categories:

  • lastNMonths — a rolling window. Gartner applies it server-side, so a re-run fetches only what falls inside it rather than paging through everything and discarding the rest. 12 also switches a summary to Gartner's published 12-month scores.
  • reviewsAfterDate — an exact cutoff such as 2026-06-18, and it takes precedence over lastNMonths. The actor requests the smallest window that encloses your date, trims to the date itself, and stops paging as soon as it reaches older reviews.

Every review row carries reviewDateIso (2026-07-23) alongside Gartner's display date (Jul 23, 2026), so runs can be diffed and deduplicated without parsing date strings.

{
"startUrls": [{ "url": "https://www.gartner.com/reviews/market/collaborative-work-management" }],
"reviewsAfterDate": "2026-06-18"
}

Partner reviews and how counts reconcile

Gartner's published rating and review count exclude partner reviews, the ones collected through a vendor's own campaign, while the review list includes them. monday.com in Adaptive Project Management is a worked example: Gartner publishes 324, the full set is 327, and the difference is exactly its 3 partner reviews. Wrike has none and both figures agree at 205.

Every review carries a partnerReview flag, and includePartnerReviews: false drops them so a run reproduces Gartner's published number exactly.

Two more things worth knowing when reconciling numbers. A vendor's published count covers every product it sells in that market, so vendors such as Planview, with four products in one category, are one summary row and several product-level review sets. And a product listed in two categories keeps separate reviews in each, so running several categories produces no duplicate reviews — monday.com's 327 reviews in Adaptive Project Management and its 636 in Collaborative Work Management have no review in common.

How to Use

  1. Set Up: Ensure you have an Apify account and access to the Apify platform.
  2. Configure Input: Provide either a Gartner reviews page URL in startUrls or set product and category SEO names.
  3. (Optional) Set maxItems to limit number of reviews.
  4. Configure Proxy: Strongly recommended to improve reliability and avoid IP blocks.
  5. Run the actor and export data (JSON/CSV) from the run dataset.

Input Configuration

Here are example inputs for scraping reviews:

Basic Product Scraping:

{
"startUrls": [
{
"url": "https://www.gartner.com/reviews/market/observability-platforms/vendor/datadog/product/datadog/reviews"
},
{
"url": "https://www.gartner.com/reviews/market/it-service-management-platforms/vendor/servicenow/product/servicenow-service-management/reviews?sort=-helpfulness&companySize=2|3|4|5|1&reviewRating=4|5&partnerReview=false"
},
{
"url": "https://www.gartner.com/reviews/product/zendesk-for-customer-service"
}
],
"maxItems": 100,
"maxConcurrency": 10,
"minConcurrency": 1,
"maxRequestRetries": 3,
"proxy": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

Supported Filter Parameters

The actor automatically parses and handles these URL filter parameters:

  • companySize: Company size categories (1-5), automatically mapped to include additional internal IDs
  • reviewRating: Star ratings (1-5), supports multiple values like reviewRating=4|5
  • partnerReview: Boolean filter for partner reviews (true/false)
  • industry: Industry category filters
  • jobRole: Job function filters (mapped to function parameter)
  • deploymentRegion: Geographic deployment filters
  • sort: Sort order (-helpfulness, -review_date)
  • months: Time range filters

Filters support multiple values separated by pipe (|) or comma (,): companySize=2|3|4 or reviewRating=4,5

Output Structure

The output dataset contains one item per review. Each item merges base review fields from the Gartner reviews API with additional fields parsed from the review detail page under reviewDetails.

{
"reviewId": 6075242,
"formattedReviewDate": "Mar 11, 2025",
"reviewSourceCode": 4,
"reviewIncentiveCode": 1,
"productNames": "Grafana Cloud",
"reviewRating": 5,
"industryCd": 258,
"industryName": "Construction",
"companySizeCd": 9902,
"companySize": "10B - 30B USD",
"jobTitle": "Enterprise Architect",
"reviewSummary": "giving insight into software and customer usage takes the confusion out of developer expectation and customer service expectation",
"reviewHeadline": "The user experience isnt what you think it is. Trust the telemetry emissions",
"upVotes": 0,
"functionCd": 233,
"function": "IT",
"partnerReview": false,
"productSeoNames": [
"grafana-cloud"
],
"vendorSeoName": "grafana-labs",
"sortValue": {
"long": false,
"double": true,
"boolean": false,
"any": false,
"string": false,
"null": false
},
"reviewDetails": {
"headline": "The user experience isnt what you think it is. Trust the telemetry emissions",
"summary": "giving insight into software and customer usage takes the confusion out of developer expectation and customer service expectation",
"submitDate": "Mar 11, 2025",
"rating": 5,
"source": "Invited by vendor (direct, user community)",
"upvote": 0,
"downvote": 0,
"deploymentArchitecture": "Hybrid Cloud and On-premises",
"partnerReview": false,
"user": {
"id": 367080855,
"title": "Enterprise Architect",
"industry": "Construction",
"companySize": "10B - 30B USD",
"function": "IT"
},
"market": {
"id": 21,
"name": "Observability Platforms",
"seoName": "observability-platforms"
},
"vendor": {
"id": 64540,
"name": "Grafana Labs",
"seoName": "grafana-labs"
},
"products": [
{
"id": 135988,
"name": "Grafana Cloud",
"seoName": "grafana-cloud",
"subscribed": false
}
],
"sections": [
{
"id": 2,
"title": "Lessons Learned",
"questions": [
{
"key": "lessonslearned-like-most",
"title": "What do you like most about the product or service?",
"value": "the ease of use and the amount of data and intelligence. remove technical boundaries and allows people to view the products through an agreed upon abstraction",
"type": "text"
},
{
"key": "lessonslearned-dislike-most",
"title": "What do you dislike most about the product or service?",
"value": "out of box experience is still difficult for some users not familiar",
"type": "text"
}
]
},
{
"id": 3,
"slug": "evaluation-contracting",
"title": "Evaluation & Contracting",
"ratingKey": "evaluation-contracting-overall",
"ratingValue": "3",
"questions": [
{
"key": "why-purchase-s24",
"title": "Why did you purchase this product or service?",
"value": [
"Cost management",
"Create internal/operational efficiencies"
],
"type": "checkboxes"
},
{
"key": "factors-drove-decision-s24",
"title": "What were the key factors that drove your decision?",
"value": [
"Product functionality and performance",
"Overall cost"
],
"type": "checkboxes"
},
{
"key": "vendors-considered",
"title": "Which other vendors did you consider in your evaluation?",
"value": [
"Honeycomb",
"Logz.io",
"LogicMonitor",
"Oracle",
"Datadog",
"Elastic",
"New Relic"
],
"type": "checkboxes"
}
]
},
{
"id": 4,
"slug": "integration-deployment",
"title": "Integration & Deployment",
"ratingKey": "integration-deployment-overall",
"ratingValue": "4"
},
{
"id": 5,
"slug": "service-support",
"title": "Service & Support",
"ratingKey": "service-support-overall",
"ratingValue": "5"
},
{
"id": 6,
"slug": "product-capabilities",
"title": "Product Capabilities",
"ratingKey": "capabilities-overall",
"ratingValue": "5"
},
{
"id": 7,
"slug": "additional-context",
"title": "Additional Context",
"questions": [
{
"key": "deployment-architecture-s24",
"title": "Deployment architecture",
"value": "Hybrid Cloud and On-premises",
"type": "text"
},
{
"key": "deployment-country-multi",
"title": "In which country(s) did your deployment take place?",
"value": "United States",
"type": "text"
}
]
}
],
"reviewSourceCode": 4,
"reviewIncentiveCode": 1,
"snippetAvailable": true
}
}

Property Descriptions

  • reviewId: Unique identifier of the review
  • formattedReviewDate: Human-readable review date (as displayed by Gartner)
  • reviewSourceCode / reviewIncentiveCode: Vendor invitation and incentive codes (numerical enums)
  • productNames: Product name string for the reviewed product(s)
  • reviewRating: Overall star rating (number)
  • industryCd / industryName: Industry code and label
  • companySizeCd / companySize: Company size code and label
  • jobTitle: Reviewer’s job title
  • reviewSummary: Short review summary text
  • reviewHeadline: Review headline text
  • upVotes: Number of upvotes on the review
  • functionCd / function: Reviewer function code and label (e.g., IT)
  • partnerReview: Whether the review is partner-related (boolean)
  • productSeoNames: Array of product SEO names
  • vendorSeoName: Vendor SEO name
  • sortValue: Internal sort metadata object (type flags such as long, double, boolean, etc.)

reviewDetails Property Descriptions

  • headline / summary: Headline and summary of the review
  • submitDate: Human-readable submission date
  • rating: Overall rating (number)
  • source: Review source text (e.g., vendor-invited)
  • upvote / downvote: Vote counts inside details
  • deploymentArchitecture: Deployment type (e.g., "Hybrid Cloud and On-premises")
  • partnerReview: Whether marked as partner review (boolean)
  • user: Object with reviewer metadata
    • id: Reviewer ID
    • title: Job title
    • industry: Industry name
    • companySize: Company size label
    • function: Function label
  • market: Object with market metadata
    • id, name, seoName
  • vendor: Object with vendor metadata
    • id, name, seoName
  • products: Array of product objects
    • id, name, seoName, subscribed
  • sections: Array of section objects capturing Q&A and ratings
    • id, slug (when present), title
    • Optional ratingKey, ratingValue
    • Optional questions: Array of question objects with:
      • key: Stable question key
      • title: Display text
      • value: Answer (string or array of strings depending on type)
      • type: e.g., text, checkboxes
  • Additional flags:
    • reviewSourceCode, reviewIncentiveCode, snippetAvailable

Note: Fields can vary across markets/products and may change as Gartner updates their API and page schema.

Explore More Scrapers

If you found this Gartner Peer Insights Scraper useful, be sure to check out our other powerful scrapers and actors at memo23's Apify profile. We offer a wide range of tools to enhance your web scraping and automation needs across various platforms and use cases.

Support

Additional Services

More Review Scrapers

Need reviews from other platforms? Same author, same export format:


Building an AI agent, or using Claude, Cursor or ChatGPT? Skip the scraping setup — connect our hosted MCP servers (no API keys, billed per call):


🤖 For AI Agents & LLM Apps

Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/apify-gartner-scraper-ppr).

Purpose: Scrape Gartner Peer Insights reviews from a category, single product, short-product, or single-review URL — one flat row per review, with URL query filters forwarded.

Minimal input:

{
"startUrls": [{ "url": "https://www.gartner.com/reviews/product/zendesk-for-customer-service" }],
"summaryOnly": false,
"includePartnerReviews": true,
"maxItems": 50,
"maxConcurrency": 10,
"minConcurrency": 1,
"maxRequestRetries": 3,
"enrichReviewDetails": false,
"reviewInsights": false,
"painPointAnalysis": false,
"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US" }
}

Point startUrls at a category to scrape every vendor/product; narrow with vendors. Optional lastNMonths or reviewsAfterDate restrict the time window; enrichReviewDetails requires auth via cookieString, cookies, or gartnerAccounts (auto-login, with sessionCacheMinutes).

Output: one row per review — reviewId, formattedReviewDate, reviewDateIso, reviewSourceCode, reviewIncentiveCode, productNames, reviewRating, industryCd, industryName, companySizeCd, companySize, jobTitle, reviewSummary, reviewHeadline, upVotes, functionCd, function, partnerReview, productSeoNames, vendorSeoName, sortValue, plus a nested reviewDetails object (headline, summary, submitDate, rating, source, deploymentArchitecture, user{...}, market{...}, vendor{...}, products[], sections[] with Q&A) when enrichReviewDetails: true. summaryOnly emits market_summary rows; reviewInsights emits review_insights rows; painPointAnalysis emits painPointAnalysis rows.

Behaviors an agent should know:

  • startUrls accepts category, canonical /market/.../product/.../reviews, short /reviews/product/<slug>, and single /review/view/<id> URLs; URL query filters (rating, company size, industry, sort) are forwarded, and malformed URLs are auto-repaired.
  • Always set maxItems — default cap is 10000; a single category can hold thousands of reviews.
  • summaryOnly: true returns one row per vendor (Gartner's published figures for all-time / 12-month, one request); includePartnerReviews: false reproduces Gartner's published count exactly.
  • For incremental re-runs use lastNMonths (rolling, server-side) or reviewsAfterDate (exact cutoff, takes precedence); reviewDateIso on each row enables dedup.
  • enrichReviewDetails: true needs a valid authenticated Gartner session; without one it falls back to the basic listing.
  • Billing: every review bills one result event ($0.0009, i.e. $0.90 / 1,000); with enrichReviewDetails, once the review-detail-page charge is active each enriched review adds $0.001 per detail page fetched (failed enrichments bill only the basic result); reviewInsights ($0.02 / product) and painPointAnalysis ($0.05 / product) are billed per product analyzed (the AI pain-point pass needs a paid Apify plan).

⚠️ Disclaimer

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

The scraper accesses only publicly available review pages on gartner.com — no authenticated endpoints or content behind the Gartner login wall except where you supply your own Gartner account credentials or cookie session for review-detail enrichment. Users are responsible for ensuring their use complies with Gartner's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization.


SEO Keywords

gartner scraper, scrape gartner peer insights, gartner reviews scraper, gartner.com scraper, gartner peer insights api, Apify gartner, gartner review data, software reviews scraper, b2b software reviews, vendor rating scraper, gartner market reviews, product review extraction, competitive intelligence data, review monitoring, gartner vendor comparison, software buyer research, review sentiment analysis, saas reviews data, gartner ratings export, enterprise software reviews