G2 Reviews API
Collect G2 product reviews as clean, structured JSON for B2B software intelligence. Send one or many product URLs and get ratings, pros and cons, reviewer role, company size, and dates, with an optional product-metadata add-on. Reliable, pay per review, MCP-ready for Claude and AI agents.
MEDIAN LAGon demand
PARAMETERS4
TOTAL USERS3
MONTHLY ACTIVE2
TOTAL RUNS41
RUNS SUCCEEDED95.5%
RATINGno ratings yet
Input parameters
| PARAMETER | TYPE | REQ | DEFAULT | DESCRIPTION |
|---|---|---|---|---|
| productUrls | string[] | yes | — | One or more G2 product review URLs, e.g. https://www.g2.com/products/asana/reviews. |
| maxReviewsPerProduct | integer | no | 100 | Maximum number of reviews to return per product (1-1000). |
| sortBy | enum | no | — | Optional sort order for reviews. |
| includeProductMetadata | boolean | no | False | When enabled, add one product-metadata row per product (category, star rating, review count, vendor, competitors). |
Worked examples
{
"productUrls": [
"https://www.g2.com/products/asana/reviews"
]
}
Tasks
Saved runs with the inputs already filled in — each one a standalone page and a working configuration example.
Code
curl
curl -X POST "https://api.apify.com/v2/acts/johnvc~g2-reviews-api/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"productUrls": ["https://www.g2.com/products/asana/reviews"]}'
Python
from apify_client import ApifyClient
client = ApifyClient("APIFY_TOKEN")
run = client.actor("johnvc/g2-reviews-api").call(
run_input={'productUrls': ['https://www.g2.com/products/asana/reviews']}
)
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item)