
Website Content Crawler
scrape.ly/store/querystone/website-content-crawlerAIDeveloper tools
1 monthly user

Scrape G2.com software reviews by product or seller URL. Get star rating, title, likes, dislikes, problems solved, reviewer role, company size, industry, validation and review source, plus video reviews and the pros/cons summary. Sort, filter by stars, search text, or collect only new reviews.
Export software reviews from G2.com: star rating, title, what reviewers like and dislike, the problems the product solves, the reviewer's role, company size and industry, how the review was validated and where it came from. Paste product or seller URLs, pick a sort or filter, and get clean rows within seconds. No login, no cookies, $4.50 per 1,000 reviews.
publishedAfter takes a date or a period like 7 days, so a weekly schedule returns just the new reviews.publishedAfter: "1 day" and alert on new low ratings.https://www.g2.com/products/notion/reviews), seller URLs (https://www.g2.com/sellers/<seller>) or bare slugs (notion).| Field | What it does |
|---|---|
startUrls | G2 product or seller URLs, or product slugs |
maxReviews | Text reviews per URL (default 20); video reviews are counted separately |
sortOrder | most_recent, most_helpful, highest_rated, lowest_rated |
starRatings | Only these ratings, e.g. ["1","2"] (applies to text and video reviews) |
publishedAfter | 2026-08-01 or 7 days, 2 weeks, 1 month |
searchQuery | Only reviews containing these words |
includeVideoReviews / videoReviewLimit | Also return video reviews, up to videoReviewLimit per product on top of maxReviews (10 reviews + 2 videos = up to 12 rows) |
includeProsConsSummary | Save G2's pros and cons summary to the key-value store |
{
"startUrls": ["https://www.g2.com/products/notion/reviews"],
"maxReviews": 200,
"sortOrder": "most_recent",
"starRatings": ["1", "2"],
"publishedAfter": "30 days"
}
| Field | Description |
|---|---|
reviewId, reviewUrl | G2 review id and link |
productName, productSlug, sellerSlug | Product (and seller, for seller URLs) |
title, starRating | Review headline and rating (0–5, half stars) |
date, updatedDate | Published date and last update (YYYY-MM-DD) |
likes, dislikes, problemsSolved, recommendations | The main answers |
answers | Every question and answer in order |
text, markdownContent | All answers joined, and a Markdown version |
reviewerName, reviewerTitle, companySize, reviewerIndustry, reviewerInfo | Reviewer details as shown on G2 |
reviewerAvatarUrl, reviewerMonogram, reviewerProfileUrl | Avatar, initials and profile link |
validatedReviewer, validatedMethod, verifiedCurrentUser | Validation badges |
reviewSource, incentivized, aiTranslated, excludedFromG2Score, badges | Source and other badges |
type | review or video |
Example (fictional data, real shape):
{
"type": "review",
"reviewId": "10000001",
"reviewUrl": "https://www.g2.com/products/exampleapp/reviews/exampleapp-review-10000001",
"productName": "ExampleApp",
"productSlug": "exampleapp",
"title": "Keeps our whole team on the same page",
"starRating": 4.5,
"date": "2026-09-30",
"updatedDate": null,
"likes": "Setting up shared boards took minutes and the templates cover most of our workflows.",
"dislikes": "The mobile app is slower than the desktop version when boards get large.",
"recommendations": null,
"problemsSolved": "We replaced three separate tools for tasks, notes and planning.",
"answers": [
{"question": "What do you like best about ExampleApp?", "answer": "Setting up shared boards took minutes and the templates cover most of our workflows."},
{"question": "What do you dislike about ExampleApp?", "answer": "The mobile app is slower than the desktop version when boards get large."},
{"question": "What problems is ExampleApp solving and how is that benefiting you?", "answer": "We replaced three separate tools for tasks, notes and planning."}
],
"text": "Setting up shared boards took minutes ... | The mobile app is slower ... | We replaced three separate tools ...",
"reviewerName": "Jordan Q.",
"reviewerTitle": "Operations Lead",
"companySize": "Mid-Market (51-1000 emp.)",
"reviewerIndustry": "Computer Software",
"reviewerInfo": ["Computer Software", "Mid-Market (51-1000 emp.)"],
"reviewerMonogram": "JQ",
"reviewerAvatarUrl": null,
"validatedReviewer": true,
"validatedMethod": "LinkedIn",
"verifiedCurrentUser": true,
"reviewSource": "Organic",
"incentivized": false,
"aiTranslated": false,
"excludedFromG2Score": false,
"markdownContent": "# ExampleApp Review: Keeps our whole team on the same page\n..."
}
Video reviews (includeVideoReviews) come as rows with type: "video", authorName, starRating, caption, videoId, videoThumbnailUrl, videoPageUrl and surveyResponseUrl.
The pros/cons summary is saved to the key-value store as pros-cons-<product> with topPros and topCons: topic name, summary sentence, mention count and two sample reviews each.
You pay $4.50 per 1,000 results ($0.0045 per review or video review), plus a small amount of platform usage (compute and residential proxy traffic, typically a few cents per 1,000 reviews). 1,000 reviews cost about $4.55 in total. The pros/cons summary is free.
Is it legal to scrape G2? The actor only reads public review pages that anyone can open without an account. Check G2's terms and your local rules for how you use the data, especially reviewer names.
Do I need a G2 account or a proxy? No account. The residential proxy is preselected because G2 blocks most datacenter addresses.
How many reviews can I get? As many as G2 shows for the product. G2 limits visitors to 100 reviews per sort and filter set; the actor splits the set by rating, industry, company size and region to go beyond that. For very large products a small share of reviews (those without any of these attributes) may stay out of reach.
Why is a field empty? G2 does not show it for that review, for example many reviewers hide their job title or industry. Anonymous reviewers appear as "Verified User in <industry>".
Can I schedule it or use the API? Yes. Schedule runs in the console and combine publishedAfter with a period (7 days) to get only new reviews; start runs and fetch results through the REST API or the client libraries.
I used another G2 reviews actor. Will my input work? Mostly yes: url and limit are accepted as aliases of startUrls and maxReviews, and the output field names are the same.
searchQuery) come in G2's relevance order, not by date, and only for product URLs.publishedAfter applies to text reviews; video reviews have no publish date.starRating is G2's 0 to 5 scale in half stars (the reviewer's 0-10 likelihood to recommend, halved), so 0 is a real rating. G2's star filter groups half stars upwards: 1 = 0 to 1, 2 = 1.5 to 2, ... 5 = 4.5 to 5.most_helpful, highest_rated and lowest_rated follow the split order (by rating group), which can differ slightly from G2's single list.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
startUrlsarrayRequiredG2 product or seller URLs
G2 product review pages (https://www.g2.com/products/notion/reviews), seller pages (https://www.g2.com/sellers/planet-dds, reviews across all the seller's products) or bare product slugs (notion). One per line.
maxReviewsintegerOptionaldefault 20Max reviews per URL
How many text reviews to collect for each product or seller URL. Video reviews are not counted here; they have their own cap (Max video reviews per product). G2 shows visitors 100 reviews per sort and filter set; above that the actor splits the reviews by rating, industry, company size and region to go further (newest-first output stays in date order).
Narrow down and order the reviews. Leave empty to get every review.
sortOrderenumOptionaldefault "most_recent"Sort order
Order in which G2 returns the reviews. Newest first is the default and keeps the output in date order.
starRatingsarrayOptionaldefault []Star ratings
Only reviews with these star ratings (also applied to video reviews). G2 groups half stars upwards: 1 star covers 0 to 1, 2 stars 1.5 to 2, and so on. Leave empty for all.
publishedAfterstringOptionaldefault ""Published after
Only reviews published on or after this date: a date (2026-08-01) or a period (7 days, 2 weeks, 1 month). Uses newest-first order and stops once older reviews start. Text reviews only.
searchQuerystringOptionaldefault ""Search reviews
Only reviews containing these words (all words must match). Product URLs only; G2 orders search hits by relevance.
Extra data beyond the text reviews.
includeVideoReviewsbooleanOptionaldefault falseInclude video reviews
Also return the product's video reviews (reviewer, rating, caption, thumbnail and video link). They come on top of Max reviews per URL (up to Max video reviews per product) and are charged as results.
videoReviewLimitintegerOptionaldefault 0Max video reviews per product
Cap on video reviews per product, counted on top of Max reviews per URL (for example 10 reviews + 2 videos = up to 12 rows). 0 means all.
includeProsConsSummarybooleanOptionaldefault falseInclude pros/cons summary
Save G2's pros and cons summary (topic, summary sentence, mention count and two sample reviews each) to the key-value store as pros-cons-. Free, adds a few seconds.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["RESIDENTIA…Proxy configuration
G2 refuses most datacenter addresses, so the residential proxy is the default.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| productName | any | Product |
| starRating | any | Rating |
| title | any | Title |
| date | any | Date |
| reviewerName | any | Reviewer |
| reviewerTitle | any | Role |
| companySize | any | Company size |
| reviewerIndustry | any | Industry |
| likes | any | Likes |
| dislikes | any | Dislikes |
| problemsSolved | any | Problems solved |
| validatedReviewer | any | Validated |
| reviewSource | any | Source |
| incentivized | any | Incentivized |
| reviewUrl | any | Review URL |
| type | any | Type |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Review | One saved G2 review or video review. | $0.0045 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('cornerledger/g2-reviews-scraper').call({
"startUrls": [
"https://www.g2.com/products/canva/reviews"
],
"maxReviews": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"RESIDENTIAL"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run cornerledger/g2-reviews-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=cornerledger/g2-reviews-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
1 and 2 star G2 reviews including video reviews.
Recent reviews that mention a keyword.
Top-rated text and video reviews of a product.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.