Capterra logo

Reviews & apps · Live on Apify

G2 and Capterra Reviews Scraper

Get public software reviews from G2 and Capterra without login. Add a product link, a G2 keyword or a G2 category. Each row has the rating, title, pros, cons and date.

About $30.00 for 1,000 source pages$0.03 per source page + $0 per run. Apify bills you, not us.Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Run it on Apify Opens apify.com, the website where our tools run. Sign up free with Google or email, no card needed.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure

What you get, for example

rowTypereview
platformg2
productSlack

How to use it: 3 steps

  1. Make a free Apify accountApify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: https://www.g2.com/products/slack/reviews in Product URLs or G2 slugs. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Add a G2 or Capterra product and get its public reviews as clean rows with ratings, pros, cons, dates and company size, plus product data.

Good for

  • Read what customers say about your product or a competitor, with ratings and full text.
  • Pull reviews from one segment, for example small business reviews from North America.
  • Watch a product and get only new reviews on each scheduled run.
  • Compare the rating, review count and price of several products.

Who uses it

Product teams

Read what customers say about your product or a rival.

Marketers

Pull reviews from one segment, such as small business.

Analysts

Compare rating and review count of several products.

Price

Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.

What you pay forPriceWhen
Source page$0.03 (from $0.021 on paid Apify plans)One charge for each source page successfully fetched and processed.
Run preparation$0.01One preparation charge after launch, including invalid input and bounded source failure checks. Source pages are charged separately only after successful validation.

Examples

  • One source page: about $0.03.
  • 1,000 source pages: about $30.00.
  • Every day 100 source pages, for 30 days: about $90.00 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. That is enough for about 160 source pages.

Prices checked on 8 November 2026. See the current price on Apify.

Questions

How do I scrape G2 reviews without a login?

Add the product link and click Start. The Actor reads public pages only. You need no G2 account or cookie.

Can I get every review of a product?

Not promised. G2 shows 100 reviews per filter combination. A very large product can hold reviews that no list shows.

Why is a field empty?

The source does not show it for that review. Null means not shown. Reviewer names and contacts are not collected.

Does a run with no results cost money?

Yes. You pay for the pages that were checked, because the work was done. Use maxPages and the cost limit to set a ceiling. A rare filter on the default setting stops after 20 pages.

Why is the price per page and not per review?

Some runs check many pages and find few matching reviews. A price per page is the same for every filter. In a deep G2 run, one page gives about 7 reviews. Filtered or date-limited runs give fewer reviews per page.

How fresh are the reviews?

Each run reads the live pages, so a review appears when the source publishes it. A test run returned a review dated the same day.

Details

Step by step on Apify
  1. Open the Input tab. The form already holds a Slack link in Product URLs or G2 slugs (box 1). Replace it with your product, or keep it for a test.
  2. Keep 5 in Maximum reviews per product (box 2) for the first run.
  3. Keep G2 in Review platform (box 3), or choose Capterra for a Capterra link.
  4. Click Start.
  5. Open the Output tab and check the rating, title, pros and date columns.
Use cases
TaskInputYou getKey fieldsNext step
Export the reviews of one productproductUrls, maxReviewsReview rowsrating, title, pros, cons, dateCSV, Google Sheets, BI tool
Study one customer segmentcompanySize, region, industry, starRatingsFiltered review rowscompanySize, region, industry, ratingCSV, API
Get new reviews on a scheduleonlyNew, stateNameNew review rowsreviewId, date, rating, textSchedule, webhook, Slack or Notion
Build a list of products in a categorymode, searchQuery or categoryUrlsProduct rowsproduct, aggregateRating, reviewCount, urlCSV, CRM import
Compare productsmode, productUrlsProduct rows and one comparison rowproduct, aggregateRating, reviewCount, pricingAPI, spreadsheet
Tips for better results
  • Keep Maximum reviews per product at 5 for a first run.
  • Raise the Timeout in run options to get more than about 100 G2 reviews.
  • Use one store name per search with onlyNew to get only new reviews.
Limits and good to know
  • Full history is not promised. G2 shows 100 reviews per filter combination and sort order. The Actor combines many lists, but a very large product can hold reviews that no list shows. Compare sourceReviewCount with deliveredReviews in REPORTS
  • Deep G2 speed. Speed depends on how fast pages answer, and it varies a lot. Runs limited to about 275 seconds got 299–922 reviews, and runs reached 1000 reviews in 5–6.5 minutes. To be sure of more than about 100, raise the Timeout in the run options. The Actor stops about 25 seconds before the Timeout and keeps its rows
  • Slow pages. One G2 page usually takes a few seconds. A slow page that had to be retried took close to 3 minutes. In tests, 100 G2 reviews took about 1.5–5 minutes and 150 took about 3 minutes
  • Old date windows. A narrow old window on a large product is best-effort. It can spend paid pages and return few rows or none. Tests asking for 20 Slack reviews from before 2020 read 15–20 pages and returned 13–20 rows. Raise maxPages if you want a longer search
  • G2 star groups. Group 5 includes 4.5, and group 4 includes 3.5 and 4.0. The rating column keeps the exact value
  • Capterra. Reviews come from public regional pages (Canada, or the UK as a fallback), and their list can differ from the US site. Rating-only reviews are valid and can have an empty title and text. Category and keyword search work on G2 only
  • Input limits. productUrls up to 20, categoryUrls up to 20, maxReviews up to 5000, maxPages up to 2000, maxProducts up to 10. The Actor also stops at a request limit (REQUEST_LIMIT) and a data limit (BYTE_LIMIT), which grow with maxPages
  • Several products in one run are best-effort. If some products are saved and others fail, the run still ends as SUCCEEDED. Failed products are listed in REPORTS with status error and their pages are not charged. If you add one product and it fails, the run ends as FAILED

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "rowType": "review",
  "status": "complete",
  "platform": "g2",
  "product": "Slack",
  "productId": "3437",
  "reviewId": "13975273",
  "rating": 4,
  "recommendationRating": 8,
  "title": "Quick Huddles and Team Chat, with Room for Better Music",
  "pros": "I like using Slack for quick huddles to resolve issues…",
  "cons": "I think Slack Huddles need more music…",
  "reviewerRole": null,
  "companySize": "Mid-Market (51-1000 emp.)",
  "industry": null,
  "region": null,
  "date": "2026-11-04",
  "submittedAt": "2026-11-04T12:24:30.000Z",
  "updatedAt": "2026-11-04T12:24:30.000Z",
  "verified": true,
  "reviewSource": "Organic",
  "url": "https://www.g2.com/products/slack/reviews/slack-review-13975273",
  "fetchedAt": "2026-11-04T14:19:15.206Z"
}

Use it from code

Actor ID: cliqtomedia/software-reviews-scraper. You need your Apify API token from Apify Console → Settings → API & Integrations.

Python · apify-client
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/software-reviews-scraper").call(run_input={
    "mode": "reviews",
    "platform": "g2"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
cURL
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~software-reviews-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode": "reviews", "platform": "g2"}'
LangChain · langchain-apify
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/software-reviews-scraper")
result = tool.invoke({"run_input": {"mode": "reviews", "platform": "g2"}})
print(result)

The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.

Data fields (40)
FieldTypeMeaning
rowTypestringreview, product, insights, comparison, or a free status row.
statusstringComplete, partial, or not_found for this row.
platformstringThe source platform: g2 or capterra.
productstringProduct name shown by the source.
productIdstringSource product identifier, when available.
reviewIdstringStable public review identifier.
ratingnumberReview score from 0 to 5. G2 half stars are kept.
recommendationRatingnumberSource recommendation score from 0 to 10. G2 uses its original ten-point star class.
titlestringFull public review title.
prosstringWhat the reviewer likes.
consstringWhat the reviewer dislikes.
problemsSolvedstringProblems solved or overall experience when the source shows it.
textstringPublic review answers combined as plain text.
questionsarrayAll public question and answer sections found in the review.
reviewerRolestringPublic job title or user role. No personal contact details.
companySizestringPublic employee range or business segment.
industrystringPublic reviewer industry, when shown.
regionstringPublic reviewer region. Null when the source does not show it.
datestringReview date in YYYY-MM-DD format.
submittedAtstringExact time the review was published, in UTC. G2 only. Null when the source does not show it or two reviews on a page share a title.
updatedAtstringExact time the review was last changed, in UTC, as the source gives it, so it can be earlier than the publish time. G2 only. Null when the source does not show it or two reviews on a page share a title.
subRatingsobjectAvailable source scores for ease of use, features, support, and value. A missing answer is null.
verifiedbooleanWhether the source displays a verified reviewer label.
currentUserbooleanWhether G2 labels the reviewer as a current user.
validationMethodstringPublic method used to validate the review, when shown.
incentivestringSource note about a review incentive, when shown.
reviewSourcestringSource label for how the review was collected.
timeUsedProductstringHow long the reviewer says they used the product.
switchedFromstringPublic switching history, when shown.
switchingReasonstringPublic reason for switching, when shown.
vendorResponsestringPublic reply from the vendor, when shown.
urlstringPublic link to the review or product.
sourceUrlstringExact public source page used, including the regional domain.
fetchedAtstringUTC time when this data was read.
descriptionstringPublic product description.
categorystringProduct category shown in structured source data.
aggregateRatingnumberOverall source rating for the product.
reviewCountnumberNumber of product reviews reported by the source.
pricingarrayPublic price offers, when shown. A missing price is null, not zero.
alternativesarrayOther product links shown on the source page.
Input settings (23)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
What to collectmodestring"reviews"
Review platformplatformstring"g2"
Product URLs or G2 slugsproductUrlsarray["https://www.g2.com/products/slack/reviews"]
Product searchsearchQuerystring
Category URLscategoryUrlsarray
Maximum reviews per productmaxReviewsinteger5
Maximum productsmaxProductsinteger10
Review ordersortReviewsstring"newest"
Star ratingsstarRatingsarray[]
Reviews on or afterpublishedAfterstring
Reviews on or beforepublishedBeforestring
Words in reviewreviewSearchstring
Company size containscompanySizestring
Reviewer role containsreviewerRolestring
Industry containsindustrystring
Region containsregionstring
Add review statisticsincludeInsightsbooleantrue
Only new reviewsonlyNewbooleanfalse
History store namestateNamestring
Maximum pages per productmaxPagesinteger
Connection routetransportstring"auto"
Send results to (optional)deliveryConnectorstring
Notion page or channel (optional)deliveryTargetstring

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure