Skip to main content
Use POST /web/scrape with formats.parse: true and parseParams: {"type": "prebuilt", "parser": "g2-reviews"}. Read the result in parsed.data, with parsed.type: "g2-reviews". See the Quickstart for authentication and SDK setup. Don’t send custom rules with this parser. For CSS selectors and rules, use the Custom parser.

Request

Use any G2 product URL on g2.com or www.g2.com with the form g2.com/products/<slug>/..., such as https://www.g2.com/products/slack/reviews, a reviews page copied from your browser, or a single review URL. Requests with other URLs, including G2 pages that aren’t products, are rejected with INPUT_VALIDATION_ERROR. Renamed products are followed. The parser returns the 25 most recently published reviews and cannot page further back. There are no request parameters for pagination, review count, or sorting. G2’s star-rating filter in the URL is kept: filters[nps_score][] with a value from 1 to 5, repeatable. For example, https://www.g2.com/products/slack/reviews?filters%5Bnps_score%5D%5B%5D=1&filters%5Bnps_score%5D%5B%5D=2 returns the latest 1- and 2-star reviews, still at most 25. Other G2 filters, sort orders, and page are ignored.
Requests take about 1 to 3 seconds.

Output

When parsed.success is true, the parsed output has this shape:
product.slug is the product’s current slug, so a renamed product returns its new slug. For example, intercom resolves to fin.

Review fields

All review fields are present. Values G2 doesn’t publish are null; company_size and industry often are.
  • rating is 0 to 5 in half-star steps.
  • published_at is an ISO 8601 timestamp.
  • Anonymous reviewers have name: "Verified User", with their industry in industry.
  • likes, dislikes, and problems_solved are the answers to G2’s three standard questions. Paragraphs are separated by \n.
Reviews follow G2’s own order, which is mostly newest first. An older review that G2 re-published can appear among them, so dedupe by id when polling.

Errors

An unknown product fails with NOT_FOUND. If G2 can’t be reached, the parse fails with WEBSITE_ACCESS_ERROR. Read parsed.success before using the data. A failed parse has data: null and can coexist with successful outputs. parsed.type remains "g2-reviews" even when parsing fails. See timeouts and errors for handling failures.

Request options

This parser fetches source data separately from the rendered page. Content filters and browser actions do not change its results. Browser profiles are unsupported with this parser. Other Scrape controls, including caching, timeouts, and zero data retention, still apply.