Gartner Peer Insights Scraper
Pricing
from $6.00 / 1,000 review scrapeds
Gartner Peer Insights Scraper
Scrape public Gartner Peer Insights product profiles, ratings, market listings, and review samples. Optional session cookie unlocks paginated reviews. Unblocker-first. MCP-ready.
Pricing
from $6.00 / 1,000 review scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
6 days ago
Last modified
Categories
Share
For SaaS PMs, competitive analysts, and MCP agents who need structured B2B software review evidence. This Actor extracts public Gartner Peer Insights product ratings, vendor profiles, market product lists, and review samples into dataset rows with fields such as averageRating, reviewCount, headline, and productUrl. Optional caller-owned Peer Insights cookie unlocks paginated api3 review catalogs.
Focused standalone workflow
This Actor is designed as a focused standalone workflow for Peer Insights public pages. An analyst starts with product or market URLs, runs with Apify UNBLOCKER, then exports dataset rows into a comparison sheet or CRM research queue. For multi-platform review aggregation across G2/Capterra instead of Peer Insights, use software-reviews-all-in-one-scraper after you finish the Gartner shortlist.
Best fit
Choose this Actor when you have Peer Insights product URLs, SEO slugs, or market category URLs and need ratings, vendor context, and public review text in a flat Pay-per-event dataset.
It works well for category shortlists from market pages and for bounded product deep-dives that stay on publicly visible Peer Insights pages. Pair it with software-reviews-all-in-one-scraper when the next step is a cross-platform review corpus rather than Peer Insights alone.
Practical scenario
A SaaS PM pastes a Zoom Meetings product URL, keeps Apify UNBLOCKER on, and sets maxReviewsPerProduct to 5. The run then returns one product summary plus public review/highlight rows. Next they export the dataset and compare ratings against an internal shortlist.
Best results
- Prefer exact
productUrlsormarketUrlsover free-textsearchTermswhen you already have canonical Gartner links. - Keep
proxyConfiguration.apifyProxyGroupson UNBLOCKER; that route is what consistently clears Cloudflare for these pages. - Start with a small
maxReviewsPerProduct/maxProductsto confirm the slug, then raise caps for production batches. - Confirm market SEO names from a live Peer Insights market page before bulk runs.
- Supply a caller-owned Peer Insights cookie only when you need fuller authenticated review catalogs beyond the public sample.
Quick start input
{"productUrls": ["https://www.gartner.com/reviews/product/zoom-meetings"],"maxReviewsPerProduct": 5,"includeProductSummary": true,"includeReviewHighlights": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["UNBLOCKER"]}}
Market mode:
{"marketUrls": ["https://www.gartner.com/reviews/market/meeting-solutions"],"maxProducts": 5,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["UNBLOCKER"]}}
Input reference
| Field | Type | What it controls |
|---|---|---|
productUrls | array | Product or reviews URLs (short /reviews/product/{slug} or long market/vendor/product paths). |
marketUrls | array | Market category URLs returning product cards. |
productSlugs | array | SEO slugs without a full URL. |
searchTerms | array | Best-effort slugified product name hints (not a full Gartner site search API). |
maxReviewsPerProduct | integer | Cap on review/highlight rows per product (default 5, max 500). |
maxProducts | integer | Cap on market product cards (default 20, max 200). |
includeProductSummary | boolean | Save a product profile row (default true). |
includeReviewHighlights | boolean | Save likes/dislikes highlight rows (default true). |
sessionCookie | secret string | Caller-provided Peer Insights Cookie header for authenticated api3 pagination. |
proxyConfiguration | object | Prefer Apify UNBLOCKER for Cloudflare-protected pages. |
Output data
| Field | Description |
|---|---|
recordType | product, review, or review-highlight |
productName / vendorName | Display names |
averageRating / reviewCount | Aggregate metrics on product rows |
rating / headline / summary | Review fields |
jobTitle / industryName / companySize | Reviewer firmographics when public |
likeText / dislikeText | Highlight snippets |
productUrl / sourceUrl | Provenance |
scrapedAt | ISO 8601 timestamp |
Example review row:
{"recordType": "review","reviewId": "6966038","headline": "Good video conferencing product","rating": 4,"jobTitle": "IT Associate","industryName": "Software","companySize": "1B-10B USD","productName": "Zoom Meetings","productUrl": "https://www.gartner.com/reviews/product/zoom-meetings","scrapedAt": "2026-01-15T12:00:00.000Z"}
Pricing
Pay per event + platform usage (isPPEPlatformUsagePaidByUser: true). The live Pricing tab is the current source of truth after deployment.
| Event | Price | When charged |
|---|---|---|
apify-actor-start | $0.00005 | Once per run (memory-scaled) |
review-scraped (primary) | $0.006 | Each review or likes/dislikes highlight row saved |
product-found | $0.008 | Each product profile or market product card saved |
Worked cost example for a bounded Zoom Meetings prefill-style run with one product summary plus a couple of public highlight records: $0.00005 + $0.008 + (two × $0.006) = $0.02005 in named PPE events, plus Unblocker/compute platform usage. Invalid inputs and truthful empty products are not charged row events.
API example
curl "https://api.apify.com/v2/acts/khadinakbar~gartner-peer-insights-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"productUrls": ["https://www.gartner.com/reviews/product/zoom-meetings"],"maxReviewsPerProduct": 5,"includeProductSummary": true,"includeReviewHighlights": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["UNBLOCKER"]}}'
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('khadinakbar/gartner-peer-insights-scraper').call({productUrls: ['https://www.gartner.com/reviews/product/zoom-meetings'],maxReviewsPerProduct: 5,proxyConfiguration: { useApifyProxy: true, apifyProxyGroups: ['UNBLOCKER'] },});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
MCP / AI agent
MCP tool name: apify--gartner-peer-insights-scraper.
Scrape Zoom Meetings Peer Insights public ratings and review samples with UNBLOCKER, then return dataset rows and note COMPLETE vs VALID_EMPTY vs UPSTREAM_FAILED.
Agent guidance: prefer productUrls/marketUrls over searchTerms; public pages yield a focused sample unless a caller-owned cookie is set; retry with UNBLOCKER when Cloudflare challenges appear; pagination is caller-driven via maxProducts / maxReviewsPerProduct caps. Partial runs keep successful rows and mark PARTIAL.
Outcomes
| Outcome | Meaning |
|---|---|
COMPLETE | All targets produced useful rows |
PARTIAL | Some targets were invalid or incomplete |
VALID_EMPTY | Valid targets, no public rows |
INVALID_INPUT | No usable Gartner targets |
UPSTREAM_FAILED | Cloudflare/anti-bot challenge on every request |
CONFIG_ERROR | Proxy/config is unavailable at start |
Every run writes OUTPUT and RUN_SUMMARY with itemsPushed and chargedEventCounts.
Scope and recovery guidance
Provide UNBLOCKER for Cloudflare-protected Peer Insights pages. Start with known product or market URLs, validate one slug, then scale caps. When a public sample is enough, leave the cookie empty. When authenticated catalogs are authorized, supply a caller-owned Cookie header for that run only. Invalid hosts finish as INVALID_INPUT with zero row charges; Cloudflare-challenged routes finish as UPSTREAM_FAILED so operators can adjust proxy settings.
Builder's note
I built this Actor after finding that plain datacenter HTTP consistently hits Gartner Cloudflare challenges, while Apify Unblocker returns the Next.js RSC embeds that carry initialProductInfo, initialRatings, and market products arrays. I designed the public contract around those embeds so agents get honest product and sample-review rows without implying a login bypass. In my testing, empty Unblocker shells still happen occasionally, so the runtime retries product parses before recording a truthful empty outcome.
Differentiation
This Actor documents the public-page boundary clearly, ships MCP-ready schemas, PPE + usage pass-through, Unblocker-first transport, market discovery, and optional caller-owned authenticated pagination—while staying scoped to Peer Insights public pages and optional caller-owned authenticated catalogs.
Legal / responsible use
Use only for lawful purposes and respect Gartner's terms of service. Public pages and caller-owned sessions only. Callers supply only cookies they are authorized to use for that run. Gartner and Peer Insights are trademarks of their owners. This independent Actor is not affiliated with, associated with, or endorsed by Gartner.