G2 Reviews API returns full G2 reviews of one product. Each review has the id, title, URL, publish date, reviewer name, rating from 0 to 5 in half steps (0 is a real rating and stays 0), role (the G2 user role, such as User or Administrator), industry and company size when the reviewer gave them, the answers to the standard questions (like_best, dislike, problems_solved; other questions are kept in answers), badges (validated, current_user, incentivized, ai_translated), source (for example seller_invite), avatar_url (only when the reviewer has a photo, else null) and vendor_response (null when there is none). Answers keep all their paragraphs, separated by a blank line.
Newest reviews. A request with only slug, stars, company_size or coverage returns the 25 newest reviews, newest first. coverage=extended (legacy) merges up to 15 filter combinations into about 375 unique reviews.
Pages. Any of page, sort, role, industry, region or category_id returns the paged list: real G2 page N with 10 reviews. Pages 1 to 10 exist, so one combination of filters and sort gives at most 100 reviews. Slice by filters (stars, company size, region, role, industry) and merge by review id to go deeper. A page the filter set does not have returns 422 INVALID_PAGE. G2 data is never returned under another page number.
In the paged list each review also has job_title (the reviewer's own job title, null when the reviewer hid it), published_at with the full time G2 published the review and updated_at when the reviewer edited it later (else null). G2 does not show the user role on paged cards: role is set only when the request filters on exactly one role, else null. Anonymous reviewers appear as Verified User with their industry in industry. The newest-25 list can show an earlier date for the same review because it uses the submission date. sort=most_recent follows G2's own order, which also moves recently edited reviews up.
The paged response adds pagination (page, last_page, total of matching reviews, per_page, cap, has_next), the star split distribution, facets with the review count per company size, role, category, industry and region (use their id values in the filters), pros, cons with mention counts and the ai_summary. Filters are always honoured: no review outside the requested stars is returned. A filter with no match returns an empty, billed result. An unknown slug returns 404 and is not billed. One request costs one credit.
Star buckets: 5 = 4.5 to 5.0, 4 = 3.5 to 4.0, 3 = 2.5 to 3.0, 2 = 1.5 to 2.0, 1 = 0 to 1.0. The company segment is G2's own class (small_business, mid_market, enterprise), not an exact employee band.
A filtered page with no matching reviews still returns the product name, rating, review count and categories. For that case the call makes up to 2 upstream lookups (upstream_calls shows 2) and costs 1 credit.
Run this endpoint
Endpoint
Parameters
Start with the required fields, then add optional filters only when your use case needs them.
Runnable path
1 required parameter needed before sending a request.
9 optional filters available.
string
Required
G2 product slug, the last part of the product URL. Example: slack.
example
array
Optional
Star buckets 1 to 5 (5 = 4.5 to 5.0 stars). Repeat the parameter or send a comma list. Example: 5.
["example"]
array
Optional
G2 company segment: small_business, mid_market or enterprise. Repeat the parameter or send a comma list. Example: enterprise.
["example"]
string
Optional
latest (default, the 25 newest) or extended (merges filter combinations, up to about 375 unique reviews, newest first).
example
integer
Optional
Page 1 to 10 with 10 reviews each. Returns the paged list. Example: 2.
1
string
Optional
most_relevant (default), most_recent, most_helpful, highest_rated or lowest_rated. Returns the paged list.
relevance
array
Optional
Reviewer role id from facets.role. Repeat the parameter or send a comma list. Example: 2.
["example"]
array
Optional
Industry id from facets.industry. Repeat the parameter or send a comma list. Example: 333.
["example"]
array
Optional
north_america, asia, europe, latin_america, anz, middle_east or africa. Repeat the parameter or send a comma list.
US
array
Optional
Category id from facets.category. Repeat the parameter or send a comma list. Example: 14.
1234567890
Response Schema
Example response fields are illustrative; inspect the JSON before integrating.
Example response fields
Scan these fields before integrating.
data
meta
success
{
"data": {
"count": 1,
"filters": {
"stars": [
5
],
"company_size": [
"enterprise"
]
},
"product": {
"name": "Slack",
"slug": "slack",
"reviews_url": "https://www.g2.com/products/slack/reviews"
},
"reviews": [
{
"id": "13886619",
"url": "https://www.g2.com/products/slack/reviews/slack-review-13886619",
"role": "User",
"title": "Fast, Easy Communication with Channels and Groups",
"rating": 5,
"answers": [],
"dislike": "Older messages disappear and are hard to find.",
"segment": "enterprise",
"industry": "Computer Software",
"like_best": "Can quickly communicate with colleagues and partners. Can create channel and groups.",
"published_at": "2026-10-28T02:48:50-05:00",
"reviewer_name": "Verified User",
"problems_solved": "Communicating with my colleagues",
"company_size_text": "1,001-5,000 employees"
}
],
"coverage": "latest",
"upstream_calls": 1
},
"meta": {
"billable": true,
"endpoint_family": "reviews"
},
"success": true
}
Errors
Handle these documented responses before retrying or showing customer-facing failures.
Not Found
The product slug does not exist on G2. This response is not billable.
{
"meta": {
"billable": false,
"retryable": false,
"endpoint_family": "reviews"
},
"error": {
"code": "NOT_FOUND",
"message": "The requested resource was not found."
},
"success": false
}Validation Error
A required parameter or a value is invalid. This response is not billable.
{
"errors": {
"query": [
"The query field is required."
]
},
"message": "The request validation failed"
}Upstream Unavailable
G2 could not be reached or returned data that does not match the request. This response is not billable and is retryable.
{
"meta": {
"billable": false,
"retryable": true,
"endpoint_family": "reviews"
},
"error": {
"code": "UPSTREAM_UNAVAILABLE",
"message": "G2 could not be reached. Please retry shortly."
},
"success": false
}Invalid Page
The page is above the last page of this filter set. This response is not billable.
{
"meta": {
"billable": false,
"retryable": false,
"endpoint_family": "reviews"
},
"error": {
"code": "INVALID_PAGE",
"message": "This result page does not exist. Use a lower page number."
},
"success": false
}Generate Code with AI
Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.
Try It Live
Test this endpoint in our interactive playground with real data.