G2 Reviews Scraper — SaaS Ratings, Switching & Monitor
Under maintenancePricing
from $3.49 / 1,000 g2 reviews
G2 Reviews Scraper — SaaS Ratings, Switching & Monitor
Under maintenanceScrape G2 product reviews into JSON: star ratings, pros/cons, switching, reviewer role and company size. Monitor new reviews with webhooks. A G2 API alternative for Python, Node.js, and MCP.
Pricing
from $3.49 / 1,000 g2 reviews
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Unofficial tool for publicly accessible G2 product and review pages. G2 and related names are trademarks of their respective owners. Not affiliated with, sponsored by, or endorsed by G2.com, Inc. For informational, research, and competitive-intelligence use only. Respect applicable terms of use and law.
G2 Reviews Scraper ◄── you are here
Scrape G2 product reviews into structured JSON: star ratings, pros/cons, switching data, reviewer role, company size, and an LLM-ready markdown field. Paste product slugs or review / seller / category / search URLs. Run incremental monitor mode so scheduled jobs emit only new reviews and rating deltas. A practical G2 API alternative — call from Python, Node.js, cURL, or Apify MCP.
Ideal for SaaS competitive intel, win-loss research, sales battlecards, product ops, and review monitoring.
Crawloop Reviews Suite — B2B G2 + consumer Trustpilot + employer Glassdoor.
| G2 (SaaS product reviews) | Trustpilot (consumer reputation) | Glassdoor (employer intel) |
|---|---|---|
| G2 Reviews Scraper ◄── you are here | Trustpilot Scraper | Glassdoor Scraper |
When to use this Actor
- You need a G2 reviews scraper for one or many products as JSON
- You want switching / pros / cons fields for battlecards without cleaning HTML
- You schedule new-review monitoring with webhooks instead of re-downloading full histories
- You want a G2 API alternative from Python, Node.js, or an MCP / AI assistant
- You map a G2 category or search first, then pull reviews for the shortlist
When not to use this Actor
- Consumer Trustpilot reviews — use Trustpilot Scraper
- Employer reviews / salaries / jobs — use Glassdoor Scraper
- G2 vendor portal, authenticated surveys, or writing reviews — public pages only
- Guaranteed tens of thousands of reviews per product in one cheap HTTP run — G2 uses DataDome; this Actor uses a stealth browser + residential proxies
Modes
| Mode | What it does |
|---|---|
reviews | Product reviews (optional product profile + alternatives) |
products | Search or category catalog rows |
monitor | Named KV watermarks; emit only new reviews and rating/count deltas |
Key features
- Reviews + catalog + monitor in one Actor — product URLs/slugs, search, category, seller pages
- Typed dataset rows —
product,review,alternative,monitor_event - Battlecard fields — likes/dislikes, problems solved, recommendations, switched-from
- Star / date / keyword filters —
publishedAfteraccepts2026-08-01or7 days - Incremental monitor — named KV watermarks, early-stop, Slack/Discord/Telegram alerts
- LLM-ready
markdownContentper review (omit with compact mode) - Camoufox + US residential — DataDome bypass; no G2 login
Input
| Parameter | Description |
|---|---|
mode | reviews / products / monitor |
startUrls / productSlugs | Review pages or slugs (slack) |
searchQuery / categorySlug | Catalog discovery (products mode) |
maxReviews / maxProducts / maxItems | Caps |
sortOrder | newest / helpful / highest / lowest |
starRatings / publishedAfter / reviewSearchQuery | Filters |
includeProductProfile / includeAlternatives | Extra row kinds |
monitorStoreName / monitorBaselineOnly / earlyStopAfterKnown | Monitor KV |
webhookUrl / Telegram fields | Alerts |
proxyConfiguration | Use Apify Residential (US) |
Example — recent Slack reviews
{"mode": "reviews","productSlugs": ["slack"],"maxReviews": 100,"sortOrder": "newest","includeProductProfile": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}
Example — only 1–2 star reviews since last week
{"mode": "reviews","startUrls": [{ "url": "https://www.g2.com/products/jira/reviews" }],"sortOrder": "lowest","starRatings": ["1", "2"],"publishedAfter": "7 days","maxReviews": 200}
Example — monitor baseline then schedule
{"mode": "monitor","productSlugs": ["slack", "microsoft-teams"],"monitorStoreName": "g2-reviews-monitor","monitorBaselineOnly": true,"earlyStopAfterKnown": 5,"notifyOnNewReviews": true,"notifyOnNegativeReviewsOnly": true}
After the baseline run, set monitorBaselineOnly to false. Schedule hourly or daily — later runs emit only new reviews and rating/count deltas.
Example — category catalog
{"mode": "products","categorySlug": "crm","maxProducts": 50}
Output
Each dataset row has a type field: product, review, alternative, or monitor_event.
| Field | Description |
|---|---|
type | Row kind |
productSlug / productName | G2 product identity |
reviewId | Stable review id |
starRating | 1–5 score |
date | Publish date (YYYY-MM-DD) |
title / text | Headline and full body |
likes / dislikes | Pros / cons when present |
problemsSolved / recommendations | Extra survey answers |
switchedFrom / switchedReason | Prior product and why |
reviewerName / reviewerTitle | Reviewer |
companySize / reviewerIndustry | Firmographics |
reviewUrl | Canonical review URL when G2 exposes it |
markdownContent | LLM-ready block (omit with compact) |
reviewCount / vendorName / categoryNames | Product-row fields |
{"type": "review","reviewId": "1234567","productSlug": "slack","productName": "Slack","starRating": 4.5,"date": "2026-05-12","title": "Best team chat we have used","likes": "Channels keep work organized; integrations with Jira are seamless.","dislikes": "Notification volume is high until you tune it.","switchedFrom": "Microsoft Teams","reviewerName": "Sarah M.","reviewerTitle": "Marketing Manager","companySize": "Mid-Market (51-1000 emp.)","reviewUrl": "https://www.g2.com/products/slack/reviews/slack-review-1234567"}
Use cases
| Use case | What you get |
|---|---|
| Competitor battlecards | Pros/cons + switched-from on your product and 3 rivals |
| Detractor mining | 1–2★ sort + negative-only webhooks |
| Win-loss research | Switching reasons and firmographics (role, size, industry) |
| RAG / LLM pipelines | markdownContent chunks with product/rating metadata |
| Scheduled monitoring | Only new reviews after a KV baseline |
| Category mapping | Top products in a G2 category before a review pull |
Integration examples
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('crawloop/g2-reviews-scraper').call({mode: 'reviews',productSlugs: ['slack'],maxReviews: 100,sortOrder: 'newest',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient(token="YOUR_APIFY_TOKEN")run = client.actor("crawloop/g2-reviews-scraper").call(run_input={"mode": "reviews","productSlugs": ["hubspot"],"maxReviews": 200,"sortOrder": "helpful",})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item.get("title"), item.get("starRating"))
cURL
curl -X POST \"https://api.apify.com/v2/acts/crawloop~g2-reviews-scraper/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"mode":"products","searchQuery":"CRM","maxProducts":25}'
MCP and AI assistants
Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call crawloop/g2-reviews-scraper.
Example prompts:
- "Run G2 Reviews Scraper for Slack, max 50 newest reviews, and return stars, likes, dislikes, and switchedFrom as JSON"
- "Scrape 1- and 2-star Jira G2 reviews from the last 30 days and summarize the top complaints"
- "Chain G2 Reviews Scraper for HubSpot then Trustpilot Scraper for hubspot.com and compare B2B vs consumer sentiment"
Suite next step
After a G2 pull, run Trustpilot Scraper on the same vendor domain for consumer reputation, or Glassdoor Scraper for employer-brand context on the vendor.
FAQ
Do I need a G2 login or official API key? No. The Actor reads public product and review pages only. G2’s partner API is separate and not required.
Can I scrape G2 reviews with Python or Node.js? Yes. Use the Apify client snippets above, or call the Actor from an MCP / AI assistant.
Why residential proxies? G2 sits behind DataDome. Datacenter IPs usually get a CAPTCHA. Use Apify Residential (US).
How is this different from other G2 scrapers? Monitor mode with KV watermarks and webhooks, switching/pros/cons fields, catalog + reviews in one Actor, and a suite chain to Trustpilot and Glassdoor.
Can I scrape a whole category? Yes — mode=products with categorySlug or searchQuery, then feed the slugs back in reviews mode.
Does monitor mode re-download the full history every run? No. After a baseline, later runs emit new reviews and rating/count deltas and can stop early once known reviews appear.