G2 Product Reviews Scraper
Pricing
Pay per event
G2 Product Reviews Scraper
Extract public G2 product reviews, ratings, pros, cons, reviewer context, dates, and switching data for recurring competitive intelligence.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Extract public G2 product reviews into structured records for product research, customer-feedback analysis, and recurring competitor intelligence. Supply one or more G2 product URLs, choose rating and date filters, and receive review text, ratings, pros, cons, reviewer context, dates, switching data, sub-ratings, and stable source links.
The Actor is designed for repeatable workflows: run a one-time review analysis, schedule the same input weekly, or feed normalized G2 reviews into a warehouse, dashboard, spreadsheet, or language-model pipeline.
What does G2 Product Reviews Scraper do?
The Actor resolves each supplied G2 product URL through G2's public structured data surface. It retrieves approved public reviews, follows cursor pagination, applies your filters, and writes normalized review records to the default Apify dataset.
Recent reviews are also matched against G2's public review RSS feed. When that feed exposes separate answers, the Actor populates pros and cons. The complete combined public answer remains in reviewText.
It does not require a G2 login, browser, user cookie, or proxy configuration.
Who is it for?
- Product marketers tracking how buyers describe competing tools.
- Product managers collecting recurring feedback and low-rating pain points.
- Customer research teams preparing review corpora for qualitative analysis.
- Competitive-intelligence analysts comparing review volume and themes across products.
- Data engineers who need a repeatable G2 reviews API-style dataset.
- AI teams building retrieval, classification, or sentiment-analysis pipelines.
Why use this Actor?
- Accepts real G2 product URLs or bare product slugs.
- Handles multiple products in one run.
- Supports newest, helpful, high-rating, and low-rating ordering.
- Filters by minimum rating, maximum rating, and date.
- Uses stable review IDs for downstream deduplication.
- Produces typed JSON records in the default dataset.
- Runs with lightweight HTTP requests rather than a browser.
- Stops at the requested global review limit.
What G2 review data is extracted?
| Field | Meaning |
|---|---|
reviewId | Stable G2 review identifier |
reviewUrl | Public source URL for the review |
productId, productName, productSlug | Product identity |
title, reviewText | Review headline and combined answer text |
pros, cons | Separately labelled recent-feed answers when available |
rating, nps | 1–5 rating and source NPS-style value |
reviewerName | Public reviewer display name |
reviewerRole | G2 role classification identifier |
reviewerCompanySegment | G2 company-segment classification identifier |
reviewerIndustry | G2 industry classification identifier |
reviewerCountry, reviewerRegion | Public reviewer location context |
publishedAt, updatedAt | Source timestamps |
helpfulVotes | Public helpful-vote count |
easeOfUse, easeOfSetup | Product sub-ratings when available |
qualityOfSupport, meetsRequirements | Additional sub-ratings when available |
switchedFromOtherProduct, switchedReason | Public switching context |
vendorResponse | Vendor response when the public surface exposes one; normally null |
retrievedAt | ISO timestamp for this extraction |
Fields are nullable because G2 does not expose every attribute on every review.
Getting started
- Open the Actor input page in Apify Console.
- Add a G2 URL such as
https://www.g2.com/products/slack/reviews. - Choose a review limit and sort order.
- Optionally set rating or date filters.
- Click Start.
- Open the default dataset to inspect, download, or integrate the records.
The prefilled Slack input is intentionally small and works without credentials.
Input parameters
productUrls
Required array with 1–20 G2 product URLs or product slugs. Accepted examples:
https://www.g2.com/products/slackhttps://www.g2.com/products/slack/reviewsslack
Non-G2 URLs and unsupported paths fail validation rather than being silently scraped.
maxReviews
Maximum review records across all supplied products. For multi-product inputs, the Actor balances the available record budget across resolved products; unused capacity from a sparse product flows to later products. Default: 100. Range: 1–5000.
sortBy
newest— newest submitted reviews first.helpful— highest helpful count first.rating_high— highest ratings first.rating_low— lowest ratings first.
minRating and maxRating
Inclusive 1–5 rating boundaries. For pain-point analysis, set maxRating to 3. The Actor rejects a minimum greater than the maximum.
sinceDate
Optional ISO 8601 timestamp. Use this in scheduled workflows to request only records newer than a known checkpoint, for example 2026-01-01T00:00:00.000Z.
Example input
{"productUrls": [{ "url": "https://www.g2.com/products/slack/reviews" },{ "url": "https://www.g2.com/products/microsoft-teams/reviews" }],"maxReviews": 50,"sortBy": "newest","minRating": 1,"maxRating": 3,"sinceDate": "2026-01-01T00:00:00.000Z"}
Example output
{"reviewId": "12345678","reviewUrl": "https://www.g2.com/products/sample-product/reviews/12345678","productId": 1234,"productName": "Sample Product","productSlug": "sample-product","title": "Useful collaboration software","reviewText": "The product helps our team collaborate efficiently.","pros": "Easy to use and quick to set up.","cons": "Some advanced settings take time to learn.","rating": 5,"nps": 9,"reviewerName": "Sample Reviewer","reviewerCountry": "United States","publishedAt": "2026-01-15T12:00:00.000Z","helpfulVotes": 4,"vendorResponse": null,"retrievedAt": "2026-01-15T12:05:00.000Z"}
The displayed example is anonymized. Live output contains public source values.
How much does it cost to extract G2 product reviews?
Pricing uses pay per event. A run has a one-time $0.005 start event plus one review event per emitted review. No charge is emitted for a rejected, duplicate, or missing record.
At the BRONZE tier, a review costs $0.004:
| Reviews | Estimated BRONZE price |
|---|---|
| 10 | 0.045 USD |
| 100 | 0.405 USD |
| 1,000 | 4.005 USD |
Higher subscription tiers receive lower per-review event prices. The Apify Console shows the tier applicable to your account before a run. Estimates exclude unrelated platform plan fees.
Recurring competitor-review monitoring
Create an Apify Task with several product URLs and a sinceDate, then schedule it daily or weekly. Stable reviewId values let your destination deduplicate records. Update the checkpoint in your orchestration layer, or retain IDs in your warehouse and process only unseen reviews.
A practical workflow is:
- Run the Actor on a schedule.
- Export dataset items through an integration or webhook.
- Upsert by
reviewId. - Classify new low-rating reviews by topic.
- Alert product or competitive-intelligence owners on material changes.
The Actor does not maintain a cross-run database or send alerts itself.
Export and integrations
Apify datasets support JSON, JSONL, CSV, XML, RSS, and Excel downloads. You can connect results to Google Sheets, Make, Zapier, webhooks, cloud storage, or your own API client.
For analytics, treat numeric G2 role, segment, and industry values as source classification IDs. Do not invent labels without a maintained G2 mapping.
Run with the Apify API
Replace <APIFY_TOKEN> with your token.
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~g2-product-reviews-scraper/run-sync-get-dataset-items?token=<APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"productUrls":[{"url":"https://www.g2.com/products/slack/reviews"}],"maxReviews":20}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/g2-product-reviews-scraper').call({productUrls: [{ url: 'https://www.g2.com/products/slack/reviews' }],maxReviews: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient(token='<APIFY_TOKEN>')run = client.actor('automation-lab/g2-product-reviews-scraper').call(run_input={'productUrls': [{'url': 'https://www.g2.com/products/slack/reviews'}],'maxReviews': 20,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Use with MCP and AI agents
Add the Actor to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/g2-product-reviews-scraper"
Claude Desktop
Add this HTTP server to your Claude Desktop MCP configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/g2-product-reviews-scraper"}}}
Cursor
Open Cursor settings, add a remote MCP server, and use the same https://mcp.apify.com?tools=automation-lab/g2-product-reviews-scraper URL.
VS Code
Add an HTTP MCP server in your VS Code MCP configuration using the same Actor-specific endpoint.
Example prompts:
- “Extract the 50 newest public Slack reviews from G2.”
- “Collect G2 reviews rated three stars or lower for Notion.”
- “Compare recent low-rating feedback for Slack and Microsoft Teams.”
Limits and source behavior
- Only public G2 product review data is processed.
- The source may omit attributes, so every enrichment field is nullable.
- Separate
prosandconsare best-effort fields for reviews present in the public recent-review feed.reviewTextremains the canonical combined source text. - Public vendor responses are not currently exposed by the working structured data/feed routes, so
vendorResponseis normallynull. - The Actor does not scrape category search pages or discover products by keyword.
- Input is capped at 20 products and 5,000 reviews per run.
- Upstream source changes can temporarily affect availability or field coverage.
Reliability and troubleshooting
Requests use bounded retries for network errors, rate limits, and temporary server failures. Deterministic input errors are not retried.
“None of the supplied product URLs resolved” means the slug is invalid, removed, or not a public G2 product. Open the URL in G2 and copy its canonical /products/<slug>/reviews form.
I received fewer records than requested can mean the rating/date filters match fewer reviews or the product has fewer public reviews. The maximum is a cap, not a guaranteed count.
Why are pros or cons null? G2's broader structured review surface combines answers. Separate pros/cons are available only where the recent RSS record can be matched by review ID.
Responsible use and legality
Use the Actor only for lawful purposes and public information you are permitted to process. Follow G2's terms, applicable privacy and database rules, and your organization's retention policies. Do not use public reviewer data for harassment, discrimination, spam, or attempts to identify people beyond what they chose to publish.
This Actor is an independent extraction tool and is not affiliated with or endorsed by G2.
FAQ
Does it require a G2 account?
No. It uses public structured review surfaces and public feeds.
Can I supply a bare slug?
Yes. slack and its canonical G2 product URL resolve to the same product.
Can it extract multiple products?
Yes, up to 20 per run. maxReviews applies globally and is balanced across resolved products so one high-volume product does not consume the full multi-product budget.
Can I monitor new reviews?
Yes. Schedule a Task and use sinceDate plus stable reviewId values in your destination. The Actor itself does not store cross-run state or send alerts.
Does it translate or summarize reviews?
No. It returns source text. Add your own analysis step so the original review data stays auditable.
Are vendor responses guaranteed?
No. The public working surfaces do not currently expose historical vendor replies, so vendorResponse is nullable and normally empty.
Related automation-lab Actors
- G2 Reviews & Products Scraper — choose this broader Actor when you also need product discovery and product records.
- G2 Software Review Feed Scraper — choose this feed-only option for a small recent-review workflow.
Choose this Actor for URL-led review extraction with rating/date filters and a normalized review-intelligence contract.