To scrape G2 reviews, give a ready-made Actor a product's G2 URL (or just its slug, such as notion), and it returns one row per review: star rating, title, what the reviewer likes and dislikes, the problems the product solves, the reviewer's role, company size and industry, and how G2 validated the review. On Scrape.ly that's one input and one click, or a single API call, with no G2 account and no cookies.
This guide covers the fields you get, the no-code steps, the same job in curl, Python, Node.js and through an AI agent, a real run from 27 October 2026 (the six newest Notion reviews plus G2's pros and cons summary), its log and exact cost, and where product data such as pricing editions and alternatives comes from.
What data you can get from G2
The G2 Reviews Scraper returns one row per review, with every answer in its own field:
| Field | What it holds |
|---|---|
title, starRating | Headline and rating on G2's 0–5 scale in half stars |
date, updatedDate | Published date and last edit |
likes, dislikes, problemsSolved, recommendations | The main review answers, kept apart |
answers | Every question and answer in order |
text, markdownContent | All answers joined, and a Markdown version ready for an LLM |
reviewerName, reviewerTitle, companySize, reviewerIndustry | Reviewer details as G2 shows them |
validatedReviewer, validatedMethod, verifiedCurrentUser | Validation badges (LinkedIn, business email) |
reviewSource, incentivized, aiTranslated, excludedFromG2Score | Where the review came from and how G2 treats it |
productName, productSlug, sellerSlug | The product (and seller, for seller URLs) |
Turn on includeProsConsSummary and the run also saves G2's own summary of the product's top pros and cons, with a mention count per topic, at no extra cost. Video reviews come as extra rows with includeVideoReviews.
For product-level data (rating, star split, pricing editions, categories, alternatives, comparisons and integrations), the companion G2 Products Scraper reads product, category and search pages.
How to scrape G2 reviews without code
- Open the G2 Reviews Scraper in the Scrape.ly Store.
- Paste a product URL such as
https://www.g2.com/products/notion/reviewsinto G2 product or seller URLs, or start from the lowest-rated Notion reviews preset. This is the input we ran:
{
"startUrls": ["https://www.g2.com/products/notion/reviews"],
"maxReviews": 6,
"sortOrder": "most_recent",
"includeVideoReviews": false,
"includeProsConsSummary": true
}- Click Start. Our run finished in 16 seconds.
- Open the dataset and export it as JSON, CSV, Excel or HTML. The pros and cons summary sits in the run's key-value store as
pros-cons-notion.
The input fields that matter most:
startUrls: G2 product review pages, seller pages (https://www.g2.com/sellers/<seller>collects reviews across all of a vendor's products) or bare slugs likenotion.maxReviews: text reviews per URL (default 20). Video reviews have their own cap,videoReviewLimit.sortOrder:most_recent,most_helpful,highest_ratedorlowest_rated.starRatings: keep only some ratings, for example["1", "2"]for a competitor's complaints.publishedAfter: a date (2026-08-01) or a period (7 days,1 month), so a scheduled run returns only new reviews.searchQuery: keep reviews that contain these words. The Notion reviews about templates preset shows it.
How to scrape G2 reviews with the API
Create a token under Settings → API & Integrations in the dashboard and store it as SCRAPELY_TOKEN. A run of a few dozen reviews takes about 15 to 30 seconds, inside the synchronous endpoint's 45-second wait:
curl -X POST "https://api.scrape.ly/v2/actors/cornerledger~g2-reviews-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $SCRAPELY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls": ["notion"], "maxReviews": 20, "sortOrder": "most_recent", "publishedAfter": "7 days"}'For hundreds of reviews or several products, start the run asynchronously so a 408 timeout can't tempt you into starting a second run: POST /v2/actors/cornerledger~g2-reviews-scraper/runs, poll /v2/actor-runs/RUN_ID?waitForFinish=60 until SUCCEEDED, then read /v2/actor-runs/RUN_ID/dataset/items?format=csv. The API docs show the full flow.
In Python (pip install scrapely-client-python), this competitor-research script pulls the 1- and 2-star reviews of the last 90 days for three tools and prints what each reviewer dislikes, with their company size:
import os
from scrapely_client import ScrapelyClient
client = ScrapelyClient(os.environ["SCRAPELY_TOKEN"], api_url="https://api.scrape.ly")
run = client.actor("cornerledger/g2-reviews-scraper").call(
run_input={
"startUrls": ["notion", "clickup", "asana"],
"maxReviews": 50,
"sortOrder": "most_recent",
"starRatings": ["1", "2"],
"publishedAfter": "90 days",
}
)
for r in client.dataset(run.default_dataset_id).iterate_items():
print(r["productName"], r["starRating"], r.get("companySize"), "|", (r.get("dislikes") or "")[:120])In JavaScript or Node.js (npm install scrapely-client), feed last week's reviews to your own sentiment model or an LLM, using the ready-made Markdown field:
import { ScrapelyClient } from 'scrapely-client';
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN, baseUrl: 'https://api.scrape.ly' });
const run = await client.actor('cornerledger/g2-reviews-scraper').call({
startUrls: ['https://www.g2.com/products/notion/reviews'],
maxReviews: 100,
publishedAfter: '7 days',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
const docs = items.map((r) => r.markdownContent);
console.log(items.length, docs[0]?.slice(0, 200));The Python client docs cover paging through large datasets.
With an AI agent (MCP)
Scrape.ly runs a hosted MCP server at https://mcp.scrape.ly. In Cursor, add it to ~/.cursor/mcp.json:
{
"mcpServers": {
"scrapely": {
"url": "https://mcp.scrape.ly",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}In Claude Code, run claude mcp add --transport http scrapely https://mcp.scrape.ly, then /mcp to sign in with OAuth. Then ask: "Use scrapely to get the 100 newest G2 reviews of Notion and ClickUp, and compare the top three dislikes per product, split by company size." The MCP docs list ChatGPT, VS Code, Windsurf and the other clients.
A real run: Notion's newest G2 reviews
We ran the input above on 27 October 2026. It saved 6 reviews in 16.4 seconds, 12.3 of them spent scraping (14 requests). Reviewers are private people, so we show them as [reviewer 1] to [reviewer 5] and leave out their job titles, which the dataset does include:
| Reviewer | Stars | Published | Title | Company size | Validated | Source |
|---|---|---|---|---|---|---|
| [reviewer 1] | 5 | 2026-10-26 | Notion Turns Scattered Notes into Organized Pages and Databases | Small-Business | Organic | |
| [reviewer 2] | 4 | 2026-10-26 | Notion Keeps Product Requirements and Roadmaps Organized… | Mid-Market | Business email | G2 invite |
| [reviewer 3] | 5 | 2026-10-26 | Daily work like task and shortcut | Mid-Market | Business email | Organic, from user profile |
| [reviewer 4] | 4.5 | 2026-10-25 | Simple way to organize our hospital duties | Small-Business | G2 invite | |
| [reviewer 5] | 5 | 2024-08-02 (edited 2026-10-23) | One Stop Shop for Productivity and Organizing… | Enterprise | Seller invite |
2026-10-27T16:04:14.850Z [Scrapely] Container started (setup 1.6 s)
2026-10-27T16:04:16.463Z [scrapely.proxy_configuration] INFO Platform proxy access check succeeded.
2026-10-27T16:04:29.166Z [scrapely.actor] INFO [Status message]: Done: 6 result(s) from 1 target(s).
2026-10-27T16:04:29.751Z [Scrapely] Container state: status=exited exitCode=0 oomKilled=falseWhat the six rows and the summary show:
- Every review is validated, most are invited. All six reviewers were validated (three by LinkedIn, three by business email), and five carried G2's current-user badge. But four of six were marked incentivized, and four came through a G2 or seller invitation rather than organically. If you compute your own score, the
reviewSourceandincentivizedfields let you weight or split them. - Not every review counts toward G2's score. Two of the six had
excludedFromG2Score: true. Filter on it if you want to reproduce G2's number. - Edits resurface old reviews. Reviewer 5 first wrote in August 2024, edited the review on 23 October 2026, and it appeared among the newest. For "what's new this week", filter on
date, not on position in the list. - Dislikes are specific and actionable. In six reviews: AI answers that still need checking and pricing that "feels steep", workspaces that get messy as everyone creates pages, the desktop app not opening, the mobile app slow on weak connections, limited export options and search delays. That is a backlog, not a sentiment score.
- Industry is often hidden. Five of six reviewers left
reviewerIndustryempty; company size was filled for all six, and five of six gave a job title, from customer service to product management and marketing. Segment by size and role, and treat industry as a bonus. - The summary gives you scale. G2's pros and cons record listed Notion at 4.6 stars from 13,888 reviews. The top pro, Ease of Use, had 4,750 mentions; the top con, Learning Curve, had 1,894, followed by Limited Features (1,027). It's the fastest way to see a product's reputation before you read individual reviews.
What it costs
The Actor charges one event per saved review or video review, platform usage (compute and residential proxy) included. Price checked on the Store page on 27 October 2026: $0.00414 per review ($4.14 per 1,000). The pros and cons summary is free.
Our run: 6 × $0.00414 = $0.02484 at list price. Our account was billed less after its plan's Store discount.
At scale: 200 reviews each for five competing products, 1,000 reviews in total, cost 1,000 × $0.00414 = $4.14. A weekly monitoring run with publishedAfter: "7 days" only pays for the new reviews it finds.
What to watch out for
- G2 shows 100 reviews per view. Visitors see at most 100 reviews per sort and filter set. The Actor splits large products by rating, industry, company size and region to go further, and keeps newest-first output in date order. For very large products, a small share of reviews that carry none of those attributes can stay out of reach.
- Half stars and a 0.
starRatingis G2's 0–5 scale in half stars, so0is a real rating. The star filter groups half stars upward:"2"covers 1.5 to 2. - Search is by relevance.
searchQueryresults come in G2's relevance order, not by date, and work on product URLs only. - Empty fields are G2's, not the Actor's. Many reviewers hide their job title or industry, and anonymous reviewers show up without a name, labelled only by their industry.
- Datacenter IPs get refused. G2 blocks most datacenter addresses, so the Actor uses Scrape.ly's residential proxy by default, and that traffic is already in the per-review price.
- Names and companies in text. Reviewers sometimes name colleagues or their employer in the answers. Remove them before you quote reviews publicly.
G2 also runs its own APIs: its API docs list a Seller API, a Buyer API and a Data Solutions API. If you already have G2 API access for your own product, use it there. For competitors' reviews in a spreadsheet or pipeline, the Actor gets you the same answers in one input.
Is it legal to scrape G2 reviews?
The Actor reads only public review pages that anyone can open without an account, and collects what those pages show; no emails or private profile data. G2's Terms of Use (last updated July 9, 2026, read on 27 October 2026) are explicit, though. Section 9 says that without G2's express prior written consent you will not "access, collect, copy, scrape, harvest, cache, index, store, archive, or otherwise extract any content or data from the Site, including user reviews, reviewer identities or metadata, ratings, … through automated, programmatic, or mechanical means … whether or not such content is publicly accessible". Whether and how such terms bind you depends on your jurisdiction, whether you accepted them, and what you do with the data.
Reviews are also personal data: a name, job title and company size can identify someone, so the GDPR and similar laws apply once you store them. Collect only the fields you need, pseudonymise reviewers in anything you publish, and don't republish review text. Our guide to whether web scraping is legal covers the basics, including the GDPR. This is not legal advice; for a commercial project, ask a lawyer about your case.
Why Scrape.ly for G2 reviews
- Past G2's 100-review view. The split by rating, industry, company size and region gets you far more than one visitor sees, in date order.
- Every answer, already structured. Likes, dislikes, problems solved and recommendations arrive as separate fields, plus validation, source and incentive flags, plus Markdown for LLMs. No HTML parsing, no selectors to maintain.
- Incremental by design.
publishedAfter: "7 days"and a schedule turn the Actor into a weekly feed for Slack, Sheets or your warehouse; our review monitoring guide shows the setup. - One token for every review site. The same account runs Trustpilot reviews, Google Play reviews and Glassdoor reviews, and the hosted MCP server puts them in front of your AI agent.
FAQ
Can you scrape G2 reviews for free?
Yes, for small jobs. The Free plan includes $5 of usage credit every month with no credit card. At list price that covers about 1,200 G2 reviews.
How do I get only new G2 reviews every week?
Set publishedAfter to 7 days, keep sortOrder on most_recent, save the input and schedule it weekly. Each run then saves only reviews published since the cutoff, and you pay for those only.
Can I scrape all reviews of a vendor's products at once?
Yes. Paste the vendor's seller URL (https://www.g2.com/sellers/<seller>) and the Actor collects reviews across all of its products, with sellerSlug on each row.
Does the scraper collect reviewer emails or LinkedIn profiles?
No. It returns what G2 shows publicly: display name, job title, company size, industry and validation method. There's no email lookup.
Can I scrape G2 product data like pricing and alternatives?
Yes, with the G2 Products Scraper. It returns rating, star split, pricing editions, categories, alternatives, comparisons and integrations for product, category and search pages. For B2B lead lists built from G2 categories, see our lead generation scraping guide, and add company IDs, headquarters and employee bands with our Crunchbase guide.
Can I scrape G2 reviews with Python?
Yes. Install scrapely-client-python and call cornerledger/g2-reviews-scraper, as in the competitor-research script above. The scraping runs in the cloud, so you need no headless browser or proxies of your own.




