G2 Reviews Scraper
Under maintenancePricing
from $4.99 / 1,000 results
G2 Reviews Scraper
Under maintenanceA 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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
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
| Field | Default | Limit | Purpose |
|---|---|---|---|
mode | productUrl | two modes | Use product URLs or public product search. |
productUrls | Slack example | 1–5 | Public URLs under g2.com/products/. |
searchQuery | — | 1–100 characters | Product phrase for search mode. |
maxItems | 20 | 1–100 | Global unique-review cap. |
startPage | 1 | 1–20 | First review page. |
maxPages | 3 | 1–5 per product | Pagination safety cap. |
requestDelayMs | 750 | 250–10,000 | Spacing between public requests. |
requestTimeoutMs | 30000 | 5,000–60,000 | Per-request timeout. |
maxAttempts | 2 | 1–2 | Attempts for transient network/server errors only. |
maxRunMillis | 120000 | 30,000–300,000 | Actor-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 cinpm testapify validate-schemaapify run --purge --input-file qa-inputs/local-direct.jsonnpm 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.