G2 & Capterra reviews

G2 Reviews Scraper Apify — G2 and Capterra ratings, pros, and cons

G2 Reviews Scraper Apify is the G2 Capterra reviews scraper (Store id taroyamada/g2-capterra-review-intelligence). It reads public G2 and Capterra product review pages you supply. The live Store description is: scrape B2B software reviews, pros and cons, ratings, and reviewer metadata from G2 and Capterra pages for SaaS competitor research. Required input is reviewPageUrls. The Actor auto-detects G2 versus Capterra and routes each URL to the matching parser. For one catalog versus mixed G2 and Capterra URLs in the same run, see G2 + Capterra dual-source vs single-source review scrape. It is not a Shopify App Store listing tool, not Trustpilot, and not an Apple Podcasts review RSS tool — those jobs belong on Shopify App Store Review Scraper Apify, Trustpilot Reviews Scraper Apify, and Apple Podcasts Reviews Scraper.

from $3.00 / 1,000 results ($0.003 per default-dataset result titled result; Actor Start $0.001)

Open G2 & Capterra Review Scraper on Apify · Cheapest first paid run · Compare dual-source vs single-source

What is G2 Reviews Scraper Apify?

G2 Reviews Scraper Apify is the taroyamada Store actor g2-capterra-review-intelligence. It reads public G2 and Capterra product review pages into ratings, rating breakdowns, and review rows with pros and cons. The live listing is https://apify.com/taroyamada/g2-capterra-review-intelligence.

How do I use G2 Reviews Scraper Apify?

Pass one public G2 reviewPageUrls item, keep reviewLimit at 1 on the first paid run, leave delivery on dataset, and mix Capterra only after that one-URL schema check. See the cheapest first paid run.

Where is the G2 Reviews Scraper Apify Store page?

The live listing is https://apify.com/taroyamada/g2-capterra-review-intelligence. This page is the English landing.

G2 and Capterra software reviews, not Shopify apps or podcasts

Use this page when the job is B2B software reputation on G2 or Capterra: category benchmarks, competitor proof points, and a single schema across both sites. Dual-source versus one catalog: G2 + Capterra dual-source vs single-source review scrape. Use Shopify App Store Review Scraper when the source is a merchant listing at apps.shopify.com/{slug}. Use Apple Podcasts Reviews Scraper when the source is Apple/iTunes Customer Reviews RSS for podcast collection IDs.

This Actor Shopify App Store Review Scraper Apple Podcasts Reviews Scraper
Source Public G2 and Capterra review-page HTML Public apps.shopify.com/{slug} listing and review pages Official iTunes Customer Reviews RSS JSON
Primary input reviewPageUrls (G2 or Capterra review URLs) appUrls (listing URLs or slugs) podcastIds, countries, maxPagesPerPair
Reviewer fields Normalized author, pros, cons, verified Merchant storeName, location, usage duration, developer replies Podcast reviewerName, rating, title, content, storefront
Deliverable Per-product row: ratings, breakdown, review samples, status One app-level report: rating, pricing hints, AI summary, samples, theme rollups Raw podcast_review rows or one podcast_review_report
Published price from $3.00 / 1,000 results ($0.003 per result; Actor Start $0.001) $30.00 per 1,000 Shopify app review and pricing reports ($0.03 per app-level report) from $3.00 / 1,000 apify-default-dataset-items; $1.50 per review report

This Actor does not accept Shopify slugs, podcastIds, Apple show URLs, or episode feeds. None of these Actors is affiliated with or endorsed by G2, Capterra, Shopify, or Apple. Review text is public source material for reputation and market research. Do not use the output to target individual reviewers.

Compare: for dual-source G2 and Capterra in one run versus a single-source review-page scrape, see G2 + Capterra dual-source vs single-source review scrape.

Use cases

What it does

For each review-page URL you provide, the Actor:

  1. Classifies the URL as G2 (g2.com/products/*/reviews) or Capterra (capterra.com/p/*/reviews/) and routes it to the matching parser.
  2. Tries JSON-LD structured data first, then embedded app data (for example __NEXT_DATA__ on Capterra), then og:title meta for product-name fallback, then HTML pattern matching for reviews.
  3. Extracts product metadata — productName, vendorName, categoryName when available.
  4. Parses overall rating, total review count, and rating breakdown.
  5. Collects normalized review rows — title, rating, date, author, body, pros, cons, verified.
  6. Returns status and explicit warnings when a page is partial, blocked, or structurally changed, instead of failing silently.

How is G2 & Capterra Review Scraper different from Shopify App Store Review Scraper and Apple Podcasts Reviews Scraper?

This Actor reads public G2 and Capterra product review-page HTML. Required input is reviewPageUrls in the published formats g2.com/products/{slug}/reviews and capterra.com/p/{id}/{slug}/reviews/. It auto-detects source and normalizes product metadata, ratings, and review rows with pros and cons. Shopify App Store Review Scraper reads apps.shopify.com/{slug} merchant listings (appUrls) and delivers app-level rating, pricing-hint, AI-summary, and theme-rollup reports. Apple Podcasts Reviews Scraper reads Apple/iTunes Customer Reviews RSS JSON for podcast collection IDs and storefronts. This Actor does not accept Shopify slugs, podcastIds, Apple show URLs, or episode feeds.

Which reviewPageUrls formats does the published G2/Capterra schema accept?

reviewPageUrls is required. The published schema accepts G2 or Capterra review page URLs. Other published fields:

Field Type Default Notes
reviewPageUrls string[] required G2 or Capterra review URLs (for example https://www.g2.com/products/notion/reviews or https://www.capterra.com/p/147384/Notion/reviews/)
reviewLimit integer 1 Max reviews per product page. Live schema: default 1, prefill 1, minimum 1, maximum 5000. Keep 1 for the cheapest first success.
delivery string dataset dataset or webhook
webhookUrl string — POST target when delivery is webhook
dryRun boolean false Validate input and return scaffold output without fetching live data

The schema sets additionalProperties to false. Use reviewPageUrls, not unpublished aliases. The published input schema does not include products, source, slug, maxReviewsPerProduct, emitDeltas, appUrls, podcastIds, or countries.

Live Store Quickstart (cheapest first paid run):

{
  "reviewPageUrls": [
    "https://www.g2.com/products/notion/reviews"
  ],
  "reviewLimit": 1,
  "delivery": "dataset",
  "dryRun": false
}

After that one-URL row is useful, you can mix Capterra:

{
  "reviewPageUrls": [
    "https://www.g2.com/products/notion/reviews",
    "https://www.capterra.com/p/147384/Notion/reviews/"
  ],
  "reviewLimit": 1,
  "delivery": "dataset",
  "dryRun": false
}

The live Store Quickstart is one G2 URL with reviewLimit 1. Mix G2 and Capterra in one run only after you validate the schema on that sample. Use dryRun: true for validation-only checks before larger monitoring runs. For documented PPE math, see G2 reviews scraper: cheapest first paid run.

Run a G2 or Capterra review-page sample on Apify

Why do Store README input examples use products, source, slug, maxReviewsPerProduct, and emitDeltas?

Those names appear in README Input Examples (Single product on G2, Capterra alternative comparison, Multi-source rating delta). They are not live schema fields. The published input schema requires reviewPageUrls, sets additionalProperties to false, and does not include products, source, slug, maxReviewsPerProduct, or emitDeltas. Use the Store Quickstart reviewPageUrls sample, not those README aliases.

What fields are on a G2 or Capterra product row versus nested reviews[]?

A good first run gives you a per-product row with ratings and review samples, plus status / warnings when a page is thin, blocked, or structurally changed. The published README lists each product in a products array. meta.implementationStatus is live, partial, degraded, or no_valid_sources.

Published README sample shape:

{
  "source": "g2",
  "status": "ok",
  "sourceUrl": "https://www.g2.com/products/notion/reviews",
  "productName": "Notion",
  "vendorName": "Notion Labs",
  "overallRating": 4.5,
  "totalReviewCount": 4321,
  "ratingBreakdown": { "5": 1200, "4": 800, "3": 300, "2": 50, "1": 10 },
  "reviews": [
    {
      "title": "Great tool",
      "rating": 5,
      "author": "Alice",
      "pros": "Fast setup",
      "cons": "Needs offline mode",
      "verified": true
    }
  ],
  "warnings": []
}

That sample is the published README illustration, not a live coverage guarantee. README field lists also include categoryName (when available), date and body on reviews[], fetchError, and status values ok, partial, blocked, or error. There is no separate published dataset/output JSON schema on the Store page.

Does the published reviews[] list include industry, role, or company size?

No. The Store description mentions reviewer metadata, and README intro prose mentions reviewer backgrounds such as industry, role, and company size. Those names are not in the published reviews[] field list (title, rating, date, author, body, pros, cons, verified). Do not treat intro prose as extra output fields.

How does JSON-LD, embedded app data, og:title, and HTML pattern matching recover G2 and Capterra reviews?

The published Parsing Strategy tries JSON-LD structured data first, then embedded app data (for example __NEXT_DATA__ on Capterra), then og:title meta for product-name fallback, then HTML pattern matching for reviews. The README presents that layered approach as graceful degradation when markup changes. Reviews are still extracted from server-rendered HTML; pages that render reviews only via client-side JavaScript may return partial results.

What happens if a G2 or Capterra page is blocked or the HTML changes?

The Actor emits explicit warnings when page shapes change or access is blocked, rather than silently returning bad data. It degrades gracefully and can return partial results (metadata without reviews) with status ok, partial, blocked, or error. Reviews are extracted from server-rendered HTML; pages that render reviews only via client-side JavaScript may return partial results. G2 and Capterra protect against automated access — blocked requests are reported honestly. HTML parsing is fragile; the Actor emits warnings when expected patterns are missing.

Can one run mix G2 and Capterra reviewPageUrls after a small-sample schema check?

Yes. Dual-source support accepts both G2 (g2.com/products/*/reviews) and Capterra (capterra.com/p/*/reviews/) URLs in reviewPageUrls. The Actor classifies each URL and routes it to the matching parser. The live Store Quickstart is one G2 URL with reviewLimit 1. Mix G2 and Capterra in one run only after you validate the schema on that one-URL sample; use dryRun: true for validation-only checks before larger monitoring runs. Side-by-side: G2 + Capterra dual-source vs single-source review scrape.

How is a billed result different from one nested reviews[] item?

The live billed event title is result at $0.003 for a single result in the default dataset (apify-default-dataset-item). The published README output is a per-product object with nested reviews[]. There is no separate published per-review billing event. README cost control says total cost mainly follows how many reviewPageUrls you process and how deep you sample reviews. Keep reviewLimit at 1 for the cheapest first success, then raise it.

How is G2 & Capterra Review Scraper priced on the live Store PPE tab?

Billing is pay-per-event. The live Store card is from $3.00 / 1,000 results. Published events are Actor Start at $0.001 (charged when the Actor starts; number of events depends on Actor memory, one event per GB, minimum one event) and result at $0.003 (single result in the default dataset). Platform usage is free. You are not charged for Apify platform usage, only the fixed event price. The Store Quickstart first-paid line is 1 URL / reviewLimit 1 ≈ $0.01 at current PPE. If one Start event and one result row charge, those two events add to $0.004.

Total cost mainly follows how many reviewPageUrls you process and how deep you sample reviews. Keep batches small while validating source mix. Lower reviewLimit for faster exploratory runs. Use dataset delivery first to inspect blocked or partial results. Check the Store pricing card for the current per-event rates.

from $3.00 / 1,000 results ($0.003 per default-dataset result titled result; Actor Start $0.001)

See G2 & Capterra Review Scraper pricing on Apify

How do dataset, webhook, and dryRun bill G2 and Capterra review-page results?

delivery defaults to dataset. Set delivery to webhook and provide webhookUrl to POST results. dryRun true validates input and returns scaffold output without fetching live data. The published enum is dataset or webhook. The live Store Quickstart starts with one G2 reviewPageUrls item, reviewLimit 1, and dataset delivery, mixes Capterra only after a one-URL schema check, then uses dryRun before larger monitoring runs.

Open G2 & Capterra Review Scraper on Apify

Does G2 & Capterra Review Scraper accept Shopify slugs, podcastIds, or Apple show URLs?

No. Required input is reviewPageUrls. additionalProperties is false, so unpublished fields such as appUrls, Shopify slugs, podcastIds, countries, Apple show URLs, episode feeds, products, source, slug, maxReviewsPerProduct, and emitDeltas are not accepted. Shopify App Store merchant listings belong on Shopify App Store Review Scraper. Apple/iTunes podcast review RSS belongs on Apple Podcasts Reviews Scraper. Use the Review Intelligence pack to choose among those three sources.

Does G2 & Capterra Review Scraper accept a login, cookie, or private review API field?

No. The published input schema is reviewPageUrls, reviewLimit, delivery, webhookUrl, and dryRun. There is no login, cookie, API key, or private-endpoint field. Reviews are extracted from server-rendered HTML on public G2 and Capterra review pages. Blocked requests are reported honestly. This independent Actor is not affiliated with or endorsed by G2 or Capterra. Do not use the output to target individual reviewers.

What does meta.implementationStatus report on a G2 or Capterra run?

The published README says the meta section reports implementationStatus as live, partial, degraded, or no_valid_sources. Per-product status is ok, partial, blocked, or error, with fetchError when a fetch failed and warnings when page shapes change or access is blocked. Use those fields instead of treating a thin or blocked page as a silent empty success.

How to start a run

  1. Open this page, then the Actor on the Apify Store.
  2. Pass one public G2 reviewPageUrls item in the published review-page format. Keep reviewLimit at 1 on the first paid run.
  3. Leave delivery on dataset. Mix G2 and Capterra in one run only after the one-URL schema check.
  4. Use dryRun: true to validate input without fetching live data before a larger monitoring run. Switch to webhook only after the payload shape is useful.

Open G2 & Capterra Review Scraper on Apify · Cheapest first paid run

Related actors

Related pages