G2 Reviews & Products Scraper | AI, Competitor Intel (2026)
Pricing
from $4.00 / 1,000 dataset rows
G2 Reviews & Products Scraper | AI, Competitor Intel (2026)
Scrape G2 reviews and products in real-time. 32 fields: 6 sub-ratings, switching competitors, structured pros/cons, LLM-ready markdown. Top 10 competitors ranked per product. Built for market research, competitive intelligence, sales enablement. No login, no proxy, no anti-bot. $4 per 1,000 rows.
Pricing
from $4.00 / 1,000 dataset rows
Rating
4.0
(4)
Developer
FactDen
Maintained by CommunityActor stats
1
Bookmarked
5
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
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 page fetch on every run, no caching) — no login, no proxy setup, no anti-bot tuning, no CAPTCHA work. Apify proxy + DataDome / Cloudflare bypass run 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 (DataDome + Cloudflare bypass internal)
- No CAPTCHA handling (managed by the proxy stack)
- 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.
32 fields per review including 6 sub-ratings, structured pros / cons / problemsSolved / recommendations, switching history with named competitors, reviewer industry / role / company size / country, and an LLM-ready
markdownContentfield 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. |
| Proxy | object | Apify datacenter proxy | Default works for any reasonable run. |
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.
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 null while reviewsExtracted and completenessPct are 0 (no reviews were extracted).
Review row sample (Reviews tab in the Output dropdown)
Abbreviated — the full row has 32 fields including the mode marker. Sub-ratings are on a 0–10 scale (G2's internal precision; the overall averageRating on the products dataset is 0–5).
{"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,"easeOfUse": 8.5,"qualityOfSupport": 7.0,"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/integrationsclient = 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/integrationsconst 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's already publicly displayed (reviewer first name + last-initial, role, industry, company size, country). Reviewers' email addresses, full last names, account info, and any private fields are never accessed. You are responsible for downstream compliance with G2's terms of service and any applicable data-protection regulations in your jurisdiction.
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.
Can I filter by date?
Yes. From date and To date accept YYYY-MM-DD and filter at scrape time. Cheaper than downloading everything and filtering after.
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 this on a schedule?
Yes. Apify supports schedules and webhooks; use From date set to the previous run's start date for incremental runs.
Why is reviewerRole null for some reviews?
G2 makes the role field optional on the review form. About 48% of reviewers skip it.
Does this work for products with thousands of reviews?
Yes. Slack has ~39k reviews; you can extract them all in one run (set maxReviewsPerProduct to 50000). Expect ~12 minutes and ~$156 at base tier. Throughput is ~60 reviews/sec sustained.
Can I export G2 reviews to CSV or Excel?
Yes. The Output tab offers JSON, CSV, and Excel downloads on every dataset. The Overview view is laid out in customer-eye column order so it imports cleanly into Sheets / Excel.
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, and push new reviews into Slack / your CRM / a warehouse.
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).
Can I scrape G2 products and reviews in one workflow?
Yes, by chaining two runs of the same actor: (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. Wire the chain via Apify task chaining or a webhook.
Changelog
1.0 - Initial release (2026-05-21)
- 32 review-row keys (31 review fields +
modemarker), semantically ordered for readability - includingmarkdownContentfor 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 null 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.

