# G2 Reviews Scraper: Ratings, Pros, Cons & Roles (`themineworks/g2-reviews-scraper`) Actor

Scrape G2 product reviews: star rating, review title, what reviewers like and dislike, job title, company size band and review date. No login, no API key. Optional deterministic insights per product. Works in Claude, ChatGPT & any MCP agent.

- **URL**: https://apify.com/themineworks/g2-reviews-scraper.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 reviews

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## G2 Reviews Scraper: Ratings, Pros, Cons & Roles

[![10 G2 reviews in 60 seconds, each with rating, pros, cons, reviewer role and company size](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/g2-reviews-scraper-hero-fix0930.png)](https://console.apify.com/actors/PN0LgavoIHgYRH4Qk/input)

From **The Mine Works**, makers of [Threads Scraper](https://apify.com/themineworks/threads-scraper) and [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder), with over 140,000 runs across 170+ public actors.

### Why choose this actor?

- **Real G2 reviews, not an empty page.** G2 sits behind two bot protection layers and builds its review list in the browser, so an ordinary request gets a page with no reviews in it. This actor reads the review pages through Apify's unblocking proxy and returned **10 reviews in 60 seconds** in our test run on 1 October 2026, and 30 reviews from three pages in a local test after the paging fix the same day. No G2 account, no API key, no proxy to set up.
- **The reviewer's context in every row.** Each review comes with its star rating (half stars kept), title, what the reviewer liked, what they disliked, the reviewer's job title and the size band of their company (Small-Business, Mid-Market or Enterprise), so you can compare what small teams and large companies say about the same tool.
- **You pay only for reviews delivered.** Each review is charged after it is saved to your dataset. A product G2 refuses, a page that repeats reviews you already have and every summary row cost nothing. There is no start fee.

[![Run it on Apify](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/button-run.png)](https://console.apify.com/actors/PN0LgavoIHgYRH4Qk/input)

**Part of The Mine Works Marketing, SEO and reviews family:** [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper), [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper), [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency), [Google News Scraper](https://apify.com/themineworks/google-news), [Trustpilot Reviews Scraper](https://apify.com/themineworks/trustpilot-reviews), [Google Trends Scraper](https://apify.com/themineworks/google-trends-pro).

### Try it in one minute

Paste this into the JSON tab of the input page. It returns the first page of G2 reviews for the product, 10 reviews, in about a minute.

```json
{
  "productUrls": ["salesforce-customer-success"],
  "maxReviewsPerProduct": 10
}
```

You can name a product in two ways, in any mix: the full product link copied from G2 (`https://www.g2.com/products/hubspot-marketing-hub/reviews`, or any other page under `/products/<name>/`), or just the product's slug, the part after `/products/` (`hubspot-marketing-hub`). Up to 10 products per run.

Apify's free plan includes $5 of credit every month, which covers about 2,000 reviews at this actor's Free plan price of $0.0025 per review, since there is no start fee.

#### Copy to your AI assistant

```
themineworks/g2-reviews-scraper on Apify. Scrapes public G2 software reviews for up to 10 products per run, with no login, and returns one row per review with review id, title, star rating out of 5, pros (what the reviewer likes best), cons (what they dislike), reviewer name as G2 shows it, job title, company size band, review date and video flag; up to 200 reviews per product (20 pages of 10). Call ApifyClient("TOKEN").actor("themineworks/g2-reviews-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: productUrls (array of G2 product URLs or slugs such as "hubspot-marketing-hub"). Optional: maxReviewsPerProduct (default 20, 1 to 400; values above 200 are treated as 200), includeReviewInsights (default false; adds one rating breakdown row per product). Skip rows that have a _type field (summary, review_insights, run_summary, info); review rows have none. Full spec: GET https://api.apify.com/v2/acts/themineworks~g2-reviews-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations
```

### Key features

- **18 fields per review**: `review_id`, `review_title`, `rating` and `rating_out_of`, `pros`, `cons`, `reviewer_name`, `reviewer_job_title`, `reviewer_id`, `company_size_band`, `review_date`, `is_video_review`, plus the product's slug, name, G2 product id and vendor id, the review page link and the time it was read.
- **Up to 10 products per run**: paste a list of competitors or a whole shortlist. A product listed twice (as a link and as a slug, say) is read once.
- **G2's own review count per product**: a summary row per product carries `g2_reported_total`, the number of reviews G2 says the product has (568 for Salesforce Customer Success and 15,952 for HubSpot Marketing Hub on 1 October 2026), next to how many reviews this run delivered.
- **Optional insights row, no AI**: switch on `includeReviewInsights` for one extra row per product with a five bucket star breakdown, the words that recur in reviews rated 2 or lower, and a month by month average rating when the reviews span two months or more. It is worked out from the reviews already collected, with no extra page loads, for $0.02 per product.
- **Light and steady**: plain HTTP through Apify's unblocking proxy at 512 MB, no browser. Each page gets one retry, and a run stops on its own after 3 failed pages in a row so a bad day at G2 does not keep running.
- **Up to 200 reviews per product.** The actor reads G2's review pages, 10 reviews a page, until it has `maxReviewsPerProduct` reviews or has read 20 pages. A page that fails twice is made up from the next page, and a review already delivered in the run is dropped, never charged. In our local test on 1 October 2026, asking for 30 reviews of Salesforce Customer Success returned 30 reviews with 30 different review ids from three pages.

### How to use it

#### Basic: one product

```json
{
  "productUrls": ["https://www.g2.com/products/hubspot-marketing-hub/reviews"],
  "maxReviewsPerProduct": 10
}
```

#### Several products at once

Put up to 10 products in one run. They are read one after another, each with its own `maxReviewsPerProduct`.

```json
{
  "productUrls": [
    "hubspot-marketing-hub",
    "salesforce-customer-success",
    "https://www.g2.com/products/zoho-crm/reviews"
  ],
  "maxReviewsPerProduct": 10
}
```

#### Competitor review watch, every week

Read the newest reviews of your competitors each Monday and see what their customers complain about. Schedule it in Apify (Console, this actor, Schedules, weekly). The actor has no memory between runs, so a review that is still on G2's first page next week comes back again and is charged again; keep `review_id` as the key in your sheet or database to drop repeats.

```json
{
  "productUrls": ["hubspot-marketing-hub", "pipedrive", "zoho-crm"],
  "maxReviewsPerProduct": 10
}
```

#### Category snapshot with star breakdowns

Before a buying decision or a market report, pull the latest reviews for a whole shortlist and get one insights row per product with the star split. These five products cost at most 50 reviews plus $0.10 of insights; a full run of 10 products, at most 100 reviews plus $0.20.

```json
{
  "productUrls": ["hubspot-sales-hub", "pipedrive", "zoho-crm", "salesforce-customer-success", "hubspot-marketing-hub"],
  "maxReviewsPerProduct": 10,
  "includeReviewInsights": true
}
```

#### Win and loss notes by company size

Feed `cons` and `company_size_band` into a sheet or a summarising model to see whether Enterprise reviewers and Small-Business reviewers dislike the same things. The pros and cons are already split, so no text parsing is needed on your side.

```json
{
  "productUrls": ["salesforce-customer-success", "hubspot-sales-hub"],
  "maxReviewsPerProduct": 10
}
```

### Input parameters

| Parameter | Type | Default | What it does |
| --- | --- | --- | --- |
| `productUrls` | array of strings | none (prefilled with `salesforce-customer-success`) | G2 products: a link such as `https://www.g2.com/products/salesforce-customer-success/reviews`, or just the slug `salesforce-customer-success`. At most 10 per run; extra products are skipped with a warning in the log, so split long lists across runs. |
| `maxReviewsPerProduct` | integer | 20 | Most reviews per product, not per run (1 to 400). The actor reads at most 20 pages of 10 per product, so values above 200 are treated as 200. Every 10 reviews is one more page through the unblocking proxy, so higher values make the run longer. |
| `includeReviewInsights` | boolean | false | Adds one `review_insights` row per product: star breakdown, recurring terms in low rated reviews and a monthly rating trend, computed from the reviews in this run. $0.02 per product, charged only for a product that returned reviews. |

If no usable product is given, the run ends at once with a `summary` row saying no valid product was given, and nothing is charged.

### What data do you get?

One row per review. A field G2 does not show for a review is left out of that row rather than filled with `null` or a guess; the reviewer's job title is the one most often missing.

**The review**: `review_id` (G2's number for the review), `review_title`, `rating` (for example 4.5) and `rating_out_of` (always 5), `pros` (the answer to G2's "What do you like best" question), `cons` (the answer to "What do you dislike"), `review_date` (the publish date, `YYYY-MM-DD`) and `is_video_review`.

**The reviewer**: `reviewer_name` (as G2 shows it: first name and the initial of the last name), `reviewer_job_title`, `reviewer_id` and `company_size_band` (`Small-Business (50 or fewer emp.)`, `Mid-Market (51-1000 emp.)` or `Enterprise (> 1000 emp.)`, in G2's own wording).

**The product**: `product_slug`, `product_name`, `product_id` and `vendor_id` (G2's ids, useful to join with other G2 data), `review_url` (the product's review page on G2, the same for every review of that product) and `scraped_at`.

Other rows carry a `_type` field, so you can filter them out in one step:

- `summary`, one per product: `reviews_scraped`, `charged_for` and `g2_reported_total`, the review count G2 shows for the product.
- `review_insights`, one per product when `includeReviewInsights` is on: `rating_distribution` (count and percent for 1 to 5 stars; half stars are rounded, so 4.5 counts as 5), `top_complaint_terms` (words and two word phrases that occur at least twice in reviews rated 2 or lower; empty when there are none, which is common), a month by month average rating (only when the reviews span two months or more), `based_on_reviews` and `based_on_negative_reviews`. When a review rated 2 or lower is present the row also has a negative review reply rate; it is always 0 because the actor does not read vendor replies on G2, so ignore it.
- `run_summary`, one per run: products requested and delivered, `reviews`, `charged_for`, `page_requests` and `page_failures`.
- `info`, one per run: how many reviews were delivered, never charged.

#### Stable fields for automations

These fields were present in every review row of our test runs on 1 October 2026:

| Field | What it holds |
| --- | --- |
| `review_id` | G2's id for the review; use it as your key |
| `product_slug` | The product as in the G2 link |
| `product_name` | The product's name on G2 |
| `review_title` | The review's headline |
| `rating` | Stars given, half stars kept |
| `rating_out_of` | Always 5 |
| `pros` | What the reviewer likes best |
| `cons` | What the reviewer dislikes |
| `reviewer_name` | First name and last initial, as G2 shows it |
| `company_size_band` | G2's company size band |
| `review_date` | Publish date, YYYY-MM-DD |
| `is_video_review` | true for a video review |
| `review_url` | The product's G2 review page |
| `scraped_at` | When the row was read, ISO 8601 |

These names will not change. New fields may be added, never renamed or removed.

#### Output examples

Real rows from our runs on 1 October 2026, trimmed for length (long answers end with `...`; reviewer names are shortened to initials here, while the actor returns them as G2 shows them).

A review of Salesforce Customer Success (Apify run of 10 reviews, 60 seconds):

```json
{
  "review_id": 13499585,
  "product_slug": "salesforce-customer-success",
  "product_name": "Salesforce Customer Success",
  "product_id": 118604,
  "vendor_id": 469,
  "review_title": "Strong Salesforce Expertise, But Needs More Tailored Guidance and Clearer Ownership",
  "rating": 3,
  "rating_out_of": 5,
  "pros": "What I like best about Salesforce Customer Success is the combination of Salesforce expertise, practical guidance, and access to best practices...",
  "cons": "At times, it can be challenging to navigate the breadth of available resources and determine which guidance is most relevant to our specific environment...",
  "reviewer_name": "N. R.",
  "reviewer_job_title": "Salesforce Engineer",
  "reviewer_id": 2420723,
  "company_size_band": "Mid-Market (51-1000 emp.)",
  "review_date": "2026-09-17",
  "is_video_review": false,
  "review_url": "https://www.g2.com/products/salesforce-customer-success/reviews",
  "scraped_at": "2026-10-01T09:00:53.540Z"
}
```

A review of HubSpot Marketing Hub from a small business:

```json
{
  "review_id": 13556014,
  "product_slug": "hubspot-marketing-hub",
  "product_name": "HubSpot Marketing Hub",
  "product_id": 364,
  "vendor_id": 316,
  "review_title": "Powerful Organization, Helpful AI Integrations, and Great Reporting Dashboards",
  "rating": 4,
  "rating_out_of": 5,
  "pros": "There are so many ways to organize items and add as much detail to a contact as needed...",
  "cons": "There are quite a few limitations that push you to upgrade to Enterprise. The workflows can also be confusing...",
  "reviewer_name": "K. S.",
  "reviewer_job_title": "Client Success Manager",
  "reviewer_id": 10008681,
  "company_size_band": "Small-Business (50 or fewer emp.)",
  "review_date": "2026-09-22",
  "is_video_review": false,
  "review_url": "https://www.g2.com/products/hubspot-marketing-hub/reviews",
  "scraped_at": "2026-10-01T13:29:20.077Z"
}
```

The insights row for the same product, with `includeReviewInsights` on. None of the 10 reviews was rated 2 or lower, so `top_complaint_terms` is empty, and they all came from one month, so there is no monthly trend:

```json
{
  "_type": "review_insights",
  "product_slug": "hubspot-marketing-hub",
  "product_name": "HubSpot Marketing Hub",
  "rating_distribution": {
    "1_star": { "count": 0, "pct": 0 },
    "2_star": { "count": 0, "pct": 0 },
    "3_star": { "count": 1, "pct": 10 },
    "4_star": { "count": 1, "pct": 10 },
    "5_star": { "count": 8, "pct": 80 }
  },
  "top_complaint_terms": [],
  "based_on_reviews": 10,
  "based_on_negative_reviews": 0,
  "computed_at": "2026-10-01T13:30:01.150Z"
}
```

The product summary row from the Apify run:

```json
{
  "_type": "summary",
  "product_slug": "salesforce-customer-success",
  "product_name": "Salesforce Customer Success",
  "reviews_scraped": 10,
  "charged_for": 10,
  "g2_reported_total": 568,
  "scraped_at": "2026-10-01T09:00:55.380Z"
}
```

### Pricing

Pay per event: you pay for each review delivered to your dataset, and for the optional insights row. There is no start fee, and the unblocking proxy is included.

| Event | Free plan | Starter (Bronze) | Scale (Silver) | Business (Gold) and above |
| --- | --- | --- | --- | --- |
| Review delivered (`review-scraped`), per review | $0.0025 | $0.0025 | $0.00225 | $0.002 |
| Per 1,000 reviews | $2.50 | $2.50 | $2.25 | $2.00 |
| Review insights (`review-insights-computed`), per product | $0.02 | $0.02 | $0.02 | $0.02 |
| Run start | none | none | none | none |

So the quick start above (10 reviews of one product) costs $0.025 on the Free plan, and 10 products at 10 reviews each with insights cost at most $0.25 plus $0.20. One run reads at most about 60 pages (about 600 reviews, $1.50 on the Free plan) before its cost guard stops it. These prices have applied since 3 September 2026, and no price change is scheduled.

**Never charged**: a review that repeats one already delivered in the run, a product that returns no reviews, a page G2 refuses, an insights row for a product with no reviews, and the `summary`, `run_summary` and `info` rows. You can also cap a run's spend with Apify's "Max cost per run" setting; once the cap is reached the actor stops delivering reviews and still writes its summary rows.

### FAQ

#### What is G2?

G2 (g2.com) is a large review site for business software, where people who use a tool rate it out of 5 stars and answer set questions about what they like and dislike. Each review shows the reviewer's job title and the size of their company, which is what makes G2 data useful for B2B research.

#### How many reviews can I get?

Up to 200 per product (20 pages of 10 reviews) and up to 10 products per run. A run also stops reading after about 60 pages, its cost guard, so one run returns at most about 600 reviews; for more, split the products across runs. A product with fewer reviews than you ask for returns what G2 lists, and the product's full review count on G2 is in the `summary` row as `g2_reported_total`. A review that shows up twice while G2's list shifts during the run is delivered and charged once.

#### Which reviews come first? Can I filter by stars or date?

You get the reviews in the order G2's review page shows them by default, which is close to newest first but not strictly by date. In our test on 1 October 2026, 29 of the first 30 reviews of Salesforce Customer Success were from the previous four weeks and one was from July. There is no star or date filter in the input; filter the dataset after the run instead.

#### How long does a run take?

Each page goes through Apify's unblocking proxy and took about 30 to 80 seconds in our tests. The first page of a product is read alone, then the rest up to 5 at a time. Our Apify test run of 10 reviews finished in 60 seconds, and a local run of 30 reviews (three pages, one of them retried) took 136 seconds. Products are read one after another, so as a rough guide allow about a minute per product at 10 reviews and about two minutes at 20 to 50; at 200 reviews a product takes several minutes. The default run timeout is 10 minutes, so for several products or deep runs raise Timeout in the run options. If a run does hit its timeout, the reviews already saved stay in the dataset and a `run_summary` is written.

#### Do I need a G2 account, an API key or cookies?

No. G2 has no public reviews API, and the actor reads only the public review pages any visitor can open, with no login, no cookies and no key.

#### Do I need my own proxy?

No. G2 is protected by two bot protection layers, and plain requests, Apify's datacenter proxy and Apify's residential proxy with a full browser all failed in our tests in August 2026. The actor uses Apify's unblocking proxy, which works, and its cost is in the review price.

#### Why does it cost more than some other G2 scrapers?

Because each G2 page has to go through the unblocking proxy, which is a real cost per page and takes about a minute. The price covers that cost instead of being set below it, so the actor can keep returning real reviews.

#### Are `pros` and `cons` always complete?

Yes, as G2 shows them. Each answer is read from its own question on the review, in full, with paragraph breaks kept as new lines. A few reviewers paste the same text under several questions, often their answer to G2's third question ("What problems is the product solving"); the actor keeps what G2 shows, so on those reviews `pros` and `cons` can hold the same text. The answer to the third question itself is not returned.

#### Why did a product return nothing?

The usual reasons: the slug is not a G2 product (check it in your browser), or G2 refused the page twice (each page gets one retry). Either way the product costs nothing, and its `summary` row shows 0 reviews. If two products in a row return nothing, or 3 pages in a row fail, the run stops early rather than keep paying for refused pages, and `run_summary` says so.

#### Can I run it on a schedule to watch new reviews?

Yes. Save your input, then in Apify Console open this actor, go to Schedules and add one (weekly suits most products). The actor does not remember earlier runs, so a review still on G2's first page comes back and is charged again on the next run; use `review_id` as the key in your sheet or database to keep each review once.

#### Which export formats can I use?

JSON, CSV, Excel, XML, HTML table and RSS from the run page or the API. Filter out rows with a `_type` field to keep only reviews.

#### Can I use it from Claude, ChatGPT or another AI assistant?

Yes. Any assistant connected to Apify's MCP server can call it; add it with `https://mcp.apify.com/?tools=themineworks/g2-reviews-scraper`, or paste the "Copy to your AI assistant" block above into the chat and ask, for example, "get the latest G2 reviews of Pipedrive and list the main complaints".

#### Is it legal to scrape G2?

The actor collects only public review content that G2 shows to any visitor, with no login. It is an independent tool, not affiliated with, endorsed by or sponsored by G2.com, Inc.; G2 is a trademark of G2.com, Inc. How you use the data is your responsibility: follow G2's terms and the data protection laws that apply to you, such as GDPR in Europe and CCPA in California, because reviewer names, job titles and ids are personal data. Collect only what you have a legitimate purpose for.

### Integrations

- **Google Sheets, Excel, CSV, JSON**: export the dataset from the run page, or link a Google Sheet with Apify's Google Sheets integration.
- **Make, Zapier, n8n**: use the Apify app to start a run and pick up the reviews when it finishes.
- **Webhooks**: get a call to your own endpoint when a run succeeds or fails.
- **API**: start runs and read results with the Apify API or the `apify-client` package for Python and JavaScript.
- **MCP clients**: Claude, ChatGPT, Cursor and other MCP clients can call the actor through Apify's MCP server.

### More from The Mine Works

**Marketing, SEO and reviews**

- [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper)
- [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper)
- [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency)
- [Google News Scraper](https://apify.com/themineworks/google-news)
- [Trustpilot Reviews Scraper](https://apify.com/themineworks/trustpilot-reviews)
- [Google Trends Scraper](https://apify.com/themineworks/google-trends-pro)
- [Semrush Scraper](https://apify.com/themineworks/semrush-scraper)
- [App Review Monitor](https://apify.com/themineworks/app-reviews-monitor)
- [Trustpilot Business Search](https://apify.com/themineworks/trustpilot-business-search)
- [TripAdvisor Reviews Scraper](https://apify.com/themineworks/tripadvisor-reviews)
- [Username Checker](https://apify.com/themineworks/username-checker)
- [Backlink Building Agent](https://apify.com/themineworks/backlink-building-agent)

**Social media and video**

- [Threads Scraper](https://apify.com/themineworks/threads-scraper)
- [Reddit Scraper](https://apify.com/themineworks/reddit-scraper)
- [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper)
- [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper)

**Leads and business directories**

- [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder)
- [Skip Trace Lookup](https://apify.com/themineworks/skip-trace-lookup)
- [Google Maps Email Scraper](https://apify.com/themineworks/maps-leads)
- [JustDial Scraper](https://apify.com/themineworks/justdial-business)

**LinkedIn**

- [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details)
- [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search)
- [LinkedIn Employees Scraper](https://apify.com/themineworks/linkedin-employees)
- [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper)

**Real estate**

- [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings)
- [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold)
- [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper)
- [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp)

**Science, health and government data**

- [CourtListener Scraper](https://apify.com/themineworks/courtlistener-court-records)
- [data.gov.in Scraper](https://apify.com/themineworks/india-data-gov-scraper)
- [Socrata Open Data Scraper](https://apify.com/themineworks/socrata-open-data)
- [Academic Research MCP](https://apify.com/themineworks/academic-research-mcp)

**Jobs and hiring**

- [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper)
- [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper)
- [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp)
- [Naukri Jobs Scraper](https://apify.com/themineworks/naukri-jobs)

**E-commerce and marketplaces**

- [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search)
- [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews)
- [Amazon Product Scraper](https://apify.com/themineworks/amazon-products)
- [Carsales.com.au Scraper](https://apify.com/themineworks/carsales-scraper)

**Company and business data**

- [Company Domain Finder](https://apify.com/themineworks/company-domain-finder)
- [GST Taxpayer Lookup](https://apify.com/themineworks/gst-taxpayer-lookup)
- [World Bank Trade Scraper](https://apify.com/themineworks/global-trade-data)
- [Company KYB Resolver](https://apify.com/themineworks/company-identity-resolver)

**Food and local services**

- [NoBroker Scraper](https://apify.com/themineworks/nobroker-scraper)
- [Swiggy Restaurant Scraper](https://apify.com/themineworks/swiggy-scraper)
- [Zomato Scraper](https://apify.com/themineworks/zomato-scraper)

**Developer and AI tools**

- [Website to Markdown Crawler](https://apify.com/themineworks/rag-crawler)
- [GitHub Skill Finder](https://apify.com/themineworks/github-skill-discovery)
- [GitHub Repo Scraper](https://apify.com/themineworks/github-repo-intelligence)
- [GitHub Trending Scraper](https://apify.com/themineworks/github-trending-scraper)

**More tools**

- [Tennis Match & Player Data Scraper](https://apify.com/themineworks/tennis-match-data)
- [Google Hotels Prices Scraper](https://apify.com/themineworks/google-hotels-prices-scraper)

### Support

Found a problem or need a field we do not return? Open an issue on the actor's Issues tab and we will answer there. To ask for a new source, email dmineworks@gmail.com.

*G2 Reviews Scraper turns G2 product pages into rows of public software reviews, with rating, pros, cons, reviewer role and company size, no login, and no charge for anything it does not deliver.*

# Actor input Schema

## `productUrls` (type: `array`):

G2 products to scrape reviews from. Paste the product URL straight from G2 (e.g. https://www.g2.com/products/salesforce-customer-success/reviews) or just the slug ("salesforce-customer-success"). Max 10 products per run, because each product costs real browser page loads.

## `maxReviewsPerProduct` (type: `integer`):

Maximum reviews PER PRODUCT (not per run), so 50 with three products can return up to 150. G2 serves 10 reviews per page and the actor reads at most 20 pages per product, so up to 200 reviews per product are returned; higher values are treated as 200. Each page is one paid request that takes roughly 30 to 80 seconds, so this directly sets run time and cost. You are never charged for reviews that do not exist or that repeat one already delivered.

## `includeReviewInsights` (type: `boolean`):

Adds one extra insights row PER PRODUCT: rating breakdown, the most common phrases in negative reviews, and a month by month rating trend. Computed from the reviews already collected in this run, with no AI, no extra page loads. Only charged for a product that actually returned reviews.

## Actor input object example

```json
{
  "productUrls": [
    "salesforce-customer-success"
  ],
  "maxReviewsPerProduct": 10,
  "includeReviewInsights": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "productUrls": [
        "salesforce-customer-success"
    ],
    "maxReviewsPerProduct": 10,
    "includeReviewInsights": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/g2-reviews-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "productUrls": ["salesforce-customer-success"],
    "maxReviewsPerProduct": 10,
    "includeReviewInsights": False,
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/g2-reviews-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "productUrls": [
    "salesforce-customer-success"
  ],
  "maxReviewsPerProduct": 10,
  "includeReviewInsights": false
}' |
apify call themineworks/g2-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,themineworks/g2-reviews-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/PN0LgavoIHgYRH4Qk/builds/eu31OAfvVShMeOPNM/openapi.json
