G2 Reviews Scraper - $1.70 per 1,000, No API Key avatar

G2 Reviews Scraper - $1.70 per 1,000, No API Key

Pricing

Pay per event

Go to Apify Store
G2 Reviews Scraper - $1.70 per 1,000, No API Key

G2 Reviews Scraper - $1.70 per 1,000, No API Key

Someone had to sit down and write each G2 review, and the whole thing comes back: rating, title, full text, reviewer, date and review URL, for any product. No G2 account, no API key. $1.70 per 1,000 reviews, flat on every plan - no volume tiers, no plan gates.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

G2 Reviews Scraper & API

Pulls software reviews off G2.com by product URL or slug. Give it notion or https://www.g2.com/products/notion/reviews and you get the reviews G2 publishes for that product: star rating, title, pros, cons, problems solved, the reviewer's role and company size, and the date.

No G2 account, no API key, no cookie to paste in.

Price

$1.70 per 1,000 reviews ($0.0017 each), plus $0.002 each time a run starts. Flat rate — no volume tiers, no plan gates.

You are charged per review actually returned. A run that finds nothing charges nothing beyond the start fee.

What you get

FieldNotes
productName, productSlug, productUrlthe product the review belongs to
reviewId, reviewNumericId, reviewUrlstable ids, and a direct link to the review
titlethe reviewer's own headline
rating1–5 stars
reviewTextthe full body
pros, cons, problemsSolvedG2's three structured prompts, kept separate
reviewerName, reviewerRoleas G2 displays them
companySizee.g. "Mid-Market (51-1000 emp.)"
publishedAt, publishedAtRawISO 8601, plus G2's original string

Coverage across a real 1,000-review run: everything above at 100%, except companySize at 67% — G2 simply does not show it for every reviewer. Where it is missing you get null, not a guess.

Input

{
"productUrls": ["notion", "https://www.g2.com/products/slack/reviews"],
"maxReviewsPerProduct": 500
}
  • productUrls — slugs or full G2 review URLs, mixed freely.
  • maxReviewsPerProduct — stop after this many reviews per product. Default 100.
  • starRatings / regions — optional filters (1–5 stars; the six continents G2 accepts).
  • includeProductSummary — adds one free summary row per product. On by default.

Run it with no input and you get a single labelled sample row, uncharged, so you can see the shape before spending anything.

How it holds up

G2's review pages sit behind DataDome, which blocks plain HTTP clients. This actor does not fight that — it reads G2's own per-product review feed, which serves the same reviews and is not walled. That is why it is fast and why it does not need a browser, a proxy budget or a login.

How depth works. The feed returns at most 100 reviews per request, newest first, and it has no page or offset parameter. To go deeper the actor requests additional slices of the same feed — by star rating and by reviewer region — and merges them, dropping duplicates. Ask for 100 or fewer and the run is a single request; ask for more and it spends one request per slice until it has enough or the slices run out. How far that reaches depends on the product: measured on 2026-08-21, a very large product (Slack) yielded 1,720 unique reviews across the full 42-slice grid, while a product with only a few dozen reviews returns all of them from the first request.

G2 also renames products and redirects the old slug. zoom now redirects to zoom-workplace; the actor follows the redirect and returns the reviews, and the summary row records the final feed URL it landed on.

What this does not do

  • No product search. You bring the product; it does not discover products by category or query.
  • No reviewer contact details. G2 does not publish them and neither does this.
  • No vendor replies or review comments. Not in the feed.
  • No G2 rating breakdowns, pricing tabs or comparison data. Reviews only.
  • Products with fewer than a handful of reviews may return everything G2 has and stop early. That is the product, not a failure.
  • No guaranteed full history for large products. The feed is capped at 100 reviews per request and slicing only widens it so far, so a product with tens of thousands of reviews will return a subset, newest first. The summary row's isCompleteReviewHistory is true only when the whole feed genuinely fitted in one response.

FAQ

Do I need a G2 login or API key? No. Nothing to authenticate, nothing to configure.

How many reviews can I get for one product? It depends on the product. One request returns the newest 100; beyond that the actor merges star and region slices of the same feed. Measured on 2026-08-21, Slack yielded 1,720 unique reviews from the full slice grid. Smaller products return their entire feed in the first request, and the summary row tells you which case you got.

How do I know whether I got everything? The free summary row carries isCompleteReviewHistory. It is true only when the product's whole feed came back in a single response, so it is a claim about your data rather than a guess.

Why is averageRating sometimes null? Because the set it would average is a stratified sample, not a representative one. When a run goes past 100 reviews it merges one slice per star rating, and each slice returns up to 100 - so a well-liked product comes back with equal counts of 1- to 5-star reviews and would average about 3.0 whatever its real score is. Rather than print a number that looks like the product's G2 rating and is not, the summary sets averageRating to null and reports sampling: "sliced". A single-request run (100 reviews or fewer) reports sampling: "newest-first" and does carry a mean.

What does it cost to scrape 1,000 G2 reviews? $1.70, plus the $0.002 start fee.

Can I get reviews for several products in one run? Yes. Pass as many slugs or URLs as you like in products; each review row carries its own productName and productSlug.

Is the review text complete or truncated? Complete. reviewText is the full body, and pros, cons and problemsSolved are kept as separate fields rather than concatenated.

What happens if a product URL is wrong? You get an uncharged diagnostic row naming the problem, not a silent empty run.

Can I export to CSV or Excel? Yes — Apify exports the dataset as JSON, CSV, Excel or XML, and there is a REST endpoint for the same data.