G2 Scraper
Pricing
from $2.00 / 1,000 results
G2 Scraper
Scrape the ranked software landscape of any G2 category: rating, review count, the top pros and cons with how many reviews mention each, G2's own review summary, and which placements are paid.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Juan ignacio Veltri
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrapes the ranked software landscape of any G2 category — every product in the list with its rating, how many reviews back it, the attributes reviewers keep praising and complaining about, and which slots G2 sold.
One request returns the whole competitive picture of a software market. Point it
at https://www.g2.com/categories/crm and you get the top 15 CRMs ranked, each
with its score, its review volume, and the five things users love and the five
they don't — the conclusions, not the raw reviews.
What makes this different
Most G2 scrapers hand you reviews: thousands of rows of free text that you then have to read, cluster, and count yourself to learn anything. This one starts from what G2 has already computed across all of them.
Reviewers' verdict, already counted. HubSpot Sales Hub has 13,919 reviews. This Actor returns:
"pros": [{ "name": "Ease of Use", "mentions": 1215 },{ "name": "Features", "mentions": 701 },{ "name": "Helpful", "mentions": 672 },{ "name": "Lead Management", "mentions": 570 },{ "name": "Intuitive", "mentions": 538 }],"cons": [{ "name": "Missing Features", "mentions": 435 },{ "name": "Limited Features", "mentions": 409 },{ "name": "Learning Curve", "mentions": 383 },{ "name": "Expensive", "mentions": 318 },{ "name": "Limited Customization", "mentions": 288 }]
That is the answer you would otherwise scrape 13,919 reviews to compute.
Paid placements, flagged. G2 sells slots inside its category listings and
does not mark them apart from the ranking in any machine-readable way. Every row
carries isSponsored, and paid slots get rank: null because they hold no
ranked position. Without that field a G2 export reads as a merit ranking when
part of it is sold inventory.
The ranking is a real ranking. rank counts ranked products only. Ads are
not interleaved into the numbering, so rank: 5 means fifth best by G2 Score,
not fifth row on the page.
Input
{"startUrls": ["https://www.g2.com/categories/crm"],"maxPagesPerListing": 3,"minReviews": 50,"includeSponsored": true}
Product URLs work too, on their own or mixed in:
{"startUrls": ["https://www.g2.com/categories/project-management","https://www.g2.com/products/hubspot-sales-hub/reviews"],"scrapeProductDetails": true}
| Parameter | Type | Default | What it does |
|---|---|---|---|
startUrls | array | ["https://www.g2.com/categories/crm"] | Category URLs, product URLs, or both. ?order=highest_rated and ?order=popular are respected and kept across pages. |
maxPagesPerListing | integer | 3 | Pages per category. 15 ranked products per page, so 3 pages is the top 45. Big categories run past 100 pages. |
scrapeProductDetails | boolean | false | Opens each product page to fill in all ten mention counts, every category the product is listed in, and the vendor's description. Costs one extra request per product. |
minRating | string | — | Keep products at or above this, 0–5. Unrated products are dropped rather than assumed to pass. |
minReviews | integer | — | Keep products with at least this many reviews. Drops the 5.0-from-four-reviewers noise. |
includeSponsored | boolean | true | Set to false for a listing with no advertising in it. |
prosKeywords | array | — | Keep only products praised for one of these. |
consKeywords | array | — | Keep only products criticized for one of these — how you find competitors whose users are unhappy about the thing you do well. |
vendorKeywords | array | — | Keep only products whose vendor or name matches. |
maxItems | integer | 100 | Hard cap on rows saved and charged. 0 means no cap. |
includeSeen | boolean | true | Set to false to only save products never returned before, for tracking a category over time. |
maxConcurrency | integer | 2 | Parallel requests. |
maxRequestsPerMinute | integer | 20 | Rate limit for the run. |
Output
One row per product.
{"id": "g2:hubspot-sales-hub","url": "https://www.g2.com/products/hubspot-sales-hub/reviews","source": "g2","scrapedAt": "2026-08-24T20:08:11.485Z","productId": "hubspot-sales-hub","name": "HubSpot Sales Hub","vendor": "HubSpot","vendorUrl": "https://www.g2.com/sellers/hubspot","rating": 4.4,"reviewsCount": 13919,"rank": 2,"category": "CRM","categories": ["Sales Engagement", "Email Tracking", "CRM", "..."],"reviewSummary": "Users consistently praise the ease of use and intuitive interface of HubSpot Sales Hub, which simplifies managing sales processes and enhances productivity...","pros": [{ "name": "Ease of Use", "mentions": 1215 }],"cons": [{ "name": "Missing Features", "mentions": 435 }],"isSponsored": false,"logo": "https://images.g2crowd.com/uploads/product/image/large_detail/..."}
| Field | Notes |
|---|---|
rank | Position among ranked products, continuing across pages. null for a paid slot. |
category | The category the row was read from. null when the product was requested directly. |
categories | Every category G2 lists the product in — 13 for HubSpot Sales Hub. Needs a product page, so it fills in with scrapeProductDetails or when you pass a product URL. |
reviewSummary | G2's own summary of all its reviews for the product. Only category listings publish it. |
pros / cons | Five each, ordered by weight. mentions is how many reviews say it — the listing publishes the top one of each, the product page publishes all ten. |
rating | Always on a 0–5 scale. G2 publishes the same score both out of 5 and out of 10 on the same page; this normalizes it. |
isSponsored | true for a paid slot, and also true for a product that ranks organically and bought a slot on the same page. |
Ratings you can trust
A 5.0 rating from four reviewers outranks a 4.4 from 13,919 unless you look at
reviewsCount. Set minReviews and the ranking becomes readable.
What this Actor does not do
It does not scrape individual reviews. If you need the review text itself — per-reviewer job title, company size, the full write-up — this is the wrong tool and there are Actors on the Store built for exactly that. This one is for the market-level view.
Notes
G2 sits behind DataDome, which filters on TLS fingerprint and a JavaScript challenge rather than on IP, so rotating addresses alone does not get through. The Actor runs behind Apify's Unblocker, verified against category pages, deep pagination, alternate sort orders and product pages.
Each row is charged once. Empty and duplicate rows are never charged.