G2 Reviews Scraper - Deep Data & Product Analytics
Pricing
from $1.00 / 1,000 g2 reviews
G2 Reviews Scraper - Deep Data & Product Analytics
Extract G2 reviews with ratings, pros and cons, survey scores, reviewer context, and switching history. Get product summaries, NPS, rating trends, and review-source breakdowns. Collect recent reviews or deep history. Export JSON, CSV, or Excel. No G2 API key required.
Pricing
from $1.00 / 1,000 g2 reviews
Rating
0.0
(0)
Developer
Kelopr_bk
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
G2 Reviews Scraper β Survey Data & Product Analytics
Collect published G2 reviews with survey ratings, reviewer context, review-source information and switching history. Each run can also produce a product summary: rating distribution, monthly trends, subrating averages, NPS and incoming competitor switches.
No G2 account or source API key is required. Existing review fields stay available when the source provides them. The Actor preserves anonymity and reports missing data explicitly.
π Start in one minute
- Add product URLs or slugs, one per line:
notion,slack, or a G2 product review URL. - Choose Latest for a recent sample or Deep History for a larger research set.
- Set Maximum reviews per product. Leave Add product summaries enabled for analytics.
- Run, then open Reviews, Survey ratings, Switching data or Product summaries.
{"productUrls": ["notion", "slack"],"mode": "product_reviews","maxReviews": 25,"includeAnalytics": true}
π§ Collection modes
| Mode | Purpose | Limit per product |
|---|---|---|
product_reviews | Recent, bounded review sample | 125 |
deep_history | Larger paginated research dataset | 5,000 |
maxReviews limits saved reviews per product. Duplicate product inputs are removed. Source availability, filters and the run spending limit can reduce the result count; the run diagnostics explain why.
These are the two supported modes. The Actor does not maintain an incremental cursor between separate runs. You can schedule snapshots using Apify Tasks and Schedules.
Historical research with filters
{"productUrls": ["slack"],"mode": "deep_history","maxReviews": 500,"starRatings": ["1", "2", "3"],"dateFrom": "2026-01-01","dateTo": "2026-09-01","sortBy": "newest","includeAnalytics": true}
Date-only bounds use UTC; Published through includes the whole specified day. Sorting supports newest, oldest, highest rating, lowest rating and most helpful. Rating filters use G2's five buckets: half-star ratings round up, so 4.5 belongs to bucket 5.
π¦ Review fields
| Group | Fields |
|---|---|
| Identity | reviewId, reviewUrl, productId, productSlug, productName, title |
| Rating | rating (0β5), nps (0β10 recommendation answer), npsScore / starRatingBucket (1β5 bucket) |
| Survey scores | easeOfUse, easeOfSetup, easeOfAdmin, qualityOfSupport, meetsRequirements, easeOfDoingBusinessWith, securityConfidence, securityImportance, price |
| Text | reviewText, reviewTextSource, rawSurveyText, likeBest, dislike, problemsSolved, markdownContent |
| Reviewer context | reviewerName, reviewerRole, roleId, roleLabel, isAnonymous, reviewerIdentityPublic, companySize, companySegmentId, companySegmentLabel, industryId, industryLabel, industryLabelSource, country, region, primaryRegion |
| Collection context | sourceType, reviewSource, responseType, helpful, discount, contractLength, englishAvailable, videoIncluded |
| Switching | switchedFromOtherProduct, switchedFromOtherProductRaw, switchedFromProductIds, switchedFromProducts, switchedReason, switchingThemes |
| Themes | loveThemes, hateThemes, plus the original theme codes |
| Dates and quality | publishedAt, publishedAtRaw, submittedAt, videoReviewSubmittedAt, scrapedAt, dataSource, structuredAnswersStatus, structuredAnswersMatchSurveyText |
Fields are conditional. Missing survey answers are not replaced with zeros; 0 and false remain genuine values. price is a survey score, not a monetary amount. Core survey dimensions use a 1β7 scale.
Stars and NPS are different
For example, a source recommendation answer nps: 9 corresponds to rating: 4.5 and G2's rounded bucket npsScore: 5. Product NPS uses only actual 0β10 recommendation answers: promoters 9β10, passives 7β8, detractors 0β6. It is not guessed from rounded stars when the recommendation answer is missing.
Text and anonymous reviewers
G2's survey search combines free-text answers. The full combined text is retained. Separate like/dislike/problems answers come from public RSS entries with matching IDs, titles and ratings; question boundaries are not guessed from line breaks.
structuredAnswersStatus explains the coverage: complete means all labelled answers agree with the combined survey text; rss_only means RSS supplies answers missing from the survey index, which can occur for non-English reviews; source_text_differs preserves both source versions with an explicit mismatch flag. For non-English reviews, G2's RSS may supply an English version: the original title and rssTitle remain separate. Missing labelled answers remain empty. reviewTextSource identifies the source used for the combined text; reviewTextStatus explicitly marks reviews whose text is unavailable from both collected sources. API publication dates may reflect republication; rssPublishedAt preserves the RSS date separately.
Approved, published anonymous reviews are included. Their hidden names are neither requested nor exposed. A public RSS display label may be used; otherwise the reviewer name remains empty. Industry labels are supplied only when available from the matched public display; raw classification IDs remain available, including when a label is unknown.
π Product summaries
Analytics are calculated only from reviews saved in this run, using the same collected data. They do not add review-charge events. Open:
- Product summaries (JSON) β complete statistics in
PRODUCT_SUMMARIES. - Readable summary β a compact Markdown report in
REPORT. - Run diagnostics β filters, source coverage and stop reasons in
OUTPUT.
Each product summary includes:
- Exact rating distribution and unweighted average.
- UTC publication-month counts and rating averages.
- Subrating means with answered, missing and invalid counts.
- NPS with promoter/passive/detractor counts and the actual denominator.
- Ratings grouped by company segment, industry, region and country. Unknown labels retain their source classification IDs.
- Review-source counts and
vendor_selffamily shares, both among known sources and across the whole saved sample. - Incoming switching edges, resolved product names when available, source IDs, reasons, source themes and example review IDs.
- Per-field coverage and vendor-response availability.
Read the scope correctly
A 50-review sample is not the whole product history. Filters and limits affect every average and percentage. These arithmetic sample statistics are not G2's proprietary overall score. Product-profile totals and matching review-search totals may differ; they are labelled separately.
The vendor_self family describes reviews collected through that recorded source. It is not proof of fake reviews. Other source types are not automatically classified as organic, and unknown sources are counted separately.
Switching data describes what reviewers explicitly said they switched from into the reviewed product. It is not a complete map of departures or market-wide churn. Product-name resolution is batched; unresolved origin IDs remain available without invented names.
Vendor responses
The public survey source currently does not expose vendor reply bodies. vendorResponseStatus is not_exposed_by_source; unknown reply status is not counted as βno replyβ. The field comment_answer_values contains the reviewer's answers, not a vendor response.
βοΈ Inputs
| Field | Default | Meaning |
|---|---|---|
productUrls | Required | Up to 25 product URLs or slugs |
mode | product_reviews | Latest or Deep History |
maxReviews | 25 | Maximum saved reviews per product |
includeAnalytics | true | Add product summaries and report |
starRatings | All | Rating buckets 1β5 |
sortBy | newest | Review ordering |
dateFrom, dateTo | Unset | Optional publication-date window |
maxRetries | 3 | Bounded source attempts, maximum 6 |
proxyConfiguration | Apify residential US fallback | Direct requests first; bounded configured-proxy retries when needed |
If public survey search is temporarily unavailable, the Actor may preserve a bounded RSS snapshot for newest-first requests. That fallback has fewer fields and is marked as a partial source. It cannot claim a full historical scan or a most-helpful ordering.
π³ Billing and resource limits
The existing charge remains $1 per 1,000 saved review rows, plus the existing $0.00005 Actor Start. Check the Pricing tab for your run. Product summaries are stored separately from the paid review dataset; no extra result rows are created for diagnostics or analytics.
The Actor checks whether the spending limit can cover a review before contacting sources, and stops when it cannot charge another review. Source requests, response sizes, retries, time without output and estimated platform costs are bounded. Empty or unsuccessful source lookups do not create chargeable review rows. Already saved reviews remain available after a partial stop.
The Actor uses 512 MB. For large jobs, start with a small sample to inspect field coverage and source availability.
π API example
Use your Apify token outside source code; no G2 key is needed.
curl -X POST "https://api.apify.com/v2/acts/trakk~g2-reviews-scraper/runs" \-H "Authorization: Bearer YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"productUrls":["notion"],"maxReviews":50,"includeAnalytics":true}'
The resulting default dataset contains reviews. Fetch PRODUCT_SUMMARIES, REPORT and OUTPUT from the run's default key-value store.