How to Efficiently Scrape G2 Reviews with Apify
Pull verified buyer feedback, star ratings, job titles, and company sizes from any G2 product page. No manual reading, no copy-paste, no…
How to Efficiently Scrape G2 Reviews with Apify
Pull verified buyer feedback, star ratings, job titles, and company sizes from any G2 product page. No manual reading, no copy-paste, no pagination headaches.

A B2B sales consultant I know was prepping for a competitive deal. The prospect had shortlisted her client’s product against two others. She needed to know what real buyers said about those competitors. Not marketing copy. Not analyst reports. What people who actually used the software wrote down when no sales rep was in the room.
She went to G2. Good instinct. But there were 400 reviews for one competitor and 280 for the other. G2 shows 10 per page. She started reading, taking notes in a Google Doc, copy-pasting quotes that seemed relevant. Two hours in, she had notes on maybe 60 reviews. She still had 620 to go.
The problem wasn’t effort. It was that the data she needed existed, structured and detailed, on a platform with no export button and no public API that hands you review text. If you want it, you read it manually or you build a way to get it programmatically.
She needed a G2 review scraper. Most people in that situation don’t realize one already exists.

The G2 Reviews Scraper by kawsar on Apify — pulls full customer reviews from any G2 product page so you can monitor what buyers actually think about your competitors.
Why scraping G2 yourself is harder than it looks
I’ve seen developers try to build a G2 scraper from scratch. The first attempt usually hits a wall fast.
G2 renders its review content with JavaScript. A plain HTTP request returns a shell page with no review text. You need a headless browser just to see what the user sees. Then you hit pagination: G2’s UI caps navigation at around 10 pages, but the data goes much further. A product with 3,000 reviews has 300 pages of data the standard navigation won’t let you reach.
G2 also applies rate limiting aggressively. Hit the same endpoints too quickly from the same IP and you get blocked or served empty results. That means proxy rotation, which means another layer of infrastructure to manage. Add in the fact that G2’s HTML structure changes occasionally, and a scraper you built last quarter might silently fail this quarter with no obvious error.
A scraper you write yourself is infrastructure you own forever. Every breaking change is yours to debug at an inconvenient time. For most people, that trade-off doesn’t make sense when a maintained alternative already exists.
What this actor does
The G2 Reviews Scraper takes a G2 product reviews URL, handles all the browser automation and pagination internally, and returns one structured record per review. You paste a URL. You get data.
What comes back is not raw HTML. Each review is parsed into discrete, usable fields: the reviewer’s name, job title, and company size; their star rating and review headline; the full text of what they liked, what they disliked, and what problems the product solved for them; trust badges (validated reviewer, current user); whether the review was organic or incentivized; any vendor response; and a direct permalink to that specific review on G2.
The actor pages automatically using G2’s reviews_and_filters endpoint. This bypasses the UI's 10-page cap entirely. A product with 5,000 reviews is fully accessible: set maxItems to 5000 and let it run. It also preserves your filter and sort parameters, so a URL sorted by most_recent returns the newest reviews first, consistently, across every page.
G2 reviews are written by verified buyers with opinions, not by marketing teams. A single detailed review often tells you more about a competitor’s real weaknesses than any analyst report.
Three ways to run it
On the Apify platform (no code)
Go to the actor page on Apify and click “Try for free.” Log in or create an account. In the input form, paste the full G2 product reviews URL into the “G2 product reviews URL” field. Expand “Limits” to cap how many reviews you want. Click “Start.” When the run finishes, open Storage and download as JSON, CSV, XML, or Excel.

The input form on Apify Console. Paste any G2 product reviews URL, set your limit under Limits, and hit Start. No code needed.
Python SDK
Install apify-client via pip and use the run-and-iterate pattern:
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run_input = {
"startUrl": "https://www.g2.com/products/notion/reviews?order=most_recent",
"maxItems": 500,
"requestTimeoutSecs": 300
}
run = client.actor("kawsar/g2-reviews-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(
item["reviewerName"],
item["reviewerJobTitle"],
item["reviewerCompanySize"],
item["rating"],
item["likedBest"]
)
The iterator streams results without loading the full dataset into memory. For runs pulling several hundred reviews, this keeps memory usage flat regardless of dataset size.
JavaScript SDK
Install apify-client from npm and use the async pattern:
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('kawsar/g2-reviews-scraper').call({
startUrl: 'https://www.g2.com/products/hubspot-crm/reviews?order=most_recent',
maxItems: 200,
requestTimeoutSecs: 300
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => {
console.log(item.reviewerName, item.reviewerJobTitle, item.rating, item.dislikedMost);
});
Inputs and outputs
The input is minimal. You need one field: the G2 product reviews URL. The actor accepts plain review pages, filtered and sorted URLs, and deep pagination URLs. Two optional fields control the run: maxItems caps how many reviews it collects (default 10, maximum 5,000,000), and requestTimeoutSecs sets the per-request timeout (default 300 seconds).
{
"startUrl": "https://www.g2.com/products/hubspot-crm/reviews?order=most_recent",
"maxItems": 300,
"requestTimeoutSecs": 300
}
Each output record maps one-to-one with a single review. Every field is flat and ready to filter, sort, or feed into another tool:
{
"reviewId": "12611447",
"reviewerName": "Yllza H.",
"reviewerJobTitle": "Admissions Coordinator",
"reviewerCompanySize": "Small-Business (50 or fewer emp.)",
"rating": 5.0,
"reviewTitle": "Highly Customizable Pipelines and Tasks That Fit Our Needs",
"publishedDate": "2026-04-10",
"likedBest": "What I like best is its flexibility and ease of use...",
"dislikedMost": "I don't like that we can't separate milestones by pipeline...",
"problemsSolved": "It helps us stay in regular contact with our customers...",
"badges": ["Current User", "Validated Reviewer", "Source: Organic"],
"isValidatedReviewer": true,
"isIncentivized": false,
"reviewSource": "Organic",
"vendorResponse": "Thank you for your review!...",
"reviewUrl": "https://www.g2.com/products/capsule-crm/reviews/capsule-crm-review-12611447",
"scrapedAt": "2026-04-19T10:30:00+00:00"
}
A few fields worth flagging before you run:
isIncentivized: filters out reviews from review campaigns, useful when checking whether a rating reflects organic opinion or a coordinated push.reviewerCompanySize: lets you segment by buyer type. Enterprise complaints land differently than small-business ones.likedBest,dislikedMost,problemsSolved: already separated by G2's own review form, so no parsing needed on your end.vendorResponse: tells you whether the company is actively monitoring and responding to feedback.

A completed run in the Apify Console. 10 reviews scraped in 8 seconds. Scale up maxItems and it pages automatically until it hits your limit.
Real use cases
The
dislikedMostfield from a competitor's G2 page is one of the most honest pieces of market research you can get. Nobody polished that text for a sales deck.
A B2B SaaS sales team uses this actor to pull the 50 most recent reviews for two direct competitors before every quarterly business review. They filter for isIncentivized: false and sort by most_recent. The dislikedMost field feeds directly into their objection-handling playbook. When a prospect says they're also evaluating Competitor X, the sales rep already knows the top three complaints buyers have with it.
A product manager at a mid-market CRM company scrapes their own product’s G2 reviews weekly. She feeds the likedBest and dislikedMost fields into a keyword frequency script, finds the phrases that recur most often, and uses that to prioritize the next sprint. It replaced a quarterly user survey that took six weeks to design, send, and analyze.
A venture analyst uses G2 review data before finalizing a due diligence report. She pulls 200 reviews for a target company, tracks the rating field over time using publishedDate, and checks whether scores have been trending up or down over 18 months. A deteriorating rating trend is a signal worth flagging before a deal closes.
A growth consultant building lead lists for a SaaS client uses the reviewerName, reviewerJobTitle, and reviewerCompanySize fields from negative competitor reviews. Someone who left a 2-star review for a direct competitor and described the exact pain point the client's product addresses is not a cold lead. They've already told you what they want.

Real output from a live run against Apify’s own G2 page. Reviewer name, job title, company size, rating, liked/disliked text, validation status, and review URL — all structured, all ready to export.
What you can build with this data
A competitor review monitoring dashboard is the most direct product. Pull reviews weekly for five competitors using Apify’s scheduled runs. Store the data with timestamps. Display average rating trends over time, flag any product that drops 0.3 stars in 30 days, and surface the top recurring phrases in the dislikedMost field. Sell access to product teams and investors who cover a specific SaaS category.
An AI-powered win/loss analysis tool is a strong agency offering. For each deal a client loses, scrape G2 reviews for the winning competitor. Feed the likedBest and problemsSolved fields into an LLM, prompt it to extract what buyers value most, and generate a one-page brief. The G2 Reviews Scraper handles data collection; you handle the prompt engineering and delivery.
A lead generation tool for SaaS sales teams works because every G2 reviewer who gave a direct competitor 2 or 3 stars is already telling you what they don’t like. Filter by isIncentivized: false. Cross-reference reviewerName and reviewerJobTitle with LinkedIn for contact details. The result is a warm prospect list built on expressed dissatisfaction, not cold outreach guesswork.
A voice-of-customer content tool is a natural fit for content strategists. Pull your own product’s G2 reviews. Mine the likedBest field for the exact language real users use to describe value. That language belongs in landing page copy, case study headlines, and ad creative. It consistently outperforms anything a copywriter writes without talking to customers first.
A market research report service works for consultants who advise on software selection. Scrape reviews across every product in a category, aggregate ratings by company size and job title, and surface what enterprise buyers care about versus small-business buyers. That segmentation is hard to get from surveys. It takes one structured dataset and a spreadsheet.
Ready to pull G2 review data at scale?
**Try the G2 Reviews Scraper on Apify**
No infrastructure. No maintenance. Just run it and get your data.
That sales consultant who spent two hours reading 60 reviews out of 680? With the G2 Reviews Scraper, she’d have had all 680 in a structured spreadsheet in minutes. The analysis that took most of a working day would have taken an hour. She would have walked into that competitive deal with a complete picture of what buyers disliked about both competitors, segmented by job title and company size. That’s not a small difference. That’s a different preparation altogether.
메타데이터
- post_id
- eb4bc280f540
- slug
- how-to-efficiently-scrape-g2-reviews-with-apify-eb4bc280f540
- url
- https://medium.com/@bigiByte/how-to-efficiently-scrape-g2-reviews-with-apify-eb4bc280f540
- canonical_url
- https://medium.com/@bigiByte/how-to-efficiently-scrape-g2-reviews-with-apify-eb4bc280f540
- author_url
- https://medium.com/@bigiByte
- status
- ok
- fetched_at
- 2026-06-09 15:37:30