G2 Reviews Scraper — SaaS Ratings, Switching & Monitor avatar

G2 Reviews Scraper — SaaS Ratings, Switching & Monitor

Under maintenance

Pricing

from $3.49 / 1,000 g2 reviews

Go to Apify Store
G2 Reviews Scraper — SaaS Ratings, Switching & Monitor

G2 Reviews Scraper — SaaS Ratings, Switching & Monitor

Under maintenance

Scrape 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

Andrej Kiva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

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 hereTrustpilot ScraperGlassdoor 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

ModeWhat it does
reviewsProduct reviews (optional product profile + alternatives)
productsSearch or category catalog rows
monitorNamed 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 rowsproduct, review, alternative, monitor_event
  • Battlecard fields — likes/dislikes, problems solved, recommendations, switched-from
  • Star / date / keyword filterspublishedAfter accepts 2026-08-01 or 7 days
  • Incremental monitor — named KV watermarks, early-stop, Slack/Discord/Telegram alerts
  • LLM-ready markdownContent per review (omit with compact mode)
  • Camoufox + US residential — DataDome bypass; no G2 login

Input

ParameterDescription
modereviews / products / monitor
startUrls / productSlugsReview pages or slugs (slack)
searchQuery / categorySlugCatalog discovery (products mode)
maxReviews / maxProducts / maxItemsCaps
sortOrdernewest / helpful / highest / lowest
starRatings / publishedAfter / reviewSearchQueryFilters
includeProductProfile / includeAlternativesExtra row kinds
monitorStoreName / monitorBaselineOnly / earlyStopAfterKnownMonitor KV
webhookUrl / Telegram fieldsAlerts
proxyConfigurationUse 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.

FieldDescription
typeRow kind
productSlug / productNameG2 product identity
reviewIdStable review id
starRating1–5 score
datePublish date (YYYY-MM-DD)
title / textHeadline and full body
likes / dislikesPros / cons when present
problemsSolved / recommendationsExtra survey answers
switchedFrom / switchedReasonPrior product and why
reviewerName / reviewerTitleReviewer
companySize / reviewerIndustryFirmographics
reviewUrlCanonical review URL when G2 exposes it
markdownContentLLM-ready block (omit with compact)
reviewCount / vendorName / categoryNamesProduct-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 caseWhat you get
Competitor battlecardsPros/cons + switched-from on your product and 3 rivals
Detractor mining1–2★ sort + negative-only webhooks
Win-loss researchSwitching reasons and firmographics (role, size, industry)
RAG / LLM pipelinesmarkdownContent chunks with product/rating metadata
Scheduled monitoringOnly new reviews after a KV baseline
Category mappingTop 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 ApifyClient
client = 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.