G2 Products Reviews Scraper

Extract recent public G2 product reviews by product URL, RSS URL, or slug.

Data fields

FieldTypeDescription
itemTypestringValue exported as itemType.
productIdinteger | nullValue exported as productId.
productSlugstringValue exported as productSlug.
productNamestring | nullValue exported as productName.
productUrlstring | nullValue exported as productUrl.
vendorNamestring | nullValue exported as vendorName.
descriptionstring | nullValue exported as description.
categoriesarray | nullValue exported as categories.

Input preview

modeMode
startUrlsG2 product URLs or RSS URLs
productSlugsProduct slugs
searchQueriesSearch queries
categoryNamesCategory names
maxItemsMaximum records

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

Extract recent public G2 product reviews from G2's RSS feeds by product URL, RSS URL, or bare product slug.

Use this Actor to monitor buyer feedback, collect public review text for market research, and export structured G2 review rows to CSV, JSON, Excel, API, or automation workflows.

At a glance

  • Primary job: Collect recent public reviews for known G2 products.
  • Input: G2 product review URLs, RSS URLs, or product slugs such as slack and figma.
  • Output: One dataset row per review with product, reviewer, rating, pros, cons, problems solved, date, and review URL fields when available in the RSS feed.
  • Best for: Review monitoring, competitive research, voice-of-customer analysis, and workflow automation.

Important scope note

This V1 is focused on known G2 products and recent public reviews. It is intentionally not a full G2 product search, category browser, product metadata, or full-history scraper.

Common workflows

  • Review monitoring: Schedule repeat runs for your product slugs and compare new review IDs over time.
  • Competitive research: Collect recent reviews for several competitors and analyze likes, dislikes, and problems solved.
  • Voice of customer: Export pros/cons/problem fields into spreadsheets, BI tools, or LLM analysis pipelines.
  • Automation: Trigger webhooks or API workflows when new reviews appear in the dataset.

Input recipes

  • Small smoke test: productSlugs: ["slack"], maxItems: 10.
  • Mixed URL and slug run: Use startUrls with a G2 review URL and productSlugs with one or more slugs.
  • Monitoring run: Set lookbackDays to keep only reviews published in the last N days.

What data can you extract?

Field Description
productSlug G2 product slug used for the RSS feed.
productName Product name from the RSS channel when available.
reviewId Stable review identifier parsed from the review URL or GUID.
reviewUrl Public G2 review URL.
rssUrl Source RSS feed URL.
title Review title.
rating / ratingText Numeric rating and original rating phrase when available.
reviewerName Reviewer name/snippet when exposed by the feed.
reviewerRole Reviewer role when exposed by the feed.
reviewerIndustry Reviewer industry when exposed by the feed.
reviewerCompanySize Company size when exposed by the feed.
likes Answer to what the reviewer likes.
dislikes Answer to what the reviewer dislikes.
problemsSolved Answer describing problems solved / benefits.
publishedAt Review publication date in ISO format.
guid RSS GUID.
source Source marker, currently g2_rss.

Example input

{
  "productSlugs": ["slack", "figma"],
  "maxItems": 25,
  "skipFailedProducts": true
}

Example output

{
  "productSlug": "slack",
  "productName": "Slack",
  "reviewId": "abc123",
  "reviewUrl": "https://www.g2.com/products/slack/reviews/...",
  "rssUrl": "https://www.g2.com/products/slack/reviews/feed",
  "title": "Slack keeps our team aligned",
  "rating": 4.5,
  "ratingText": "4.5 out of 5 stars",
  "reviewerName": "Validated Reviewer",
  "reviewerRole": "Marketing Manager",
  "reviewerIndustry": "Computer Software",
  "reviewerCompanySize": "51-1000 employees",
  "likes": "Channels and searchable message history help our team collaborate.",
  "dislikes": "Notification settings can take time to tune.",
  "problemsSolved": "Centralizes team communication and reduces email threads.",
  "publishedAt": "2026-07-01T12:00:00.000Z",
  "guid": "https://www.g2.com/products/slack/reviews/...",
  "source": "g2_rss"
}

Tips for best results

  • Use known product slugs: This Actor does not search G2 for product names.
  • Expect recent-feed coverage: RSS feeds are for recent reviews and may not contain full historical review archives.
  • Start small: Use maxItems: 10 until output quality and pricing are verified.
  • Handle misses cleanly: Keep skipFailedProducts enabled for multi-product runs.

API usage

Node.js:

import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor("fetch_cat/g2-products-reviews-scraper").call({
  productSlugs: ["slack", "figma"],
  maxItems: 25
});
console.log(run.defaultDatasetId);

Python:

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("fetch_cat/g2-products-reviews-scraper").call(run_input={
    "productSlugs": ["slack", "figma"],
    "maxItems": 25,
})
print(run["defaultDatasetId"])

cURL:

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~g2-products-reviews-scraper/runs?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"productSlugs":["slack","figma"],"maxItems":25}'

MCP and AI agents

Use this Actor from MCP-compatible tools through the official Apify MCP Server.

claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/g2-products-reviews-scraper"
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=fetch_cat/g2-products-reviews-scraper"
    }
  }
}

Example prompt: "Run G2 Products Reviews Scraper for slack and figma, then summarize the top repeated likes and dislikes."

Limits and caveats

  • Recent RSS only: The Actor does not promise full G2 review history.
  • No product discovery: Provide exact G2 product slugs or product URLs.
  • Public data only: The Actor does not accept G2 logins, cookies, or private credentials.
  • Source variability: G2 can change RSS content, fields, or availability.

Legality and responsible use

Process only data that you are allowed to access. Follow website terms, Apify's terms, and applicable laws.

Support

Open an issue from the Actor page if a run fails or output looks wrong. Include the run ID or run URL, input JSON, expected output, actual output, and one reproducible public URL such as https://www.g2.com/products/slack/reviews.

Common questions

Questions and answers reused from the canonical actor README.

Can this scrape every historical G2 review?

No. This Actor is best suited for recent public review monitoring.

Why are some reviewer fields empty?

RSS items do not expose every field for every review. The Actor leaves unavailable fields empty instead of guessing.

Can I export results?

Yes. Apify datasets support JSON, CSV, Excel, XML, RSS, and API access.