G2 Software Reviews, Product Info & Competitor Extractor
Collects G2 software product reviews with ratings and pros/cons, product profile summaries, or competitor listings from any G2 product page.
Input schema
Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | optional | What to collect from G2. |
startUrls | array | required | G2 product URLs (e.g. https://www.g2.com/products/notion/reviews) or bare product slugs (e.g. notion). One entry per product. |
maxItems | integer | optional | Upper limit of records to collect for each product. (mode=reviews uses filtering to go far beyond G2's default review feed.) |
Show all input fields
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | optional | What to collect from G2. |
startUrls | array | required | G2 product URLs (e.g. https://www.g2.com/products/notion/reviews) or bare product slugs (e.g. notion). One entry per product. |
maxItems | integer | optional | Upper limit of records to collect for each product. (mode=reviews uses filtering to go far beyond G2's default review feed.) |
starRatings | array | optional | Keep reviews with one of the selected star ratings. Leave empty for all ratings. (mode=reviews) |
companySizes | array | optional | Keep reviews from companies of the selected sizes. Leave empty for all sizes. (mode=reviews) |
reviewerRoles | array | optional | Keep reviews written by reviewers with one of the selected roles. Leave empty for all roles. (mode=reviews) |
reviewerRegions | array | optional | Keep reviews from reviewers in the selected regions. Leave empty for all regions. (mode=reviews) |
sortBy | string | optional | Order of the collected reviews. (mode=reviews) |
fromDate | string | optional | Only keep reviews published on or after this date. (mode=reviews) |
toDate | string | optional | Only keep reviews published on or before this date. (mode=reviews) |
Download the published input schema
View complete JSON
{
"description": "Scrape G2 software reviews by URL or slug, plus product info and competitor lists.",
"properties": {
"companySizes": {
"default": [],
"description": "Keep reviews from companies of the selected sizes. Leave empty for all sizes. (mode=reviews)",
"editor": "select",
"items": {
"enum": [
"smallBusiness",
"midMarket",
"enterprise"
],
"enumTitles": [
"Small Business (50 or fewer emp.)",
"Mid-Market (51-1000 emp.)",
"Enterprise (1001+ emp.)"
],
"type": "string"
},
"prefill": [],
"title": "Reviewer company size",
"type": "array"
},
"fromDate": {
"description": "Only keep reviews published on or after this date. (mode=reviews)",
"editor": "datepicker",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"title": "Reviews from (optional)",
"type": "string"
},
"maxItems": {
"default": 50,
"description": "Upper limit of records to collect for each product. (mode=reviews uses filtering to go far beyond G2's default review feed.)",
"maximum": 50000,
"minimum": 1,
"prefill": 3,
"title": "Maximum items per product",
"type": "integer"
},
"mode": {
"default": "reviews",
"description": "What to collect from G2.",
"editor": "select",
"enum": [
"reviews",
"productInfo",
"competitors"
],
"enumTitles": [
"Reviews for products",
"Product info & details",
"Competitors & alternatives"
],
"prefill": "reviews",
"title": "Mode",
"type": "string"
},
"reviewerRegions": {
"default": [],
"description": "Keep reviews from reviewers in the selected regions. Leave empty for all regions. (mode=reviews)",
"editor": "select",
"items": {
"enum": [
"northAmerica",
"europe",
"asia",
"anz",
"africa",
"latinAmerica",
"middleEast"
],
"enumTitles": [
"North America",
"Europe",
"Asia",
"ANZ",
"Africa",
"Latin America",
"Middle East"
],
"type": "string"
},
"prefill": [],
"title": "Reviewer regions",
"type": "array"
},
"reviewerRoles": {
"default": [],
"description": "Keep reviews written by reviewers with one of the selected roles. Leave empty for all roles. (mode=reviews)",
"editor": "select",
"items": {
"enum": [
"user",
"administrator",
"executiveSponsor",
"internalConsultant",
"consultant",
"agency",
"industryAnalyst"
],
"enumTitles": [
"User",
"Administrator",
"Executive Sponsor",
"Internal Consultant",
"Consultant",
"Agency",
"Industry Analyst / Tech Writer"
],
"type": "string"
},
"prefill": [],
"title": "Reviewer roles",
"type": "array"
},
"sortBy": {
"default": "newest",
"description": "Order of the collected reviews. (mode=reviews)",
"editor": "select",
"enum": [
"newest",
"oldest",
"highestRated",
"lowestRated"
],
"enumTitles": [
"Newest first",
"Oldest first",
"Highest rated first",
"Lowest rated first"
],
"prefill": "newest",
"title": "Sort reviews by",
"type": "string"
},
"starRatings": {
"default": [],
"description": "Keep reviews with one of the selected star ratings. Leave empty for all ratings. (mode=reviews)",
"editor": "select",
"items": {
"enum": [
"1",
"2",
"3",
"4",
"5"
],
"enumTitles": [
"1 star",
"2 stars",
"3 stars",
"4 stars",
"5 stars"
],
"type": "string"
},
"prefill": [],
"title": "Star ratings",
"type": "array"
},
"startUrls": {
"description": "G2 product URLs (e.g. https://www.g2.com/products/notion/reviews) or bare product slugs (e.g. notion). One entry per product.",
"editor": "stringList",
"prefill": [
"https://www.g2.com/products/notion/reviews"
],
"title": "G2 product URLs or slugs",
"type": "array"
},
"toDate": {
"description": "Only keep reviews published on or before this date. (mode=reviews)",
"editor": "datepicker",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"title": "Reviews until (optional)",
"type": "string"
}
},
"required": [
"startUrls"
],
"schemaVersion": 1,
"title": "G2 Product Scraper Input",
"type": "object"
}
Output schema
Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.
| Field | Type | Required | Description |
|---|---|---|---|
items | string | optional | Dataset containing all scraped G2 reviews, product records, or competitor records. |
Download the published output schema
View complete JSON
{
"actorOutputSchemaVersion": 1,
"description": "Dataset of G2 reviews, product profiles, or competitor records, depending on the selected mode.",
"properties": {
"items": {
"description": "Dataset containing all scraped G2 reviews, product records, or competitor records.",
"template": "{{links.apiDefaultDatasetUrl}}/items",
"title": "Items",
"type": "string"
}
},
"title": "G2 Products Scraper Output"
}
Dataset schema
Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.
Download the published dataset schema
View complete JSON
{
"actorSpecification": 1,
"fields": {
"properties": {
"authorName": {
"description": "Reviewer name",
"type": "string"
},
"authorRole": {
"description": "Reviewer role (User, Administrator, etc.)",
"type": "string"
},
"categories": {
"description": "All G2 categories",
"type": "array"
},
"category": {
"description": "Primary G2 category",
"type": "string"
},
"companySize": {
"description": "Reviewer company size segment",
"type": "string"
},
"competitorName": {
"description": "Competitor product name",
"type": "string"
},
"competitorSlug": {
"description": "Competitor G2 slug",
"type": "string"
},
"competitorUrl": {
"description": "Competitor G2 reviews URL",
"type": "string"
},
"cons": {
"description": "What the reviewer disliked",
"type": "string"
},
"description": {
"description": "Product or competitor summary",
"type": "string"
},
"imageUrl": {
"description": "Product image URL",
"type": "string"
},
"pricing": {
"description": "Pricing plans ({plan, price, currency})",
"type": "array"
},
"productName": {
"description": "Software product name",
"type": "string"
},
"productSlug": {
"description": "G2 product slug",
"type": "string"
},
"productUrl": {
"description": "G2 product reviews URL",
"type": "string"
},
"pros": {
"description": "What the reviewer liked",
"type": "string"
},
"publishDate": {
"description": "Review publish date",
"type": "string"
},
"rating": {
"description": "Star value (0-5)",
"type": "number"
},
"recordType": {
"description": "review, product or competitor",
"type": "string"
},
"reviewCount": {
"description": "Number of reviews",
"type": "integer"
},
"reviewId": {
"description": "Unique G2 review ID",
"type": "string"
},
"reviewTitle": {
"description": "Review headline",
"type": "string"
},
"reviewUrl": {
"description": "Direct review URL",
"type": "string"
},
"scrapedAt": {
"description": "Scrape timestamp (ISO 8601)",
"type": "string"
},
"sourceProduct": {
"description": "Slug of the compared product",
"type": "string"
},
"starRating": {
"description": "Star bucket (1-5)",
"type": "integer"
},
"useCase": {
"description": "Problems the product solves",
"type": "string"
},
"vendorName": {
"description": "Product vendor (seller) name",
"type": "string"
},
"vendorUrl": {
"description": "Vendor seller page on G2",
"type": "string"
}
},
"type": "object"
},
"title": "G2 Records",
"views": {
"overview": {
"display": {
"component": "table",
"properties": {
"authorName": {
"format": "text",
"label": "Author"
},
"cons": {
"format": "text",
"label": "Cons"
},
"productName": {
"format": "text",
"label": "Product"
},
"pros": {
"format": "text",
"label": "Pros"
},
"publishDate": {
"format": "text",
"label": "Date"
},
"rating": {
"format": "number",
"label": "Rating"
},
"reviewTitle": {
"format": "text",
"label": "Title"
},
"starRating": {
"format": "number",
"label": "Stars"
}
}
},
"title": "Reviews",
"transformation": {
"fields": [
"productName",
"starRating",
"rating",
"authorName",
"reviewTitle",
"pros",
"cons",
"publishDate"
]
}
}
}
}
Key-value schema
Published key-value store definitions, when provided by this build.
This definition is not present in the default published build. See the published README for available documentation.
Published README
Read the full published documentation
G2 Software Reviews, Product Info & Competitor Extractor
Scrape G2 — the B2B software marketplace with millions of verified user reviews — for any product. Pull reviews with ratings, pros, cons and reviewer context; collect a product's profile summary (rating, review count, categories, pricing plans); or list the competitors G2 shows for a product. Works from a G2 product URL or just a slug, no account or setup required.
What this actor does
- Three modes: collect reviews, product info, or competitor lists for any G2 product.
- Review filters: star rating, reviewer company size, reviewer role, reviewer region, and publication date range.
- Deep review coverage: goes beyond the handful of reviews G2 shows by default — request hundreds or thousands per product.
- Any input shape: full G2 URLs or bare slugs (
notion,slack,hubspot-marketing-hub), mixed freely in one run. - Empty fields are omitted — every record only contains values G2 actually provides.
Output per review (mode = reviews)
reviewId— unique G2 review IDreviewTitle— headline of the reviewreviewUrl— direct link to the review on G2rating— the reviewer's star value on G2's 0–5 scale (halves included)starRating— the review's star bucket, 1–5authorName— reviewer display name (as published by G2)authorRole— reviewer's stated role, e.g. AdministratorcompanySize— reviewer's company size segmentpublishDate— publication date from G2pros,cons,useCase— the reviewer's "like best", "dislike" and "problems solved" answersproductName,productSlug,productUrl— product identityrecordType: "review",scrapedAt
Output per product (mode = productInfo)
productName,productSlug,urldescription— the product summary from its G2 pagerating— average rating,reviewCount— total reviewscategoryandcategories[]— G2 category listingsimageUrl— product logopricing— array of{plan, price, currency}plans G2 publishesoperatingSystemvendorName,vendorUrl— the vendor (seller) shown on the product pagerecordType: "product",scrapedAt
Output per competitor (mode = competitors)
competitorName,competitorSlug,competitorUrlrating,reviewCount— the competitor's standing on G2description— G2's blurb for the competitorsourceProduct— slug of the product whose competitor list this came fromrecordType: "competitor",scrapedAt
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode |
string | reviews |
reviews, productInfo, or competitors |
startUrls |
array | – | G2 product URLs or bare slugs (notion, slack), one per product. Required. |
maxItems |
integer | 50 | Maximum records per product (1–50,000) |
starRatings |
array | – | Keep reviews with these star ratings (1–5). (mode=reviews) |
companySizes |
array | – | Keep reviews from these company sizes: smallBusiness, midMarket, enterprise. (mode=reviews) |
reviewerRoles |
array | – | Keep reviews by these reviewer roles, e.g. administrator. (mode=reviews) |
reviewerRegions |
array | – | Keep reviews from these regions, e.g. northAmerica. (mode=reviews) |
sortBy |
string | newest |
newest, oldest, highestRated, lowestRated |
fromDate |
string | – | Only reviews published on or after this date (YYYY-MM-DD) |
toDate |
string | – | Only reviews published on or before this date (YYYY-MM-DD) |
Example: recent 5-star reviews
{
"mode": "reviews",
"startUrls": ["https://www.g2.com/products/notion/reviews"],
"maxItems": 100,
"starRatings": [5],
"sortBy": "newest"
}
Example: deep pull for competitive research
{
"mode": "reviews",
"startUrls": ["slack", "microsoft-teams"],
"maxItems": 1000,
"companySizes": ["enterprise", "midMarket"],
"sortBy": "highestRated"
}
Example: product profile
{
"mode": "productInfo",
"startUrls": ["https://www.g2.com/products/hubspot-marketing-hub"]
}
Example: competitor lists for several products
{
"mode": "competitors",
"startUrls": ["notion", "asana", "monday-com"],
"maxItems": 20
}
Use cases
- Voice-of-customer research — export raw pros/cons and use cases to feed qualitative analysis.
- Competitive battlecards — pull a product's listed alternatives with their ratings and review counts.
- Review monitoring — schedule runs with
fromDateto collect only new reviews since the last run. - Vendor shortlisting — compare profiles and pricing plans side by side before deeper evaluation.
- Sentiment slices — study how enterprise reviewers rate a product versus small-business reviewers.
- LLM / RAG pipelines — structured review text with metadata, ready for indexing.
FAQ
Do I need a G2 account or API key?
No. The actor reads pages and feeds G2 already makes public.
Can I get more than the reviews G2 shows on a product page?
Yes. For mode=reviews the actor combines G2's own filter views (stars, company size, role, region) while de-duplicating results, so common products yield hundreds to thousands of distinct reviews per run. maxItems caps the output.
Why are some companySize or authorRole values missing?
G2 makes reviewer details optional when someone submits a review. Across a 400-review sample, company size is published for about 80% of reviews, and roughly one in four roles is G2's anonymised "G2 User" placeholder rather than a real job role. Missing values are omitted rather than guessed.
What does rating mean next to starRating?
rating is the exact value G2 publishes on its 0–5 scale (including halves like 4.5). starRating is the star bucket (1–5) the review belongs to — useful for grouping. A few reviews legitimately carry a 0.0 rating; that is G2's lowest value, not missing data.
Does each review include sub-ratings (ease of use, support) or "switched from" data?
No — G2 does not publish per-review sub-ratings, themes, or switching data on any public page; those appear only for signed-in users or through G2's enterprise API. This actor returns the complete public surface: rating, title, pros/cons/problems, reviewer context and dates.
Can I filter by date range?
Yes — set fromDate and/or toDate and only matching reviews are returned. Both are inclusive.
How fresh is the data?
Every run reads G2 live; nothing is cached between runs.
Do I need to set up a proxy?
No. The actor chooses a working connection to G2 automatically. Just fill in the input and run.
Is this affiliated with G2?
No. This actor reads publicly available G2 pages and feeds; it is not operated by or affiliated with G2.com.
Python quickstart
Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.
Source build SEfo3afTwaeYxU5xK. Documentation is regenerated from the default published build; private drafts are not included.