G2 & Capterra Reviews Scraper: Ratings & Products avatar

G2 & Capterra Reviews Scraper: Ratings & Products

Pricing

from $21.00 / 1,000 source pages

Go to Apify Store
G2 & Capterra Reviews Scraper: Ratings & Products

G2 & Capterra Reviews Scraper: Ratings & Products

Export public G2 and Capterra software reviews with ratings, pros, cons and dates, plus product data. Filter by stars, date, company size, role or region, reach older G2 reviews and get only new ones on repeat runs. No login.

Pricing

from $21.00 / 1,000 source pages

Rating

0.0

(0)

Developer

Cliqto Media

Cliqto Media

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 hours ago

Last modified

Security

Limited permissions

Share

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.

You need no login or API key. The first run reads 5 G2 reviews from one page, and it costs $0.04 on the Free plan.

G2 and Capterra Reviews Scraper: add a product, get review rows with ratings and dates, reach older G2 reviews, filter them and get only new ones on repeat runs

Table of contents

What it does

This G2 reviews scraper and Capterra review scraper reads public product pages. It saves one row per review, with the rating, title, pros, cons, date and the public reviewer details that the source shows.

It can also return product details, find G2 products by keyword or category, and compare products. It does not export reviewer names, photos, profile links or contacts.

G2 shows only 100 reviews for one list. For bigger requests, the Actor reads many filtered lists to reach older reviews. This gets far more than 100 reviews, but it does not promise every review of a large product. Each deep run reports how many reviews the source has and how many you got.

Good fit

  • 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.

👉 Try it now: open the input form

How it works

  1. You add product links, a G2 keyword or a G2 category. The Actor opens the public pages of that source.
  2. It reads the reviews or product details, applies your filters, and removes duplicates.
  3. It saves rows to the Dataset. It also saves a run summary and one report per product, which state what was read and why the run stopped.

👉 Try it now: open the input form

Quick start

Input form: box 1 is the product link field, box 2 is the maximum reviews field, box 3 is the review platform field

  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.

    Output table: review rows with rating, title, pros and date columns

Expected result: 5 review rows and 1 statistics row, usually in 10–90 seconds. A slow G2 page can stretch this to about 3 minutes.

👉 Try it now: open the input form

Use cases

Buyer jobInput pathOutput entityKey fieldsNext integration
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

👉 Try it now: open the input form

Input

Input fields

FieldPlain nameTypeRequiredDefault / prefillAllowed valuesEffectExampleRecommendation
modeWhat to collectstringnoreviewsreviews, products, search, category, compareChooses the result typereviewsStart with reviews
platformReview platformstringnog2g2, capterra, autoChooses the sitecapterraUse auto for links from both sites
productUrlsProduct linksarray of stringsyes for reviews, products, compareprefill: Slack on G2Up to 20 links, G2 slugs or numeric Capterra IDsSets the products to read["slack"], ["135003"] with capterraDuplicate values are read once
searchQueryProduct searchstringyes for searchnoneUp to 200 charactersFinds G2 productsCRMG2 only
categoryUrlsCategory linksarray of stringsyes for categorynoneUp to 20 G2 category linksLists G2 category products["https://www.g2.com/categories/crm"]G2 only
maxReviewsMaximum reviews per productintegernodefault 10, prefill 51–5000Stops after this many matching reviews100Above 100 on G2, raise the run Timeout
maxProductsMaximum productsintegerno101–10Limits search and category results5Lower it to spend less
sortReviewsReview orderstringnonewestnewest, helpful, rating_high, rating_lowSets the orderhelpfulAbove 100 G2 reviews the order is not strict
starRatingsStar ratingsarray of stringsno[]"1"–"5"Keeps these star groups["1","2"]Group 5 on G2 includes 4.5
publishedAfterReviews on or afterstringnononeYYYY-MM-DDKeeps newer reviews2026-01-01Good for recent reviews
publishedBeforeReviews on or beforestringnononeYYYY-MM-DDKeeps older reviews2020-01-01Old dates on G2 read filtered lists
reviewSearchWords in reviewstringnononeTextKeeps reviews with every wordpricing supportRare words need more pages
companySizeCompany size containsstringnononeTextKeeps this sizeSmall-BusinessOn G2, Small-Business and Mid-Market filter at the source
reviewerRoleReviewer role containsstringnononeTextKeeps this roleMarketingReviews with no role do not match
industryIndustry containsstringnononeTextKeeps this industryMarketing and AdvertisingReviews with no industry do not match
regionRegion containsstringnononeTextKeeps this regionNorth AmericaExact G2 names filter at the source and fill the column
includeInsightsAdd review statisticsbooleannotruetrue, falseAdds one free statistics row per producttrueTurn off if you need review rows only
onlyNewOnly new reviewsbooleannofalsetrue, falseReturns reviews not seen beforetrueThe first run builds the history
stateNameHistory store namestringnononeLowercase letters, digits, hyphensKeeps a separate historyslack-monitorUse one name per watch
maxPagesMaximum pages per productintegernomaxReviews / 4, at least 201–2000Stops after this many pages50Raise it for a rare filter or old dates
transportConnection routestringnoautoauto, direct, unblockerForces one routeautoKeep auto
deliveryConnectorSend results tostringnononeYour MCP connectorPosts a short summary after the runYour Slack connectorOptional
deliveryTargetNotion page or channelstringnononeNotion page link or Slack channel IDSets where the summary goesC0123456789Optional

An empty productUrls in reviews, products or compare mode stops the run with PRODUCT_URLS_REQUIRED.

Interacting settings

WhenInput AInput BEffective behaviorExampleCost/result effect
Big G2 requestmaxReviews above 100publishedAfter is emptyReads filtered lists to reach older reviews, and the order is no longer strictmaxReviews: 1000About 7 reviews per paid page
Old date on G2publishedBeforenewest pages are all laterSkips to filtered listspublishedBefore: 2020-01-01More pages per row, narrow windows may return nothing
Rare filterreviewSearch, industry or reviewerRolemaxPagesStops at the page limit when few reviews match20 pages by defaultEach page read is charged
MonitoringonlyNewsortReviewsNewest order is used, and a full page of known reviews ends the checkRepeat runUsually 1 page
MonitoringonlyNew with historymaxReviews above 100Filtered lists are not readRepeat runUsually 1 page
Mixed linksplatform: autoproductUrlsEach link goes to its own siteG2 and CapterraPages of both sites are charged
Capterra linkplatform: g2productUrlsThe run stops with an input errorChoose capterra or auto$0.01 only
Discoverymode: searchplatform: capterraThe run stops with an input errorChoose G2 or Auto$0.01 only

Input examples

First test

{
"productUrls": ["https://www.g2.com/products/slack/reviews"],
"maxReviews": 5
}

Expected behavior: reads one G2 page and stops at 5 reviews. Expected output: 5 review rows with rating, title, pros, cons and date, plus 1 statistics row. Limit or cost note: 1 page, $0.04 on the Free plan.

Older G2 reviews

{
"productUrls": ["calendly"],
"maxReviews": 1000
}

Expected behavior: reads filtered lists, so the reviews are not in date order. Expected output: review rows from many years. A test reached reviews from 2015. Limit or cost note: set a higher run Timeout and a spending limit. Expect about 7 reviews per paid page.

Filtered segment

{
"productUrls": ["calendly"],
"maxReviews": 30,
"industry": "Marketing and Advertising",
"region": "North America",
"companySize": "Small-Business",
"starRatings": ["5"]
}

Expected behavior: applies the filters at the source where it can, and checks the rest on the saved reviews. Expected output: reviews that match every filter, with ratings of 4.5 and 5. Limit or cost note: filtered runs took from under a minute to about 4 minutes in tests.

Capterra reviews

{
"platform": "capterra",
"productUrls": ["https://www.capterra.ca/software/135003/slack"],
"maxReviews": 25
}

Expected behavior: reads public regional pages. A page usually holds 25 reviews. Expected output: review rows with subRatings, timeUsedProduct and country. Limit or cost note: about $1.2 per 1,000 reviews on the Free plan.

Only new reviews

{
"productUrls": ["slack"],
"maxReviews": 5,
"onlyNew": true,
"stateName": "slack-monitor"
}

Expected behavior: the first run saves 5 reviews and remembers every review on the pages it read. Later runs return new reviews only. Expected output: new review rows, or no rows when nothing changed. Limit or cost note: an unchanged check reads 1 page, $0.04 on the Free plan.

👉 Try it now: open the input form

Output

Output fields

Most fields are null when the source does not show them or when they do not apply to this row type. null never means zero.

FieldMeaningTypeCan be empty?Example / enumSource / notes
rowTypeRow typestringnoreview, product, insights, comparison, statusOne value per row
statusRow statusstringnocomplete, partial, not_foundnot_found is a free status row
platformSource sitestringnog2, capterraFrom the link
productProduct namestringconditionalSlackShown by the source
productIdSource product IDstringyes3437When available
reviewIdReview IDstringreview rows only13975273Stable, used for onlyNew
ratingReview score, 0–5numberreview rows only4.5G2 half stars are kept
recommendationRatingRecommendation score, 0–10numberyes80 is a real score
titleReview titlestringyesQuick Huddles and Team ChatCapterra rating-only reviews can have none
prosWhat the reviewer likesstringyesI like using Slack…
consWhat the reviewer dislikesstringyesI think Slack Huddles…
problemsSolvedProblems solved or overall experiencestringyesI use Slack to connect…
textAll answers as plain textstringyesWhat do you like best…Capterra rating-only reviews can have none
questionsQuestions and answersarrayyes[{"question":…,"answer":…}]All public sections
reviewerRoleJob title or rolestringyesAgency OwnerNot on every review
companySizeSize or segmentstringyesMid-Market (51-1000 emp.)Wording differs by site
industryReviewer industrystringyesMarketing and AdvertisingNot on every review
regionReviewer regionstringyesNorth AmericaOn G2, filled mostly in filtered lists
countryReviewer country codestringyesUSWhen shown
dateReview datestringyes2026-11-04YYYY-MM-DD
submittedAtExact publish time, UTCstringyes2026-11-04T12:24:30.000ZG2 only. Can be a day away from date, which is the date G2 shows. Empty when two reviews on a page share a title
updatedAtExact last-change time, UTCstringyes2026-11-04T12:24:30.000ZG2 only. Taken as G2 gives it, so it can be earlier than submittedAt. Empty when two reviews on a page share a title
subRatingsScores by aspectobjectyes{"easeOfUse":5,"functionality":5}Mostly on Capterra
verifiedVerified labelbooleanyestrueOften empty on Capterra
currentUserCurrent user labelbooleanyestrueG2 only
validationMethodHow the review was checkedstringyesLinkedIn, a business email accountWhen shown
incentiveIncentive notestringyesOrganic review…Source wording
reviewSourceHow it was collectedstringyesOrganicSource label
timeUsedProductTime with the productstringyes2+ yearsWhen shown
switchedFromPrevious productstringyesRare: empty in all 1,670 reviews of our two largest test sets
switchingReasonReason for the switchstringyesRare, same as switchedFrom
vendorResponseVendor replystringyesRare, same as switchedFrom
urlLink to the review or productstringnohttps://www.g2.com/products/slack/reviews/…Public link
sourceUrlPage that was readstringnohttps://www.capterra.ca/…Shows the regional site
fetchedAtRead time, UTCstringno2026-11-04T14:19:15.206Z
descriptionProduct descriptionstringyesProduct rows
categoryProduct categorystringyesCRMProduct rows
aggregateRatingOverall ratingnumberyes4.4Product rows
reviewCountReviews on the sourcenumberyes27587Product rows
pricingPublic price offersarrayyes[{"price":20,"currency":"USD","name":"Sales Hub Starter"}]A missing price is null, not zero
alternativesOther product links on the pagearrayyesNot a full list of alternatives
sourceThemesThemes published by G2arrayyes["Ease of Use (3620)"]Statistics row
sourceSummarySummary published by G2stringyesWritten by G2, not by this Actor
sampleSizeReviews in the statisticsnumberstatistics row only5This run's reviews only
averageRatingAverage of those reviewsnumberstatistics row only4.8Not the product's overall rating
ratingDistributionCount by star groupobjectstatistics row only{"0":0,"1":0,"2":0,"3":0,"4":1,"5":4}This run's reviews only. Group 0 holds reviews rated 0
complaintTermsFrequent words in consarraystatistics row only[{"term":"music","count":1}]Simple word counts for this set, not an opinion
productsCompared productsarraycomparison row onlycompare mode

Output entities and surfaces

SituationDataset/API/KVS/live viewResult shapeUser action
Normal itemDataset, views reviews and productsOne row per review or productOpen the Output tab or export
Domain-empty resultDataset is empty or holds one status row; REPORTS in the Key-value storeNO_MATCHING_REVIEWS, NO_NEW_REVIEWS or not_foundCheck the link and the filters
Partial resultDataset keeps the saved rows; RUN_SUMMARY and REPORTSpartial with PAGE_LIMIT, DEADLINE, CHARGE_LIMIT or SOURCE_LIMITRead stopReason and raise that limit
Technical failure or retryRun status FAILED; RUN_SUMMARY holds the error codeerror and a code such as SOURCE_ERRORRetry later, and open an Issue with the run ID if it repeats

status: complete with stopReason: REVIEW_LIMIT means you got the number you asked for, and the source has more. In a deep G2 run, sourceReviewCount in REPORTS shows how many reviews the source reports, so you can compare it with deliveredReviews.

Output example

This is one review row from the first test above. It is trimmed: pros, cons, problemsSolved, questions and text are cut, and some empty fields are hidden.

{
"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"
}

Here reviewerRole, industry and region are null because this review does not show them in this list.

Send results to Slack or Notion

Pick your connector in the optional deliveryConnector field. After the run saves its data, the Actor posts a short summary (up to 25 rows and a link to the full dataset) there. Put a Notion page link or a Slack channel ID in deliveryTarget: in Notion every run is added on top of that one page, so your workspace does not fill up with new pages. A delivery error never fails the run and costs nothing extra. Connect a service once in Apify Console → MCP connectors.

Use case → fields

Buyer jobInput pathOutput entityKey fieldsNext integration
Voice of customerproductUrls, maxReviewsReview rowspros, cons, problemsSolved, ratingCSV, BI tool
Segment researchcompanySize, region, industryReview rowscompanySize, region, industry, reviewerRoleCSV, API
Review monitoringonlyNew, stateNameNew review rowsreviewId, date, rating, vendorResponseSchedule, Slack or Notion
Market mapsearchQuery, categoryUrlsProduct rowsproduct, aggregateRating, reviewCount, urlCRM import

👉 Try it now: open the input form

Pricing

Pricing unit

You pay per source page read, not per row. Rows, statistics and comparison rows are free. There are two events:

EventWhen it is chargedFreeBronzeSilverGold and above
Run preparationOnce per run, including invalid input$0.01$0.01$0.01$0.01
Source pageEach page read and checked successfully$0.03$0.027$0.024$0.021

A G2 page gives 8–10 new reviews in a normal run and about 7 in a deep run. A Capterra page gives up to 25. A page is the smallest unit, so one review costs the same as a full page. If you need only a few rows from many products, a price per row may suit you better.

Run preparation is a flat $0.01 and does not grow with run memory. Apify platform usage is included, so you do not pay for it separately.

  • Valid run with no reviews: you pay for the pages read.
  • Filter with no matches: you pay for every page checked, up to maxPages. With the default this is 20 pages, $0.61 on the Free plan.
  • Unchanged monitoring run: 1 page, $0.04 on the Free plan.
  • Partial run: you pay for the pages that were checked. Rows stay in the Dataset.
  • Failed run or failed page: you pay $0.01 and any pages read before the failure. A failed page is free.
  • Product page not found: the checked page is charged, and the status row is free.

Cost examples

These are measured page counts. The charge uses the Free plan price.

ScenarioInput scopeExpected item/event countBase chargeOptional chargeStop/cap behavior
First test5 G2 reviews1 page, 5 reviews$0.04noneStops at maxReviews
Normal100 G2 reviews11–12 pages$0.34–$0.37noneStops at maxReviews
Older reviews in the default 300 secondsmaxReviews: 1000 on G2Up to 133 pages and 922 reviews, fewer when pages are slowUp to $4.00noneStops with DEADLINE
Older reviews with a longer TimeoutmaxReviews: 1000 on G2, Timeout 900 seconds142–145 pages, 1000 reviews$4.27–$4.36noneStops at maxReviews
Spending limitmaxReviews: 1000 on G2, $2 limit, Bronze plan73 pages, about 500 reviews$1.98noneStops with CHARGE_LIMIT
Capterra1000 reviews41 pages$1.24noneStops at maxReviews
Two productsProduct details2 pages$0.07noneOne page per product
G2 searchCRM, 3 products4 pages, 3 product rows$0.13noneFailed product pages are not charged
Filter with no matchesRare word, default limit20 pages$0.61noneStops with PAGE_LIMIT
Invalid inputNo product0 pages$0.01noneRun fails at once

To control your spending, set Maximum cost per run in the run options. The Actor stops with CHARGE_LIMIT and keeps what it saved.

👉 Try it now: open the input form

Limits

  • 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.
  • Memory. The default is 512 MB. 256 MB is too small for a big Capterra run.
  • Only new reviews. The history stores the IDs of every review a run read, so a later run does not return older reviews that were read but not delivered, and it stops at the first page with a known review. Use one store name per search. If your store cannot be opened, the Actor warns you and uses its own separate store, so your first repeat run can return known reviews again.
  • Not included. Private data, reviewer names, photos, profile links and contacts. Login is not supported.

👉 Try it now: open the input form

API, export and integrations

  • API: this works as a G2 scraper API. Start a run with the same input JSON, then read rows from the Dataset endpoint. The reviews and csv links are on the Output tab.
  • Export: JSON, CSV, Excel, XML and HTML from the Dataset. Use rating, date and text as main columns.
  • Scheduling: save the input as a task with onlyNew and stateName, then add a schedule. Each run returns new reviews.
  • Webhooks / no-code: use an Apify webhook or an integration to send rows after a run. The next system reads reviewId to avoid duplicates.
  • SDK / MCP / agent: call the Actor from the Apify SDK or from the MCP server below.

Use with AI agents (MCP)

MCP server URL with only this Actor: https://mcp.apify.com?tools=cliqtomedia/software-reviews-scraper.

Smallest useful input:

{
"productUrls": ["https://www.g2.com/products/slack/reviews"],
"maxReviews": 5
}

Key output fields:

  • rowType: tells review rows from statistics and product rows.
  • rating: the review score from 0 to 5.
  • pros and cons: the reviewer's own words.
  • date: the review date.
  • url: the public link to the review.

Typical first run: 10–90 seconds, sometimes up to about 3 minutes, and $0.04 on the Free plan. Limits: 20 products per run and 5000 reviews per product. Only the default 300-second Timeout applies unless you change it. It is enough for about 100 G2 reviews, and for more only when pages answer fast.

👉 Try it now: open the input form

Troubleshooting

I got fewer reviews than I asked for

Symptom: the run ended as partial with fewer rows. Likely reason: a limit stopped it. stopReason names the limit. Check: open RUN_SUMMARY and REPORTS in the Key-value store. Action: for DEADLINE, raise the Timeout. For PAGE_LIMIT, raise maxPages. For CHARGE_LIMIT, raise the cost limit. For SOURCE_LIMIT, the lists the source shows are used up.

The run returned no rows

Symptom: the run succeeded and the Dataset is empty. Likely reason: the filters match nothing, or onlyNew found nothing new. Check: read stopReason in RUN_SUMMARY. NO_NEW_REVIEWS means nothing changed since the last run. Action: loosen the filters or raise maxPages.

The run failed with SOURCE_ERROR

Symptom: run status FAILED, or a product has status error in REPORTS. Likely reason: the source blocked or did not answer after several attempts. Check: read the code in errors in RUN_SUMMARY. If the source returns nothing for 30 seconds and a product has failed, the other products are skipped and marked not_processed in REPORTS, with no page charges. Action: run again later and keep transport on auto. A made-up link can also end here, so check that it opens in a browser.

The run failed at once with an input error

Symptom: run status FAILED after a second, with a code such as PRODUCT_URLS_REQUIRED, SEARCH_REQUIRES_G2 or INVALID_G2_PRODUCT_URL. Likely reason: a required field is empty, or the link does not match platform. Check: compare your input with the examples above. Action: fix the input and start again. This attempt costs $0.01.

The product shows status not_found

Symptom: one status row with not_found. Likely reason: the source has no page at this link. Check: open the link in a browser. Action: copy the correct product link and run again.

Repeat runs return old reviews

Symptom: onlyNew returned reviews you already have. Likely reason: the stateName changed, or the store could not be opened. Check: read stateFallbacks in RUN_SUMMARY. Action: use the same name in every run, or choose a new name that belongs to you.

👉 Try it now: open the input form

FAQ

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, cookie or API key.

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.

Can I get all reviews of a product?

This is not promised. A test on Calendly asked for 1000 of its 2,679 reviews and got them in 5–6.5 minutes, dated from 2015 to 2026. Very large products can hold reviews that no G2 list shows. REPORTS shows the source total next to your count.

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.

Why is a field empty?

The source does not show it for that review or in that list. null means "not shown". On G2, region is usually filled when you filter by an exact region name.

👉 Try it now: open the input form

👉 Try it now: open the input form

Support

For a bug, question or feature request, open the Actor's Issues tab on Apify. Include the run ID, the input mode and the error text. Never send tokens, cookies, billing data or private data.

👉 Try it now: open the input form