G2 Product Reviews Scraper ⭐
Pricing
Pay per usage
G2 Product Reviews Scraper ⭐
Scrape G2 reviews, software ratings, SaaS product reviews, customer feedback, pros, cons, reviewer insights, and product details. Extract structured G2 review data for SaaS competitor analysis, sentiment analysis, market research, lead generation, and AI datasets.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Shahid Irfan
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
What does G2 Product Reviews Scraper do?
G2 Product Reviews Scraper collects public reviews for any G2 product and saves them as structured records. Give it a G2 product URL, a review permalink, or a bare product slug. The Actor returns review titles, ratings, dates, reviewer details, pros, cons, problems solved, and direct review links.
Use it for competitor research, voice-of-customer analysis, review monitoring, and datasets for AI and search projects. Results land in an Apify dataset that you can download as JSON, CSV, Excel, or send to another workflow.
Why use G2 Product Reviews Scraper?
- Fast live collection. A 20 review run usually finishes in a few seconds. Larger runs read several review views in parallel.
- Deep coverage. The Actor combines star bands, company sizes, roles, regions, countries, industries, and review keywords to go beyond the first page.
- Reviewer context. Records include the reviewer label, role, company size, and industry when G2 publishes them.
- Separate answer fields. Pros, cons, and problems solved stay in their own columns instead of one long text block.
- Clean output. Empty values are removed, so every record contains only the fields that have data.
- Repeatable runs. Schedule the Actor to track new reviews, rating shifts, or changes in reviewer sentiment.
What data can you extract from G2?
| Field | Description |
|---|---|
product_name | Product name shown on G2 |
product_slug | G2 product slug |
product_url | G2 reviews page for the product |
product_category | Primary G2 category when available |
product_rating | Average product rating when available |
product_review_count | Total public review count when available |
review_id | G2 review identifier |
review_url | Direct link to the review |
review_title | Review headline |
review_rating | Star rating from 0 to 5 |
review_date | Publication date in ISO format |
reviewer_name | Public reviewer name or reviewer label |
reviewer_job_title | Reviewer role when published |
reviewer_company_size | Reviewer company size segment |
reviewer_industry | Reviewer industry when published |
pros | What the reviewer likes best |
cons | What the reviewer dislikes |
problems_solved | Problems the product solves for the reviewer |
review_text | Full review text with question headings |
badges | Review badges when the source publishes them |
review_source | Invitation or collection source when available |
verified_reviewer | True when G2 marks the reviewer as validated |
incentivized | True when G2 marks the review as incentivized |
current_user | True when G2 marks the reviewer as a current user |
ai_translated | True when G2 marks the review as AI translated |
data_source | g2_feed, live_page, archive_page, or g2_api |
scraped_at | ISO timestamp for the collection time |
Fields that G2 does not publish for a review are left out of that record. A missing company size or industry is a source limitation, not a failed run.
How to use G2 Product Reviews Scraper
- Open the Actor in Apify Console.
- Enter a G2 product URL, review permalink, or bare product slug.
- Set the number of reviews you want.
- Raise
max_pagesif you need deeper history. - Choose a sort order if you need one.
- Run the Actor and open the dataset to review or export the results.
Proxy settings are optional. The public G2 review data used by this Actor is normally reachable without a proxy. Enable Apify Proxy only if your runs are rate limited.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | HubSpot Marketing Hub reviews URL | G2 product URL, review page, review permalink, or bare slug |
results_wanted | Integer | No | 20 | Maximum number of reviews to save |
max_pages | Integer | No | 10 | Maximum review pages to read per view family. Each page holds up to 25 reviews |
sort_by | String | No | g2_default | Review sort order |
proxyConfiguration | Object | No | No proxy | Optional Apify Proxy or custom proxy URLs |
URL formats
startUrl accepts these forms:
https://www.g2.com/products/hubspot-marketing-hub/reviewshttps://www.g2.com/products/hubspot-marketing-hubhttps://www.g2.com/products/hubspot-marketing-hub/reviews/hubspot-marketing-hub-review-13518315www.g2.com/products/hubspot-marketing-hub/reviewshubspot-marketing-hub
A URL with G2 filters, such as filters[nps_score][]=5, keeps those filters. Category pages are not supported because they list products, not reviews. Comparison URLs use the first product.
Sort options
| Value | Behavior |
|---|---|
g2_default | G2 default source order, newest first |
most_recent | Newest reviews first |
most_helpful | Same source order. G2 does not publish helpful vote counts in this data |
highest_rated | Highest star ratings first in the saved set |
lowest_rated | Lowest star ratings first in the saved set |
Review coverage and limits
G2 serves up to 25 reviews per public view. A single view cannot be paged with page=2, so the Actor reads many filter views instead:
- all reviews
- 5, 4, 3, 2, and 1 star bands
- small business, mid-market, and enterprise company sizes
- common reviewer roles
- regions and countries
- four common industries
- keyword searches inside review text
- narrow combinations of company size, role, and star rating
max_pages caps how many pages the Actor reads in each view family. The default of 10 is enough for most runs. For requests above 500 reviews, set max_pages to 20 or 30.
If you have a G2 vendor token, set the G2_API_TOKEN environment variable. The Actor uses that source first and can page through 100 reviews per request.
Output Data
| Field | Type | Description |
|---|---|---|
product_name | String | Product name |
product_slug | String | G2 product slug |
product_url | String | Product reviews page |
product_category | String | Primary G2 category when available |
product_rating | Number | Average rating when available |
product_review_count | Integer | Total public reviews when available |
review_id | String | Review identifier |
review_url | String | Review permalink |
review_title | String | Review headline |
review_rating | Number | Star rating |
review_date | String | Publication date |
reviewer_name | String | Reviewer name or label |
reviewer_job_title | String | Reviewer role |
reviewer_company_size | String | Company size segment |
reviewer_industry | String | Reviewer industry |
pros | String | Positive answer |
cons | String | Negative answer |
problems_solved | String | Outcome answer |
review_text | String | Full review text |
badges | Array | Review badges when available |
review_source | String | Collection source when available |
verified_reviewer | Boolean | Validated reviewer flag |
incentivized | Boolean | Incentivized review flag |
current_user | Boolean | Current user flag |
ai_translated | Boolean | AI translation flag |
data_source | String | Where the record came from |
scraped_at | String | ISO timestamp |
Usage Examples
Collect 50 recent reviews
{"startUrl": "https://www.g2.com/products/hubspot-marketing-hub/reviews","results_wanted": 50}
Collect a larger dataset
{"startUrl": "https://www.g2.com/products/slack/reviews","results_wanted": 500,"max_pages": 20}
Sort by highest rating
{"startUrl": "https://www.g2.com/products/notion/reviews","results_wanted": 100,"sort_by": "highest_rated"}
Keep a star filter from the URL
{"startUrl": "https://www.g2.com/products/hubspot-marketing-hub/reviews?filters%5Bnps_score%5D%5B%5D=1","results_wanted": 50}
Use a review permalink
{"startUrl": "https://www.g2.com/products/slack/reviews/slack-review-13686121","results_wanted": 20}
Sample Output
{"product_name": "Slack","product_slug": "slack","product_url": "https://www.g2.com/products/slack/reviews","review_id": "13870634","review_url": "https://www.g2.com/products/slack/reviews/slack-review-13870634","review_title": "Straightforward Team Communication with Handy Integrations","review_rating": 4,"review_date": "2026-10-27T11:11:25.000Z","reviewer_name": "Verified User","reviewer_industry": "Computer Software","reviewer_job_title": "User","reviewer_company_size": "501-1,000 employees","pros": "Slack has helped our team communicate more effectively. It’s straightforward to use, and it’s especially useful when working with remote teams. We use the integration to several tools so that we can get notifications within Slack. Agents and apps is a good way for us to do that.","cons": "When there are too many conversations and channels, it can be difficult to keep up with new messages, especially on busy days.","problems_solved": "It’s been helping our team communicate more effectively and stay aligned.","review_text": "What do you like best?\nSlack has helped our team communicate more effectively. It’s straightforward to use, and it’s especially useful when working with remote teams. We use the integration to several tools so that we can get notifications within Slack. Agents and apps is a good way for us to do that.\n\nWhat do you dislike?\nWhen there are too many conversations and channels, it can be difficult to keep up with new messages, especially on busy days.\n\nWhat problems is the product solving?\nIt’s been helping our team communicate more effectively and stay aligned.","data_source": "g2_feed","scraped_at": "2026-10-27T15:53:35.246Z"}
Tips for Best Results
- Start with 20 to 50 reviews to confirm the product and fields before a large run.
- Set
max_pagesto 20 or 30 when you request more than 500 reviews. - Keep a star filter in
startUrlwhen you only need one rating band. - Use
highest_ratedorlowest_ratedwhen rating order matters. The Actor sorts the reviews it saves for that run. - Review dates, roles, company sizes, and industries come from G2. Missing values mean the reviewer did not publish them.
- Schedule repeat runs to collect new reviews without changing the input.
- In local testing on 27 October 2026, 200 reviews completed in about 9 seconds and 1,000 reviews in about 24 seconds with
max_pages: 30.
Integrations
- Google Sheets - Send review records to a spreadsheet for analysis.
- Webhooks - Trigger downstream workflows after a run.
- Make or Zapier - Connect results to no-code automations.
- API - Read datasets from your own systems.
- AI and RAG pipelines - Use clean review text as source material for models and search indexes.
Frequently Asked Questions
Can I export G2 review data to CSV or Excel?
Yes. Apify datasets can be downloaded as CSV, Excel, JSON, XML, and other supported formats.
Can I run this Actor on a schedule?
Yes. Schedule it in Apify Console to collect new reviews daily, weekly, or at another interval.
How many reviews can one run collect?
It depends on the product and the number of filter views that contain reviews. Runs of 1,000 reviews were tested on a product with more than 10,000 reviews. Smaller products return fewer records and the log reports how many were saved.
Why did the run stop before results_wanted?
The product may have fewer public reviews than requested, the filter views may be exhausted, or G2 may have rate limited the run. Check the final log line for stop=results_reached, stop=live_exhausted, or stop=archive_recovered.
Why are some fields missing?
G2 does not publish every field for every review. Anonymous reviewers often have no industry or company size. Badges and review source labels are not present in every data view. The Actor leaves empty fields out instead of writing null values.
What does data_source mean?
g2_feed means the record came from a live public review view. live_page means it came from a public review page. archive_page means live data was unavailable and the Actor used a public archived copy. g2_api means it came from an authorized G2 vendor feed.
Does the Actor support review sorting?
Yes. Use sort_by with g2_default, most_recent, most_helpful, highest_rated, or lowest_rated. Helpful vote counts are not public, so most_helpful uses the default source order.
Does the Actor support review permalinks?
Yes. A URL such as https://www.g2.com/products/slack/reviews/slack-review-13686121 resolves to the product and collects reviews from there.
Does the Actor support category pages?
No. Category pages list products, not product reviews. Provide a product URL or a bare product slug.
Can I use an authorized G2 vendor feed?
Yes. Set the G2_API_TOKEN environment variable for the Actor. Records from that source are marked with data_source: "g2_api". Without a token, the Actor uses public review data.
Is it legal to collect G2 review data?
The reviews are publicly visible. You are responsible for complying with applicable laws, G2's terms, and privacy rules when you store or use the data.
Related Actors
- Capterra Review Scraper - Collect B2B software reviews from Capterra.
- Clutch.co Reviews Scraper - Collect agency and software reviews from Clutch.
- TrustPilot Reviews Scraper - Collect public company reviews from Trustpilot.
Support
For issues or feature requests, use the Issues tab on the Actor page or contact the developer through Apify.
Legal Notice
This Actor is designed for legitimate collection of publicly available review data. Users are responsible for using the data responsibly and complying with applicable laws and website terms.