G2 Reviews Scraper - Deep Data & Product Analytics avatar

G2 Reviews Scraper - Deep Data & Product Analytics

Pricing

from $1.00 / 1,000 g2 reviews

Go to Apify Store
G2 Reviews Scraper - Deep Data & Product Analytics

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

Kelopr_bk

Maintained by Community

Actor 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

  1. Add product URLs or slugs, one per line: notion, slack, or a G2 product review URL.
  2. Choose Latest for a recent sample or Deep History for a larger research set.
  3. Set Maximum reviews per product. Leave Add product summaries enabled for analytics.
  4. Run, then open Reviews, Survey ratings, Switching data or Product summaries.
{
"productUrls": ["notion", "slack"],
"mode": "product_reviews",
"maxReviews": 25,
"includeAnalytics": true
}

🧭 Collection modes

ModePurposeLimit per product
product_reviewsRecent, bounded review sample125
deep_historyLarger paginated research dataset5,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

GroupFields
IdentityreviewId, reviewUrl, productId, productSlug, productName, title
Ratingrating (0–5), nps (0–10 recommendation answer), npsScore / starRatingBucket (1–5 bucket)
Survey scoreseaseOfUse, easeOfSetup, easeOfAdmin, qualityOfSupport, meetsRequirements, easeOfDoingBusinessWith, securityConfidence, securityImportance, price
TextreviewText, reviewTextSource, rawSurveyText, likeBest, dislike, problemsSolved, markdownContent
Reviewer contextreviewerName, reviewerRole, roleId, roleLabel, isAnonymous, reviewerIdentityPublic, companySize, companySegmentId, companySegmentLabel, industryId, industryLabel, industryLabelSource, country, region, primaryRegion
Collection contextsourceType, reviewSource, responseType, helpful, discount, contractLength, englishAvailable, videoIncluded
SwitchingswitchedFromOtherProduct, switchedFromOtherProductRaw, switchedFromProductIds, switchedFromProducts, switchedReason, switchingThemes
ThemesloveThemes, hateThemes, plus the original theme codes
Dates and qualitypublishedAt, 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_self family 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

FieldDefaultMeaning
productUrlsRequiredUp to 25 product URLs or slugs
modeproduct_reviewsLatest or Deep History
maxReviews25Maximum saved reviews per product
includeAnalyticstrueAdd product summaries and report
starRatingsAllRating buckets 1–5
sortBynewestReview ordering
dateFrom, dateToUnsetOptional publication-date window
maxRetries3Bounded source attempts, maximum 6
proxyConfigurationApify residential US fallbackDirect 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.