G2 Reviews Scraper avatar

G2 Reviews Scraper

Under maintenance

Pricing

from $4.99 / 1,000 results

Go to Apify Store
G2 Reviews Scraper

G2 Reviews Scraper

Under maintenance

A robust, high-performance utility designed for developer automation, data integration, and AI training. Features built-in captcha bypass, headful/headless browser execution, and proxy support to scrape G2 Reviews data seamlessly, reliably, and at scale.

Pricing

from $4.99 / 1,000 results

Rating

0.0

(0)

Developer

Coding Frontned

Coding Frontned

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Extract publicly rendered software reviews from G2 product pages. The Actor supports direct product URLs and G2's public product lookup, then returns compact review, reviewer, rating, product, and response-provenance fields.

The Actor does not sign in, solve CAPTCHAs, reuse protected sessions, or bypass WAF, login, rate, device, paywall, or geographic controls. When G2 returns an access boundary, it writes one explicit diagnostic record and fails the run so downstream workflows cannot treat unavailable data as a successful scrape.

Input

FieldDefaultLimitPurpose
modeproductUrltwo modesUse product URLs or public product search.
productUrlsSlack example1–5Public URLs under g2.com/products/.
searchQuery1–100 charactersProduct phrase for search mode.
maxItems201–100Global unique-review cap.
startPage11–20First review page.
maxPages31–5 per productPagination safety cap.
requestDelayMs750250–10,000Spacing between public requests.
requestTimeoutMs300005,000–60,000Per-request timeout.
maxAttempts21–2Attempts for transient network/server errors only.
maxRunMillis12000030,000–300,000Actor-side deadline.

Optional local filters cover rating, reviewer role, industry, segment, source, verification, and incentivization. includeReviewDetails, includeMedia, and includeRatings can reduce output. A proxy may be configured for ordinary public requests, but access-boundary responses are never retried as a workaround.

Example:

{
"mode": "productUrl",
"productUrls": [{ "url": "https://www.g2.com/products/slack/reviews" }],
"maxItems": 10,
"maxPages": 1,
"proxyConfiguration": { "useApifyProxy": false }
}

The strict schema rejects unknown fields, foreign domains, numeric strings, invalid mode combinations, and workloads above the declared caps.

Output

Successful rows contain a stable recordId, public review ID, rating, visible review sections, public reviewer context, product identity, requested/source URLs, page number, response evidence, proxy flag, provenance, and timestamp. Optional fields are omitted when G2 does not display them; the Actor does not emit null placeholder columns.

{
"recordType": "g2Review",
"status": "success",
"dataAvailable": true,
"found": true,
"recordId": "example-product:123",
"reviewId": "123",
"rating": 4.5,
"reviewTitle": "Reliable collaboration for distributed teams",
"productName": "Example Product",
"productUrl": "https://www.g2.com/products/example-product/reviews",
"httpStatus": 200,
"sourceDomain": "www.g2.com",
"provenance": "public_g2_html"
}

If public review content is unavailable, the dataset contains only a diagnostic row with dataAvailable: false, found: false, a bounded code and message, target URL, boundary flag, HTTP evidence, and provenance. The run exits unsuccessfully. The Actor never mixes review and diagnostic rows.

The named OUTPUT key-value record summarizes run status, stored items, unique reviews, products/pages processed, request count, proxy use, and duration.

Current public-access behavior

G2 can return an HTTP 403 access page before exposing any public review cards. This is a legitimate access boundary, not an empty successful result. When that happens, use the diagnostic evidence to decide whether to wait or stop. Do not attempt to circumvent the boundary. Limits are caps rather than guaranteed quotas.

Local development

npm ci
npm test
apify validate-schema
apify run --purge --input-file qa-inputs/local-direct.json
npm run validate -- storage/datasets/default --allow-diagnostic

The test suite exercises strict input validation, compacting, a representative public-review HTML structure, normalized output, and the diagnostic contract. The validator rejects duplicates, undeclared or mistyped fields, empty records, and mixed success/diagnostic datasets.

Cost and responsible use

Apify cost depends on requests, pages, proxy traffic, compute, and storage. Start with one URL, one page, and a small result cap. Only content publicly rendered by G2 is eligible for extraction. Review G2's terms and applicable privacy law; public reviews can still contain personal data.

For support, include the mode, target URL, diagnostic code, and HTTP status without sharing credentials.