G2 Reviews Scraper · Battlecards + Switching Data
Pricing
from $2.50 / 1,000 reviews
G2 Reviews Scraper · Battlecards + Switching Data
Scrape G2 product reviews and ratings for B2B software - 32 fields per review: 6 sub-ratings, pros/cons, NPS, switched-from competitors, verified-reviewer role & company size, LLM-ready markdown. Auto-ranks top-10 competitors per product for battlecards. Handles anti-bot. $4 per 1,000 reviews.
Pricing
from $2.50 / 1,000 reviews
Rating
5.0
(6)
Developer
FactDen
Maintained by CommunityActor stats
7
Bookmarked
20
Total users
10
Monthly active users
0.62 hours
Issues response
3 minutes ago
Last modified
Categories
Share
G2 Reviews & Products Scraper | AI, Competitor Intel (2026)
G2 Reviews & Products Scraper is an Apify actor that extracts public G2 reviews and product data in real time — with ranked top-10 competitors per product and an LLM-ready markdown field for direct RAG ingestion.
Real-time G2 reviews (fresh data on every run, no caching) — no login, no proxy setup, no anti-bot tuning, no CAPTCHA work. Everything's handled inside the actor.
$4 / 1,000 rows. $0.01 per run. Uniform pricing across both modes (Reviews mode = $0.004 per review row, Products mode = $0.004 per discovered product). Free tier: new Apify users get ~1,250 rows free with the $5 platform credit.
Contents: What's different · G2 API vs this scraper · Use cases · Pricing · FAQ
What's different about this G2 scraper
Two angles vs. every other G2 scraper on Apify Store:
🏆 Top-10 competitors ranked per product — mined from each reviewer's switching-from data and resolved to real product names (no opaque IDs). Battlecard data, no aggregation code needed.
🤖 LLM-ready markdownContent per review — self-contained markdown block, ready for direct vector-DB ingestion / RAG pipelines / LLM prompt context with zero formatting work.
Quick start (30 seconds):
- Click Try for free above; the input is pre-filled with 2 examples (a full G2 URL and a bare slug) so you can see both accepted formats at a glance.
- Click Start. The run takes ~15 seconds and fits inside Apify's $5 free credit.
- Download results as JSON, CSV, or Excel from the Output tab.
No-setup checklist — what every other G2 scraper makes you build yourself:
- No login or G2 account required (public review data only)
- No proxy configuration (Apify proxy network bundled)
- No anti-bot tuning required (handled inside the actor)
- No CAPTCHA handling required (handled inside the actor)
- No code required for the simple flow (form-based input)
- No subscription (pay-per-event: per-run + per-row only)
What does G2 Reviews Scraper do?
Two modes:
- Reviews mode: Enter G2 product URLs or bare slugs and get every public review back as a clean, structured row.
27 fields per review including a nested
subRatingsdict (up to 6 G2 sub-ratings the reviewer gave), structured pros / cons / problemsSolved / recommendations, switching history with named competitors, reviewer industry / role / company size / country, and an LLM-readymarkdownContentfield for direct RAG ingest. - Products mode: Enter a keyword (e.g.
communication,CRM,project management,saas) and get the top N matching products with metadata. Useful for competitor discovery before pulling reviews.
![]() | ![]() |
Works on every G2 product page — Slack, Salesforce, HubSpot, Zoom, Notion, Microsoft Teams, Asana, Figma, monday.com, Intercom, and any other G2 listing you paste.
Output renders in the run's Output tab with a dataset dropdown (Reviews / Products). Download as JSON, CSV, or Excel.
Per-product topCompetitors view — top 10 named competitors ranked by reviewer-mention count, populated automatically for every product:

G2's Official API vs this scraper
Why this actor exists: G2's review data is publicly displayed on their product pages, but G2's official API is enterprise-tier (sales call, MSA, multi-month procurement). This actor gives you the same review data with a 30-second setup.
| G2 Official API | This actor | |
|---|---|---|
| Access | Enterprise contract | Apify account (free signup) |
| Setup time | Weeks (procurement + integration) | 30 seconds |
| Pricing model | Custom contract | $0.01 per run + $0.004 per row |
| Free trial | None published | ~1,250 rows free on Apify's $5 credit |
| Top-10 competitors ranked per product | — | ✅ topCompetitors |
| Named switching-from data (resolved to product names, not opaque IDs) | — | ✅ previousCompetitors + whySwitched |
| LLM-ready markdown per review | — | ✅ markdownContent |
| Schedule / webhook delivery | Bring your own | Native via Apify Schedules + Webhooks |
Who G2 Reviews Scraper is for
- Competitive intel analysts mining switching-from signals and ranked top competitors per product.
- Product marketers building battlecards from structured pros / cons / switching-reason fields.
- AI / RAG engineers ingesting G2 review data into vector databases -
markdownContentis chunk-ready. - Win-loss researchers scoping returned reviews to their ICP using
reviewerIndustry,companySize,reviewerCountry, andreviewerRole(when present) — post-download filtering on the dataset. - Sales enablement mining detractor language with
minRating=1, maxRating=2and the lowest-rated sort order.
Common use cases for scraping G2 reviews
1. Build a battlecard from competitor reviews
Pull reviews for your product + top 3 competitors. The per-product topCompetitors field surfaces who customers actually switch from. Structured pros / cons / recommendations drop directly into Notion / Slides.
{"startUrls": ["slack", "microsoft-teams", "zoom-workplace", "rocket-chat"],"maxReviewsPerProduct": 500,"sortReviews": "helpful"}
2. Mine objection language for sales enablement
Pull the lowest-rated reviews of your product to find what detractors actually say. cons and whySwitched are objection-handling gold.
{"startUrls": ["slack"],"minRating": 1,"maxRating": 2,"sortReviews": "rating_low"}
3. Feed G2 reviews into a RAG / AI agent pipeline
Each review's markdownContent is a self-contained markdown chunk ready for vector-DB ingestion. Attach metadata (productSlug, overallRating, previousCompetitors) for filtered retrieval.
{"startUrls": ["slack", "microsoft-teams"],"maxReviewsPerProduct": 1000}
4. Monitor competitor G2 reviews with scheduled runs
Run daily with fromDate set to yesterday for incremental pulls. Wire an Apify webhook to push new reviews into Slack, Snowflake, BigQuery, or your CRM.
{"startUrls": ["microsoft-teams"],"fromDate": "2026-05-22","sortReviews": "newest"}
How to scrape G2 reviews - step-by-step
- Click Try for free on the Apify Store page.
- Pick a mode in the input form (Reviews or Products).
- Reviews mode: paste G2 product URLs or bare slugs (one per line, up to 100). Products mode: enter a keyword in Search query.
- (Optional) Set filters: max reviews per product, date range, rating range, sort order, verified-reviewers-only.
- Click Start. Results appear in the Output tab as soon as the first product completes.
Measured throughput on a single product: ~60 reviews/sec sustained (plus ~5s container start).
| Reviews / product | Run time | Cost |
|---|---|---|
| 100 | ~10s | $0.41 |
| 1,000 | ~25s | $4.01 |
| 10,000 | ~3 min | $40.01 |
| 39,000 (Slack) | ~12 min | $156.01 |
Products run sequentially for predictable memory and cost.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
| Mode | enum | reviews | reviews extracts reviews for the products in startUrls. products finds top products by keyword. |
| G2 product URLs or slugs | array | (prefilled with 2 examples: 1 URL + 1 slug) | Reviews mode only. Full G2 URLs or bare slugs, one per line. Up to 100 products per run. Renamed G2 slugs auto-resolve to the canonical G2 slug (the slug field on the products summary row records the slug we actually extracted under). |
| Search query | string | communication (prefilled) | Products mode only. Keyword for product lookup. Silently ignored in Reviews mode. |
| Max products | int | 25 | Products mode only. Up to 1000. |
| Max reviews per product | int | 100 | Hard ceiling per product. Default 100 keeps first-click runs under the $5 free credit (100 reviews ≈ $0.41). Raise it for the real pull. |
| From date | date | (none) | Only reviews submitted on or after this date. |
| To date | date | (none) | Only reviews submitted on or before this date. |
| Min rating / Max rating | 1-5 | 1 / 5 | Filter reviews by overall star rating. |
| Sort reviews by | enum | newest | newest / helpful / rating_high / rating_low. rating_low is the fastest path to negative-review pain-point mining. |
| Verified reviewers only | bool | false | When true, drops vendor-submitted rows; keeps reviews from verified G2 reviewers only. |
Output
Output renders in the run's Output tab with a dataset dropdown:
- Reviews mode: dropdown shows
Reviews(review rows) andProducts(per-product summary, one row per product). - Products mode: dropdown shows
Reviews(empty by design - products mode does not extract reviews) andProducts(the discovered products with G2 catalog metadata).
Download from the Output tab dropdown as JSON, CSV, or Excel.
📊 Prefer a ready-made dataset? Grab a free 500-review sample (Slack, Microsoft Teams, Zoom, Google Workspace, Trello) on HuggingFace or Kaggle — no run needed.
Note: on the Products dataset, reviewsExtracted, completenessPct, and topCompetitors are mined from review content. In Reviews mode they're fully populated; in Products mode topCompetitors is an empty array [] while reviewsExtracted and completenessPct are 0 (no reviews were extracted).
Review row sample (Reviews tab in the Output dropdown)
Abbreviated — the full row has 27 fields including the mode marker. The sub-ratings are clubbed into one nested subRatings dict (each on a 1–7 scale; dimensions the reviewer skipped are omitted, so the key set varies per review); the overall overallRating is 1–5 stars, and the products dataset's averageRating is 0–5 (derived from G2's 0–10 internal rating ÷ 2).
{"mode": "reviews","reviewId": "1234567","reviewUrl": "https://www.g2.com/products/slack/reviews/slack-review-1234567","productSlug": "slack","productName": "Slack","submittedAt": "2025-09-12T14:32:00+00:00","reviewerName": "Sarah K.","reviewerIndustry": "Marketing and Advertising","reviewerRole": "Marketing Manager","companySize": "Mid-Market","reviewerCountry": "United States","overallRating": 4,"subRatings": {"easeOfUse": 7,"easeOfSetup": 6,"meetsRequirements": 7,"qualityOfSupport": 6},"reviewTitle": "Best team chat we've used","pros": "Channels keep work organized; integrations with Jira and Salesforce are seamless.","cons": "Notification volume is high until you tune it.","problemsSolved": "Replaced 80% of internal email and consolidated cross-team coordination.","recommendations": "Spend time setting up notification preferences early.","didSwitchFromCompetitor": true,"previousCompetitors": ["Microsoft Teams"],"whySwitched": "Better thread management and a more responsive mobile app.","isIncentivized": false,"helpfulVotes": 7,"extractedAt": "2026-05-21T12:00:00+00:00","markdownContent": "## Slack review\n\n**Rating**: 4/5\n..."}
Product row sample (Products tab - either per-product summary in Reviews mode, or discovered products in Products mode)
{"slug": "slack","name": "Slack","id": 3437,"url": "https://www.g2.com/products/slack","vendorName": "Slack Technologies","type": "Software","categoryNames": ["Business Instant Messaging"],"categoryPrimary": "Business Instant Messaging","averageRating": 4.5,"starRating": 5,"reviewCount": 38966,"matchingFilterTotal": 38966,"reviewsExtracted": 1000,"completenessPct": 2.57,"topCompetitors": ["Microsoft Teams", "Google Chat", "Discord", "Zoom Workplace"],"extractedAt": "2026-05-21T12:00:00+00:00"}
All timestamps are UTC with explicit
+00:00offset.
Pricing - how much does it cost to scrape G2 reviews
| Event | Price | Fires |
|---|---|---|
| Actor start | $0.01 | Once per run |
| Dataset row | $0.004 | Per output row - in Reviews mode this is per review row; in Products mode this is per discovered product. |
Platform usage (compute) is included in Apify's per-plan quota; no separate charge.
Examples:
- 100 HubSpot reviews (Reviews mode) = $0.01 + 100 × $0.004 = $0.41
- 1,000 Slack reviews (Reviews mode) = $0.01 + 1000 × $0.004 = $4.01
- 25-product
CRMkeyword search (Products mode) = $0.01 + 25 × $0.004 = $0.11 - 4 messaging competitors (Slack + Microsoft Teams + Google Chat + Discord) × 250 reviews each = $0.01 + 1000 × $0.004 = $4.01
New Apify users get $5 platform credit, which covers ~1,250 reviews at base tier.
How to run this G2 reviews API on a schedule
This actor doubles as a G2 reviews API - call it from any HTTP client, the Apify Python client, or the Apify JS client. For incremental pulls:
- Open the Apify Schedules tab in your Console.
- Set the cron (e.g., daily at 06:00 UTC).
- In the schedule's input override, set
fromDateto yesterday's date — the actor returns only reviews submitted on or after that. - (Optional) Wire an Apify webhook on
ACTOR.RUN.SUCCEEDEDto push results into Snowflake, BigQuery, Sheets, or your CRM.
AI agents & RAG - using G2 reviews with LLMs
markdownContent is a self-contained markdown block per review, designed for direct ingestion into vector databases, RAG pipelines, and LLM context windows.
Examples using the Apify Python client and Apify JS client:
Python
from apify_client import ApifyClient# Get your token from https://console.apify.com/account/integrations?fpr=factdenclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("factden/g2-reviews-scraper").call(run_input={"startUrls": ["slack", "microsoft-teams"],"maxReviewsPerProduct": 100,})# Each markdownContent is a ready-to-embed chunk for your vector DBfor review in client.dataset(run["defaultDatasetId"]).iterate_items():chunk = review["markdownContent"]metadata = {"product": review["productSlug"], "rating": review["overallRating"]}print(metadata, chunk[:100], "...")
JavaScript / TypeScript
import { ApifyClient } from 'apify-client';// Get your token from https://console.apify.com/account/integrations?fpr=factdenconst client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('factden/g2-reviews-scraper').call({startUrls: ['slack', 'microsoft-teams'],maxReviewsPerProduct: 100,});// Each markdownContent is a ready-to-embed chunk for your vector DBconst { items } = await client.dataset(run.defaultDatasetId).listItems();for (const review of items) {const metadata = { product: review.productSlug, rating: review.overallRating };console.log(metadata, review.markdownContent.slice(0, 100), '...');}

Wedge fields glossary - what AI agents filter / chunk on:
| Field | What it means | Why an AI agent cares |
|---|---|---|
topCompetitors | Top 10 most-cited competitors per product, ranked by mention count | Battlecard generation, competitive-intel agents |
previousCompetitors | Named products the reviewer switched from | Migration-trend analysis, win-loss agents |
whySwitched | Free-text reason for switching | Objection-handling, sales agents |
pros / cons | Structured strengths and weaknesses | Sentiment-tagged retrieval, product-research agents |
markdownContent | Self-contained per-review markdown | Vector-DB chunks, RAG pipelines, LLM prompts |
Data sources & GDPR
Only public, listed-on-G2-product-page review data is extracted. No personal data is scraped beyond what G2 itself displays publicly: reviewer first name + last initial, self-reported role, self-reported industry, company size, and country. G2 collects and publishes this data with reviewer consent as part of their review submission process.
What this actor does NOT collect: email addresses, full last names, LinkedIn profiles, account credentials, private messaging, or any field not displayed on a G2 public product page. No logins are used.
Fields that may constitute personal data under GDPR (depending on jurisdiction and context): reviewerName, reviewerRole, reviewerIndustry, reviewerCountry. All four are publicly displayed by G2 — you are the data controller for any downstream processing. Legitimate interest or contractual necessity are the most common lawful bases cited by customers using this data for competitive research.
You are responsible for complying with G2's terms of service and any applicable data-protection regulations (GDPR, CCPA, etc.) in your jurisdiction. If in doubt, consult counsel.
FAQ
How much does it cost to scrape 10,000 G2 reviews?
$0.01 + 10,000 × $0.004 = $40.01 (one run start + 10,000 review rows). Apify's $5 free credit covers ~1,250 reviews at base tier. Tiered discounts apply for higher-volume users — Bronze, Silver, Gold, and Platinum tiers each reduce the per-row price.
Can I filter G2 reviews by date?
Yes. From date and To date accept YYYY-MM-DD format and are applied at scrape time — only matching reviews are fetched, which is faster and cheaper than downloading everything and filtering after. Both fields are optional; leave either blank for no lower or upper bound.
What if a G2 product slug was renamed?
The actor auto-resolves renamed slugs via fuzzy matching. The canonical slug appears as the slug field on the products dataset row (whether or not it matches the input), with a warning logged when a rename was applied. A 0.6 similarity floor prevents wrong substitutions.
Can I run the G2 scraper on a schedule?
Yes. Apify's built-in Schedules let you run the actor on any cron interval — daily, weekly, or custom. For incremental monitoring, set From date to the previous run's start date so only new reviews are fetched each time. Pair with a webhook on ACTOR.RUN.SUCCEEDED to push results automatically into Slack, BigQuery, Snowflake, or your CRM.
Why is reviewerRole null for some reviews?
G2 makes the role field optional on the review submission form. About 48% of reviewers skip it — this is a G2 platform characteristic, not a scraping gap. The field is never fabricated or inferred: when a reviewer didn't provide a role, the actor returns null. The same applies to reviewerIndustry and reviewerCountry, which are also optional on G2.
Does this work for products with thousands of reviews?
Yes. Slack has ~39k reviews and you can extract them all in a single run by setting maxReviewsPerProduct to 50000. Expect roughly 12 minutes and ~$156 at base tier. Throughput is ~60 reviews/sec sustained. Products run sequentially, so multi-product runs take proportionally longer but use predictable, flat memory.
Can I export G2 reviews to CSV or Excel?
Yes. Every dataset in the Output tab supports JSON, CSV, Excel (XLSX), XML, and JSONL downloads. The Overview view uses customer-readable column order so it imports cleanly into Google Sheets or Excel without reformatting. For large exports, the Apify API supports direct dataset streaming.
Is scraping G2 legal?
This actor extracts only public review data already displayed on G2 product pages — no logins, no private fields, no personal data beyond what G2 itself publishes. You are responsible for complying with G2's terms of service and any applicable data-protection regulations in your jurisdiction. If in doubt, consult counsel.
Can I monitor G2 reviews continuously?
Yes. Use Apify Schedules + Webhooks to run the actor daily with fromDate set to yesterday. Each run fetches only reviews newer than that date, keeping costs minimal. Wire the webhook to push new rows into Slack, your CRM, Snowflake, or a Google Sheet automatically on run completion.
How fresh is G2 review data?
Real-time — the actor hits G2's live pages on every run, not a cached copy. A review submitted to G2 minutes ago appears in the next run as soon as G2's own indexing picks it up (typically a 1-2 minute lag on G2's side, nothing on ours).
Do I need a G2 account, API key, or proxy to use this scraper?
No. This actor requires only an Apify account (free). No G2 login, no G2 API key, no proxy configuration, and no anti-bot setup — all of that is handled inside the actor using Apify's built-in proxy network. You can run your first G2 review extraction in under 30 seconds with zero infrastructure work.
Can I scrape G2 products and reviews in one workflow?
Yes, by chaining two runs: (1) run in Products mode with a search keyword (e.g. CRM) to discover the top N products and their G2 slugs, then (2) feed those slugs into a second run in Reviews mode to extract every review. Total cost: $0.004 per discovered product + $0.004 per review row.
Related Actors
Working with B2B software reviews and competitive intelligence? These actors pair well with G2 Reviews Scraper:
Cross-platform review coverage
- Trustpilot Scraper — extract Trustpilot reviews for the same software vendors; good cross-platform sentiment comparison
- Capterra Reviews Scraper — Capterra reviews from Gartner's review network; complements G2 for broader B2B coverage
Company and people data
- LinkedIn Company Scraper — enrich the companies leaving reviews with headcount, job postings, and company profiles
- Crunchbase Scraper — funding rounds and firmographics for the vendors in your competitive set
Search and SERP intelligence
- Google Search Scraper — monitor brand mentions, track competitor SERP positions for review-related queries
Our other actors
- Trip.com & Ctrip Hotel Reviews Scraper — hospitality competitive intelligence and AI/RAG ingestion
- Indeed Jobs Scraper — job listings, salaries, and company profiles across 60+ countries
Changelog
1.0 - Initial release (2026-05-21)
- 27 review-row keys (26 review fields +
modemarker), semantically ordered for readability - including a nestedsubRatingsdict andmarkdownContentfor LLM/RAG ingestion. - Per-product
topCompetitorsranking - top 10 named competitors by mention count, unique to this Actor. - 2 curated review views (Overview, AI ingest) + 1 product view (Overview, 11 columns - includes reviewsExtracted / completenessPct / topCompetitors which populate in Reviews mode; in Products mode
topCompetitorsis an empty array[]and the two counters are0). - Resolved competitor display names (
previousCompetitors) - no opaque IDs, no manual lookup. - Two modes: Reviews (extract reviews for given products) and Products (keyword discovery).
- Auto-resolve renamed G2 slugs with a 0.6 similarity floor.
- PPE pricing: $0.01 per run + $0.004 per row (unified across both modes - Reviews mode and Products mode price the same per row).
Support & maintenance
Actively maintained. Updates pushed regularly — see the Changelog section above. Bug reports are typically triaged within 1-2 business days.
- Bug reports / feature requests: use the Issues tab on this actor's Apify Store page
- Private inquiries: hello@factden.com
Built by factden on the Apify platform. Try the G2 Reviews Scraper free with Apify's $5 monthly credit - covers ~1,250 reviews on first run.

