G2 Comparison Scraper avatar

G2 Comparison Scraper

Pricing

from $25.00 / 1,000 dataset items

Go to Apify Store
G2 Comparison Scraper

G2 Comparison Scraper

Scrape G2 head-to-head comparisons at scale: side-by-side star ratings, all seven G2 criteria scores with respondent counts, entry pricing, top pros & cons, integrations, alternatives, reviewer company-size and industry splits, AI summaries and FAQs. Structured JSON for competitive research.

Pricing

from $25.00 / 1,000 dataset items

Rating

0.0

(0)

Developer

axly

axly

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Turn G2's head-to-head comparison pages into structured, analysis-ready data.

Every software buyer's shortlist ends up on a G2 /compare/ page — "Asana vs monday", "HubSpot vs Pipedrive", "Slack vs Teams". Those pages hold the single richest public dataset on how B2B software products stack up against each other: real user ratings, G2's seven scoring criteria, entry pricing, the pros and cons buyers actually mention, and who is doing the reviewing. This Actor extracts all of it as clean JSON — one row per comparison.

Most G2 scrapers return products or raw reviews. This one returns the head-to-head verdict, already normalized into side-by-side columns.

Who uses this

BuyerJob to be done
Competitive intelligenceTrack exactly how your product scores against each rival, criterion by criterion, and watch it move
Product marketingBuild battlecards and comparison pages from real review evidence instead of guesswork
Product managementFind the features and criteria where you lose, with the respondent count behind every score
Investors & analystsBenchmark entire software categories on rating, review volume, pricing and reviewer mix
SEO & affiliate publishersPower "X vs Y" content and comparison tables at scale
Sales enablementArm reps with the objections buyers raise about each competitor

What you get

One dataset row per comparison. The two products are flattened into product_a_* and product_b_* columns so the output drops straight into a spreadsheet or BI tool, while a nested products array keeps the full structure for programmatic use.

FieldTypeDescription
url, slug, titlestringCanonical comparison page, its slug, and the page title
requested_slugstringWhat you asked for, before G2 canonicalized pair order or product renames
scraped_atstringUTC ISO-8601 timestamp
product_a_name / product_b_namestringProduct names as listed on G2
product_a_slug / product_b_slugstringG2 product slugs
product_a_url / product_b_urlstringG2 product page URLs
product_a_image / product_b_imagestringProduct logo URLs
product_a_category / product_b_categorystringG2 application category
product_a_rating / product_b_ratingnumberAverage star rating out of 5
product_a_review_count / product_b_review_countintegerTotal G2 reviews behind that rating
product_a_price / product_b_pricestringEntry price as displayed, e.g. $25.00 or Free
product_a_price_unit / product_b_price_unitstringBilling unit, e.g. 1 User Per Month
product_a_price_plan / product_b_price_planstringEntry plan name, e.g. Starter Edition
product_a_free_trial / product_b_free_trialbooleanWhether G2 shows a free-trial badge
product_a_pros / product_b_prosarrayMost-mentioned positives with review counts: [{label, count}]
product_a_cons / product_b_consarrayMost-mentioned negatives with review counts
product_a_integrations / product_b_integrationsarrayIntegrations G2 highlights
product_a_alternatives / product_b_alternativesarrayTop alternatives G2 lists
product_a_company_size / product_b_company_sizeobjectReviewer split across Small-Business / Mid-Market / Enterprise, in percent
product_a_industries / product_b_industriesobjectReviewer split by industry, in percent
criteriaarrayAll seven G2 criteria side by side, with scores out of 10 and respondent counts
criteria_wins_product_a / criteria_wins_product_bintegerHow many criteria each product wins
overall_winnerstringProduct winning the most criteria, or null when tied
ai_summarystringG2's AI-generated head-to-head summary, derived from real reviews
faqsarrayG2's comparison FAQs as [{question, answer}]
featuresarrayOptional: every rated feature with both scores, respondent counts and the winner
feature_countintegerOptional: number of rated features returned
productsarrayFull nested product objects

The seven criteria are Meets Requirements, Ease of Use, Ease of Setup, Ease of Admin, Quality of Support, Good Partner in Doing Business, and Product Direction — each scored out of 10, each with the number of reviewers behind it.

High-value use cases

  1. Live competitive scorecard. Schedule your product against each rival weekly and alert when a criterion score or overall_winner flips.
  2. Battlecards that cite evidence. product_b_cons gives you the exact complaints buyers raise about a competitor, with volume behind each one.
  3. Category benchmarking. Enable automatic discovery to pull thousands of comparisons and rank an entire category by rating, review volume and pricing.
  4. Segment fit analysis. company_size and industries show whether a rival wins because it dominates Small-Business while you serve Enterprise.
  5. Feature gap analysis. Turn on the full feature table to get hundreds of scored features per comparison and find precisely where you lose.
  6. Programmatic SEO. Generate accurate "X vs Y" pages backed by real data.

Input parameters

ParameterTypeDefaultDescription
comparisonUrlsarray—Full G2 comparison URLs. The most precise way to target what you want
productPairsarray—Slugs like asana-vs-monday-com, or free text like Slack vs Microsoft Teams
productA / productBstring—A single pair, given as product slugs or G2 product URLs
discoverFromSitemapbooleanfalseTop the list up automatically from G2's official comparison sitemaps
maxComparisonsinteger10Stop after this many comparisons; each produces exactly one row
includeReviewerInsightsbooleantrueAdd company-size and industry breakdowns (one extra fetch per comparison)
includeFeatureScoresbooleanfalseAdd the full per-feature score table (one extra fetch; large output)
proxyConfigurationobjectresidentialApify Proxy settings — residential strongly recommended
useResidentialProxybooleantrueUse the built-in residential pool when Apify Proxy is off
proxyCountrystringUSExit country for the built-in fallback

You can mix inputs freely — URLs, pairs and a single A/B pair are merged and de-duplicated. Product order does not matter: G2 canonicalizes it, and renamed products are followed automatically, with the original preserved in requested_slug.

Example input

{
"productPairs": ["asana-vs-monday-com", "Slack vs Microsoft Teams"],
"comparisonUrls": [
{ "url": "https://www.g2.com/compare/hubspot-sales-hub-vs-pipedrive" }
],
"maxComparisons": 3,
"includeReviewerInsights": true,
"includeFeatureScores": false,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

Example output (abridged)

{
"url": "https://www.g2.com/compare/hubspot-sales-hub-vs-pipedrive",
"slug": "hubspot-sales-hub-vs-pipedrive",
"title": "HubSpot Sales Hub vs. Pipedrive",
"scraped_at": "2026-09-19T01:48:19+00:00",
"product_a_name": "HubSpot Sales Hub",
"product_a_rating": 4.4,
"product_a_review_count": 14302,
"product_a_price": "$0.00",
"product_a_price_plan": "Free HubSpot CRM",
"product_a_free_trial": true,
"product_a_pros": [
{ "label": "Ease of Use", "count": 1216 },
{ "label": "Features", "count": 702 }
],
"product_a_company_size": { "Small-Business": 60.5, "Mid-Market": 35.5, "Enterprise": 4.0 },
"product_b_name": "Pipedrive",
"product_b_rating": 4.3,
"product_b_review_count": 3793,
"product_b_price": "$24.00",
"product_b_price_unit": "1 Seats Per Month",
"product_b_company_size": { "Small-Business": 74.1, "Mid-Market": 22.1, "Enterprise": 3.9 },
"criteria": [
{
"criterion": "Ease of Use",
"product_a_score": 8.7,
"product_a_responses": 11269,
"product_b_score": 8.8,
"product_b_responses": 3324,
"winner": "Pipedrive"
}
],
"criteria_wins_product_a": 2,
"criteria_wins_product_b": 3,
"overall_winner": "Pipedrive",
"ai_summary": "Users report that Pipedrive excels in pipeline visibility...",
"faqs": [{ "question": "What is the difference between...", "answer": "..." }]
}

Scheduling, webhooks and integrations

  • Schedule a run daily or weekly to build a competitive time series — store each run's dataset and diff criteria scores and overall_winner over time.
  • Webhooks can push every finished run into your own service.
  • Export to JSON, CSV, Excel or XML, or connect the dataset to Google Sheets, Make, Zapier, Airbyte, S3 and other Apify integrations.
  • Pull results from the Apify API in any language.

Use it from an AI assistant (MCP)

This Actor is callable over the Apify MCP server, so assistants like Claude and other MCP-aware agents can run it as a tool and reason over the results — for example "compare our product against these three rivals on G2 and tell me where we lose". Point your MCP client at Apify's server and call this Actor by name.

FAQ

Which comparisons can I scrape? Any public G2 /compare/ page. G2 publishes over a million of them across its comparison sitemaps, which discoverFromSitemap can walk automatically.

Do I need exact slugs? No. Pass full URLs, slugs, or free text like Slack vs Microsoft Teams. Product order does not matter and renamed products are followed automatically.

How fresh is the data? Every run fetches the live page, so results reflect G2 at that moment. Ratings and criteria scores move slowly, so weekly or monthly scheduling is usually enough to track meaningful change.

Is the AI summary G2's or yours? It is G2's own AI-generated summary, shown on the comparison page and derived from real user reviews. We extract it verbatim and never generate text.

Why do I need a residential proxy? G2 is protected by DataDome bot detection, which blocks nearly all datacenter IPs. The Actor drives a real browser through a residential exit and rotates automatically when an exit is refused. Keep residential proxying enabled for reliable results.

What happens if a comparison fails to load? The run continues. Failing pages are logged and skipped so one bad URL never costs you the whole run. If every comparison fails, the run fails loudly rather than returning an empty dataset silently.

Can I resume an interrupted run? Yes. Progress is checkpointed after every comparison. Re-running the same input resumes where it stopped and never writes duplicate rows.

How large is the output with feature scores on? Comparisons commonly carry 200–700 rated features, so rows get big. Leave includeFeatureScores off unless you specifically need feature-level gaps.

Is scraping G2 legal? This Actor collects only publicly available information, with no login and no personal data beyond what G2 publishes publicly. You are responsible for using the output in line with applicable law and G2's terms.

Support

Found a bug or need an extra field? Open an issue on the Actor's Issues tab — runtime errors are monitored and fixes ship quickly.