G2 Scraper - Reviews, Products, Analytics & Discussions
Pricing
from $0.04 / 1,000 reviews
G2 Scraper - Reviews, Products, Analytics & Discussions
๐ฅ ~$0.05/1K reviews ๐ฅ Scrape G2.com software reviews, products, analytics, comparisons, and discussions. Faceted filtering, facet-value discovery, 72 review fields, NLP sentiment, switching intelligence.
Pricing
from $0.04 / 1,000 reviews
Rating
0.0
(0)
Developer
Kai
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
6
Monthly active users
2 days ago
Last modified
Categories
Share
G2 Scraper
Collect structured G2 software reviews, products, analytics, comparisons, and discussions. Filter by region, review source, response type, sentiment themes, and discount, or discover available facet values before filtering.
Why use this scraper?
- Collect all matching public, approved reviews for a product with
maxReviewsPerProduct: 0. - Structured pros/cons/benefits parsed from each review.
- Per-dimension ratings: ease of use, setup, support, security, and more.
- NLP-extracted sentiment themes (what users love/hate).
- Competitive switching intelligence (what products users switched from and why).
- Faceted filtering: narrow reviews by primary region, review source, response type, loved/hated/switching themes, and discount.
- Facet-value discovery: list the valid values for any text facet before filtering.
- Analytics mode with aggregations, percentiles, and significant terms.
- Side-by-side product comparisons in a single request.
- Q&A discussion threads per product.
Use cases
- Compare competitors by sentiment, ratings, and switching patterns.
- Feed structured review data into NLP / AI pipelines.
- Track review trends over time for market research.
- Segment reviews by region, company size, review source, or sentiment theme.
- Find products by category, vendor, or keyword search.
- Search across public, approved reviews for specific topics.
How to use
Scrape reviews for a product
{"products": ["https://www.g2.com/products/slack/reviews"]}
Search for products and scrape their reviews
{"search": "project management","maxProducts": 5,"maxReviewsPerProduct": 50}
Browse a category
{"category": "CRM","maxProducts": 10,"maxReviewsPerProduct": 20}
Browse by vendor
{"vendor": "Salesforce","maxProducts": 5,"maxReviewsPerProduct": 10}
Compare products side-by-side
{"compare": ["slack", "clickup", "jira"]}
Get analytics (no individual reviews)
{"products": ["slack"],"analytics": true}
Global review search across all products
{"reviewSearch": "terrible customer support","maxReviews": 50}
Find similar reviews
{"similarTo": "The API was difficult to integrate and documentation was poor","maxReviews": 20}
Filter by date, rating, and company size
{"products": ["slack"],"dateFrom": "2025-01-01","ratings": ["1", "2"],"companySegment": ["enterprise"],"maxReviewsPerProduct": 100}
Filter by facets (region, source, themes)
{"products": ["slack"],"primaryRegions": ["Americas"],"sourceTypes": ["organic"],"responseTypes": ["video"],"maxReviewsPerProduct": 50}
Discover valid facet values
Returns the distinct values for each facet to the metadata dataset, so you know what to pass to the facet filters above. No reviews are scraped in this mode.
{"enumFields": ["source_type", "response_type"]}
Search within reviews with highlights
{"products": ["slack"],"reviewSearch": "customer support","includeHighlights": true,"maxReviewsPerProduct": 20}
Include Q&A discussions
{"products": ["slack"],"maxReviewsPerProduct": 10,"includeDiscussions": true}
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
products | string[] | Product URLs, slugs, or category URLs | |
search | string | Find products by keyword | |
category | string | Browse products by G2 category | |
vendor | string | Browse products by vendor name | |
compare | string[] | Compare product slugs side-by-side (analytics) | |
maxProducts | number | 10 | Max products in search/category/vendor mode |
sortBy | select | DATE_DESC | DATE_DESC, DATE_ASC, RATING_DESC, RATING_ASC, HELPFUL_DESC, G2_DEFAULT; rating sorts use the 1โ5 star rating |
ratings | string[] | ["1","2","3","4","5"] | Filter by star rating: 1, 2, 3, 4, or 5 |
maxReviewsPerProduct | number | 20 | Max reviews per product (0 = unlimited) |
companySegment | string[] | small_business, mid_market, enterprise | |
dateFrom | string | Date in YYYY-MM-DD format; reviews from this date | |
dateTo | string | Date in YYYY-MM-DD format; reviews through this date; cannot be earlier than dateFrom | |
primaryRegions | select[] | Americas, Asia Pacific, EMEA | |
sourceTypes | string[] | Filter by how the review was collected; use enumFields to list valid values | |
responseTypes | string[] | Filter by review medium (e.g. text, video) | |
loveThemes | string[] | Filter by themes reviewers praised | |
hateThemes | string[] | Filter by themes reviewers criticized | |
switchingThemes | string[] | Filter by reasons reviewers switched products | |
discounts | string[] | Filter by reported discount | |
reviewSources | string[] | Filter by review source channel | |
reviewSearch | string | Search within review text. Alone = global search | |
similarTo | string | Find reviews similar to this text | |
reviewIds | string[] | Fetch specific reviews by ID | |
maxReviews | number | 100 | Max reviews for global/similar search; 0 returns all global matches and uses the 1,000-review Similar cap |
enumFields | select[] | Discover source_type, response_type, love_theme_humanized, hate_theme_humanized, switching_theme_humanized, discount, or review_source; writes to the metadata Dataset instead of collecting reviews | |
analytics | boolean | false | Return aggregation analytics instead of reviews; requires one product selector |
collapseByProduct | boolean | false | One review per product in global or Similar search |
includeDiscussions | boolean | false | Fetch Q&A discussions in product review mode; cannot be combined with analytics |
includeHighlights | boolean | true | Highlight matching text in search results |
proxyConfiguration | object | {"useApifyProxy":true} | Configure network routing; Apify Proxy is enabled by default |
Choose one input mode: one of products, search, category, or vendor;
global reviewSearch; similarTo; reviewIds; compare; or enumFields.
reviewSearch can also be combined with a product selector to search within
those products. Set analytics: true alongside one product selector.
Repeated selectors and products found through overlapping inputs are emitted
once.
Review filters apply to product reviews, global search, Similar results,
analytics, and comparisons. A direct reviewIds lookup returns only the
requested records, and enumFields returns facet values, so review filters do
not apply to those two modes.
All review and analytics modes use public, approved reviews. A requested review ID is omitted when it does not identify a public, approved review.
When you switch away from the prefilled product example, clear products
before setting another mode. Conflicting modes, malformed dates, inverted date
ranges, and invalid enum values fail with an input error before collection
starts. An unknown product or comparison target is skipped; if none of the
requested products resolves, the run succeeds with empty datasets. A valid
search with no matches also succeeds with an empty reviews dataset.
sortBy orders product and global-search reviews. Similar results remain in
relevance order, while direct-ID result order is not guaranteed. Highlights
are returned only when reviewSearch is present and includeHighlights is
enabled.
Some valid older or rating-only reviews have an empty title or rawText,
and some discussions contain only a title. These fields remain empty strings
rather than being filled with invented text.
Output
Datasets
| Dataset | When | Content |
|---|---|---|
reviews (default) | Most modes | Individual review records |
products | Product-based modes | Product profiles |
analytics | analytics or compare mode | Aggregation statistics |
discussions | includeDiscussions: true | Q&A threads |
metadata | enumFields mode | Distinct facet values |
Review fields
The selected fields below came from one live Dataset record. Values are unchanged. Reviewer identity and other personal fields are omitted.
{"id": "13038740","productId": 3437,"productName": "Slack","reviewUrl": "https://www.g2.com/products/slack/reviews/13038740","title": "One-Click Integrations That Just Work for slack","pros": "Integration with other apps has to be 1 click","cons": "UI when you send the messages. The typing window should be adjustable","benefits": "connect and chatting with the team One-Click Integrations That Just Work for slack","rawText": "Integration with other apps has to be 1 click\nUI when you send the messages. The typing window should be adjustable\nconnect and chatting with the team One-Click Integrations That Just Work for slack","responseType": "text","nps": 8,"npsScore": 4,"easeOfUse": 5,"easeOfSetup": 5,"easeOfAdmin": 5,"easeOfDoingBusinessWith": 4,"meetsRequirements": 5,"qualityOfSupport": 3,"securityConfidence": 3,"securityImportance": 7,"direction": null,"loveTheme": null,"loveThemeHumanized": null,"loveThemeParentHumanized": null,"hateTheme": null,"hateThemeHumanized": null,"hateThemeParentHumanized": null,"switchedFromOtherProduct": "unknown","switchedFromProductIds": null,"switchedReason": null,"switchingThemes": null,"switchingThemesNested": null,"submittedAt": "2026-06-26T17:10:48.781-05:00","publishedAt": "2026-06-26T19:30:00.900-05:00","reviewSource": "user_profile","sourceType": "user_profile","helpful": 0,"englishAvailable": true,"contractLength": null,"discount": null,"price": 5,"status": "approved","isPublic": true,"published": true,"productPaidProfile": false,"productIds": [3437],"categoryIds": [2174, 2360, 2363],"defaultSort": 8.525176115868225,"templateKeyword": "react","videoReviewSubmittedAt": null,"editionIds": [],"expertiseIds": [],"serviceLocation": null,"contractLengthWeight": null,"discountWeight": null,"everApproved": true,"isInLimbo": false,"read": false,"reportable": true,"userUpdatedAt": "2026-06-26T17:10:48.965-05:00","highlightedSnippets": null,"scrapedAt": "2026-06-28T06:00:34.982Z"}
Analytics output
Aggregated over all matching public, approved reviews for a product.
nps/easeOfUse/etc. each carry avg, stdDev, min, max, and count;
the full record also includes easeOfSetup, easeOfAdmin,
qualityOfSupport, meetsRequirements, easeOfDoingBusinessWith,
securityConfidence, securityImportance, direction, topHateThemes,
uniquelyHated, and bySourceType. The selected fields below came from one
live analytics record and keep their values unchanged. This example omits
reviewer identity from nested samples.
{"productId": 3437,"productName": "Slack","productSlug": "slack","totalReviews": 20201,"totalHelpfulVotes": 69,"nps": { "avg": 9.211870699470323, "stdDev": 1.1668658162744323, "min": 0, "max": 10, "count": 20201 },"easeOfUse": { "avg": 6.549680122289532, "stdDev": 0.7953808393082141, "min": 1, "max": 7, "count": 17663 },"ratingDistribution": { "1": 40, "2": 93, "3": 468, "4": 3646, "5": 15954 },"npsPercentiles": { "p10": 8, "p25": 9, "p50": 10, "p75": 10, "p90": 10 },"uniqueCountries": 140,"uniqueIndustries": 145,"topLoveThemes": [{ "theme": "Chat", "count": 3436, "sampleReviews": [{ "title": "Slack Review", "npsScore": 4 }] },{ "theme": "Collaboration", "count": 2254, "sampleReviews": [{ "title": "\"Ping\" From Your Creative Side", "npsScore": 5 }] }],"uniquelyLoved": [{ "theme": "Chat", "score": 3.472215696777018, "count": 3436 },{ "theme": "Collaboration", "score": 1.2096931571663356, "count": 2254 }],"switchingReasons": [{ "reason": "Ease of use", "count": 126 },{ "reason": "Communication Features", "count": 108 }],"bySegment": [{ "code": 179, "label": "Small Business (50 or fewer emp.)", "count": 8191 },{ "code": 180, "label": "Mid-Market (51-1000 emp.)", "count": 8141 },{ "code": 181, "label": "Enterprise (>1000 emp.)", "count": 3516 }],"byRegion": [{ "region": "Americas", "count": 12760 },{ "region": "Asia Pacific", "count": 4821 },{ "region": "EMEA", "count": 2526 }],"reviewsOverTime": [{ "month": "2014-02", "count": 1 },{ "month": "2026-06", "count": 73 }]}
Facet values output (metadata dataset)
{"field": "source_type","type": "enum_values","values": ["ai_assisted_review", "api_collect", "g2_incentivized", "g2_nonincentivized","g2gives", "influitive", "organic", "pop_up", "referral", "review_referral","review_widget", "stale_reviews_callout", "thank_you_page", "un_survey","unincentivized", "user_profile", "vendor", "vendor_nonincentivized","vendor_self", "vendor_self_nonincentivized", "vendor_self_sendoso"],"count": 21}
Limitations
- Reviewer job titles and avatar URLs are not available.
industryandroleare returned as numeric category codes with a human-readable label for common values only; they are not available as filters.countryandregionare not available as filters because their values are not normalized across languages. UseprimaryRegion(Americas/Asia Pacific/EMEA) for consistent geography filtering.similarToreturns at most 1,000 reviews per run (a single relevance-ranked fetch; it does not paginate).- A product's
reviewCountreflects G2's total across all reviews; review scraping and analytics return only public, approved reviews, so their counts are typically lower. - Some reviews have unstructured text (no clear pros/cons/benefits separation).