Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/business-software-and-services-reviews-g2-reviews-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: G2 Reviews API
version: v2
description: '## Rate Limiting
Cloudflare limits requests to the G2 API to **100 requests per second** per source IP address.
'
servers:
- url: https://{defaultHost}
variables:
defaultHost:
default: data.g2.com
tags:
- name: Reviews
paths:
/api/v2/products/{product_id}/reviews:
get:
summary: Lists reviews of given product
operationId: getProductReviews
tags:
- Reviews
description: '**Requires `products.reviews.read` scope.**
For filters that require integer IDs, the appropriate IDs are available in the meta aggregates of this endpoint.
Suggestion: Query reviews for your product and then use filtering based on data returned to narrow results.
'
security:
- AccountAPIToken: []
parameters:
- name: page[size]
in: query
required: false
description: 'Number of records per page (default: 25, max: 250)'
schema:
type: integer
minimum: 1
maximum: 250
default: 25
- name: page[after]
in: query
required: false
description: Cursor for fetching the next page of results
schema:
type: string
- name: page[before]
in: query
required: false
description: Cursor for fetching the previous page of results
schema:
type: string
- name: product_id
in: path
description: Product UUID or Slug
required: true
schema:
type: string
- name: filter[updated_at_gt]
description: Filter records updated after this date
schema:
type: string
format: date-time
in: query
- name: filter[updated_at_lt]
description: Filter records updated before this date
schema:
type: string
format: date-time
in: query
- name: filter[category_ids][]
description: Filter reviews by category IDs
in: query
schema:
type: array
items:
type: string
- name: filter[comment_answer_values_exclude]
description: Exclude reviews with specific comment answer values
in: query
schema:
type: string
- name: filter[company_segment][]
description: "Filter by company size segment\n\n - Company Segment ID: `179` => `Small-Business` *(0-50 employees)*\n\n - Company Segment ID: `180` => `Mid-Market` *(51-1000 employees)*\n\n - Company Segment ID: `181` => `Enterprise` *(1001-Infinity employees)*\n\n"
in: query
schema:
type: array
items:
type: string
- name: filter[country][]
description: Filter by country names
in: query
schema:
type: array
items:
type: string
- name: filter[industry][]
description: Filter by industry IDs
in: query
schema:
type: array
items:
type: string
- name: filter[nps_score][]
description: Filter by NPS scores (0-10)
in: query
schema:
type: array
items:
type: string
- name: filter[region][]
description: Filter by geographic regions
in: query
schema:
type: array
items:
type: string
- name: filter[role][]
description: Filter by user role IDs
in: query
schema:
type: array
items:
type: string
- name: filter[removed]
description: Filter to show only removed reviews
in: query
schema:
type: string
- name: serializer
in: query
type: string
required: false
description: Serializer type (market_intelligence or default)
schema:
enum:
- market_intelligence
- name: fields[reviews]
in: query
description: "Comma-separated list of fields to include. Available fields vary based on context:\n\n- Default (standard serializer): answers, attribution, comments_present, country_name, default_sort, is_public,\n official_response_present, percent_complete, product_name, published_at, regions, review_incentive, slug,\n source, star_rating, submitted_at, title, url, user_updated_at, verified_current_user.\n\n- With serializer=market_intelligence: answers, category_names, company_segment_name, country_code, country_name,\n feature_ratings, industry_name, primary_region_name, product_name, rating, switched_from_products,\n switched_theme, title, url, user_company_name, user_updated_at.\n\n- With filter[removed]=true: product_name, removed_at, slug, submitted_at"
schema:
oneOf:
- type: array
items:
type: string
enum:
- answers
- attribution
- comments_present
- country_name
- default_sort
- is_public
- official_response_present
- percent_complete
- product_name
- published_at
- regions
- review_incentive
- slug
- source
- star_rating
- submitted_at
- title
- url
- user_updated_at
- verified_current_user
title: Standard serializer fields
- type: array
items:
type: string
enum:
- answers
- category_names
- company_segment_name
- country_code
- country_name
- feature_ratings
- industry_name
- primary_region_name
- product_name
- rating
- switched_from_products
- switched_theme
- title
- url
- user_company_name
- user_updated_at
title: Market intelligence serializer fields
- type: array
items:
type: string
enum:
- product_name
- removed_at
- slug
- submitted_at
title: Removed reviews fields
explode: false
- name: include
in: query
explode: false
description: Comma-separated list of relationships to include (e.g. user)
schema:
type: array
items:
type: string
enum:
- user
responses:
'400':
description: with invalid request parameters
content:
application/vnd.api+json:
example:
errors:
- status: '400'
title: 'Invalid parameter: "include" contains unknown items: "foo"'
schema:
$ref: '#/components/schemas/Errors'
'403':
description: Forbidden
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Errors'
examples:
when user does not have access to the product:
value:
errors:
- status: '403'
title: You do not have access to that resource
when user has product access but lacks the required license:
value:
errors:
- status: '403'
title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below
links:
type:
- https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none
example:
errors:
- status: '403'
title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below
links:
type:
- https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none
'404':
description: With invalid id
content:
application/vnd.api+json:
example:
errors:
- status: '404'
title: Not Found
schema:
$ref: '#/components/schemas/Errors'
'200':
description: With all fields included
content:
application/vnd.api+json:
schema:
type: object
required:
- data
- links
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
type:
type: string
attributes:
type: object
properties:
answers:
type: object
description: Formatted question answers (pros, cons, etc.)
properties: {}
attribution:
type: object
description: Attribution information for syndication
properties: {}
comments_present:
type: boolean
description: Whether comments are present on the review
country_name:
type: string
description: Country of the reviewer
default_sort:
type: number
description: Default sort score for the review
is_public:
type: boolean
description: Whether the review is public
official_response_present:
type: boolean
description: Whether vendor has responded
percent_complete:
type: number
description: Completion percentage of the review
example: 85.9
product_name:
type: string
description: Name of the reviewed product
published_at:
type: string
description: When the review was published
format: date-time
regions:
type: array
items:
type: string
description: Geographic regions associated with the reviewer
review_incentive:
type: boolean
description: Whether the review was incentivized
slug:
type: string
description: URL-friendly identifier
example: great-product-for-our-team
source:
type: string
description: Source of the review (e.g., "G2", "Incentivized")
star_rating:
type: number
description: Star rating (1-5 scale)
example: 4.5
submitted_at:
type: string
description: When the review was submitted
format: date-time
title:
type: string
description: Review title
example: Great product for our team
url:
type: string
description: Full URL to the review on G2
format: uri
user_updated_at:
type: string
description: When the user profile was last updated
format: date-time
verified_current_user:
type: boolean
description: Whether the reviewer is a verified current user
relationships:
type: object
required:
- id
- type
- attributes
included:
$ref: '#/components/schemas/included'
links:
$ref: '#/components/schemas/cursor_pagination'
examples:
with standard G2 reviews:
value:
data:
- id: 41eb24b6-81ac-4269-8ec9-000000000002
type: reviews
attributes:
answers:
love:
text: What do you like best?
value: I like...
hate:
text: What do you dislike?
value: I dislike...
recommendations:
text: What recommendations would you have?
value: I recommend...
benefits:
text: What benefits have you realized?
value: I benefit...
attribution:
text: Verified by G2
url: http://www.lvh.me:63479/products/product-one/reviews/product-one-review-194
logo: http://www.lvh.me:63479/assets/g2-logo-rorange.svg
comments_present: false
country_name: United States
default_sort: 0.8
is_public: true
official_response_present: false
percent_complete: 0.9
product_name: Product One
published_at: '2021-12-01T00:00:00.000-06:00'
regions: []
review_incentive: false
slug: product-one-review-194
source: Organic review. This review was written entirely without invitation or incentive from G2, a seller, or an affiliate.
star_rating: 2.5
submitted_at: '2022-01-01T00:00:00.000-06:00'
title: Review title
url: http://www.lvh.me:63479/products/product-one/reviews/product-one-review-194
user_updated_at: '2022-01-01T00:00:00.000-06:00'
verified_current_user: false
relationships:
user:
data:
id: aaaaaaaa-bbbb-4ccc-8ddd-000000000040
type: users
included:
- id: aaaaaaaa-bbbb-4ccc-8ddd-000000000040
type: users
attributes:
industry: Internet
name: alex smith
first_name: alex
last_name: smith
image: null
company: null
title: null
company_segment: ' '
links:
self: http://data.example.com/api/v2/products/41eb24b6-81ac-4269-8ec9-000000000001/reviews?filter%5Bupdated_at_gt%5D=&filter%5Bupdated_at_lt%5D=&&filter%5Bcomment_answer_values_exclude%5D=&&&&&&&filter%5Bremoved%5D=&fields%5Breviews%5D=answers%2Cattribution%2Ccomments_present%2Ccountry_name%2Cdefault_sort%2Cis_public%2Cofficial_response_present%2Cpercent_complete%2Cproduct_name%2Cpublished_at%2Cregions%2Creview_incentive%2Cslug%2Csource%2Cstar_rating%2Csubmitted_at%2Ctitle%2Curl%2Cuser_updated_at%2Cverified_current_user&include=user
next: null
prev: null
meta:
aggregates:
- filter_name: nps_score
nested_filter_name: null
collection:
- id: 5
text: 5 star
count: 0
checked: false
nested_boxes: []
- id: 4
text: 4 star
count: 0
checked: false
nested_boxes: []
- id: 3
text: 3 star
count: 1
checked: false
nested_boxes: []
- id: 2
text: 2 star
count: 0
checked: false
nested_boxes: []
- id: 1
text: 1 star
count: 0
checked: false
nested_boxes: []
expanded: true
record_count: 1
products:
- name: Product One
domain: example.com
slug: product-one
product_type: Software
star_rating: 2.5
avg_rating: '5.0'
detail_description: Description
review_count: 0
image_url: null
public_detail_url: null
g2crowd_url: http://www.lvh.me:63479/products/product-one/reviews
write_review_url: http://www.lvh.me:63479/products/product-one/take_survey
with Market Intelligence reviews:
value:
data:
- id: 41eb24b6-81ac-4269-8ec9-000000000002
type: reviews
attributes:
url: http://www.lvh.me:63479/products/product-one/reviews/product-one-review-196
title: Review title
rating: 5.0
user_updated_at: '2022-01-01T00:00:00.000-06:00'
user_company_name: null
product_name: Product One
company_segment_name: Mid-Market
industry_name: Accounting
primary_region_name: null
country_name: United States
country_code: US
switched_theme: []
category_names: []
switched_from_products: []
answers:
nps:
text: How likely is it that you would recommend the product to a friend or colleague?
value: 5.0
ease_of_setup:
text: Ease of Setup
value: 0.0
ease_of_doing_business_with:
text: Ease of Doing Business With
value: 0.5
meets_requirements:
text: Meets Requirements
value: 1.0
ease_of_admin:
text: Ease of Admin
value: 1.5
ease_of_use:
text: Ease of Use
value: 2.0
quality_of_support:
text: Quality of Support
value: 2.5
love:
text: What do you like best?
value: I like...
hate:
text: What do you dislike?
value: I dislike...
recommendations:
text: What recommendations would you have?
value: I recommend...
benefits:
text: What benefits have you realized?
value: I benefit...
price:
text: simplistic
value: 3.0
product_role:
text: What is your primary role when using the product?
value: User
time_used:
text: What is your level of experience with the product?
value: Failed to go Live
implementation_year:
text: When did you implement the product?
value: 2006-07
implementation:
text: How did you implement?
value: Vendor Services Team
deployment:
text: Did you deploy in the cloud?
value: 'No'
go_live_time:
text: How long did it take you to go live?
value: < 1 day
investment_level:
text: What were your one-time costs for setting up the product?
value: $250,000-499,999
annual_cost:
text: What is your annual recurring cost for using the product?
value: $250,000-499,999
contract_length:
text: simplistic
value: 1 Year
discount:
text: simplistic
value: 21-30%
users_purchased:
text: How many users purchased the product in your company?
value: 5,000-9,999
adoption:
text: What % of your users have fully adopted the system?
value: 11-30%
roi:
text: simplistic
value: 24-36 months
switched_from_other_product:
text: simplistic
value: Don't know
direction:
text: simplistic
value: Don't know
implementation_consultant:
text: null
value: null
switched_reason:
text: null
value: null
feature_ratings:
- category: Category Name
section: Section Name
question_title: Feature Question Title
question_text: Feature Question Text
answer_value: 5.0
relationships:
user:
data:
id: aaaaaaaa-bbbb-4ccc-8ddd-000000000040
type: users
included:
- id: aaaaaaaa-bbbb-4ccc-8ddd-000000000040
type: users
attributes:
industry: Accounting
name: alex smith
first_name: alex
last_name: smith
image: null
company: null
title: null
company_segment: Mid-Market (51-1,000 emp.)
links:
self: http://data.example.com/api/v2/products/41eb24b6-81ac-4269-8ec9-000000000001/reviews?filter%5Bupdated_at_gt%5D=&filter%5Bupdated_at_lt%5D=&&filter%5Bcomment_answer_values_exclude%5D=&&&&&&&filter%5Bremoved%5D=&serializer=market_intelligence&fields%5Breviews%5D=url%2Ctitle%2Crating%2Cuser_updated_at%2Cuser_company_name%2Cproduct_name%2Ccompany_segment_name%2Cindustry_name%2Cprimary_region_name%2Ccountry_name%2Ccountry_code%2Cswitched_theme%2Ccategory_names%2Cswitched_from_products%2Canswers%2Cfeature_ratings&include=user
next: null
prev: null
meta:
aggregates:
- filter_name: nps_score
nested_filter_name: null
collection:
- id: 5
text: 5 star
count: 0
checked: false
nested_boxes: []
- id: 4
text: 4 star
count: 0
checked: false
nested_boxes: []
- id: 3
text: 3 star
count: 1
checked: false
nested_boxes: []
- id: 2
text: 2 star
count: 0
checked: false
nested_boxes: []
- id: 1
text: 1 star
count: 0
checked: false
nested_boxes: []
expanded: true
record_count: 1
products:
- name: Product One
domain: example.com
slug: product-one
product_type: Software
star_rating: 2.5
avg_rating: '5.0'
detail_description: Description
review_count: 0
image_url: null
public_detail_url: null
g2crowd_url: http://www.lvh.me:63479/products/product-one/reviews
write_review_url: http://www.lvh.me:63479/products/product-one/take_survey
example:
data: []
included:
- id: aaaaaaaa-bbbb-4ccc-8ddd-000000000040
type: users
attributes:
industry: Accounting
name: alex smith
first_name: alex
last_name: smith
image: null
company: null
title: null
company_segment: Mid-Market (51-1,000 emp.)
links:
self: http://data.example.com/api/v2/products/41eb24b6-81ac-4269-8ec9-000000000001/reviews?filter%5Bupdated_at_gt%5D=&filter%5Bupdated_at_lt%5D=&&filter%5Bcomment_answer_values_exclude%5D=&&&&&&&filter%5Bremoved%5D=true&fields%5Breviews%5D=slug%2Cproduct_name%2Cremoved_at%2Csubmitted_at&include=
next: null
prev: null
meta:
aggregates:
- filter_name: nps_score
nested_filter_name: null
collection:
- id: 5
text: 5 star
count: 0
checked: false
nested_boxes: []
- id: 4
text: 4 star
count: 0
checked: false
nested_boxes: []
- id: 3
text: 3 star
count: 1
checked: false
nested_boxes: []
- id: 2
text: 2 star
count: 0
checked: false
nested_boxes: []
- id: 1
text: 1 star
count: 0
checked: false
nested_boxes: []
expanded: true
record_count: 0
products:
- name: Product One
domain: example.com
slug: product-one
product_type: Software
star_rating: 2.5
avg_rating: '5.0'
detail_description: Description
review_count: 0
image_url: null
public_detail_url: null
g2crowd_url: http://www.lvh.me:63479/products/product-one/reviews
write_review_url: http://www.lvh.me:63479/products/product-one/take_survey
/api/v2/users/me/products/{product_id}/review:
get:
summary: Show review for a product
operationId: getCurrentUserProductReview
tags:
- Reviews
description: '**⚠️ G2 is currently restricting access to this endpoint.**
This endpoint retrieves the review for a specific product owned by the current user.
'
security:
- AccountAPIToken: []
G2OAuth:
- openid
- profile
parameters:
- name: product_id
in: path
required: true
schema:
type: string
- name: fields[reviews]
in: query
explode: false
description: Comma separated list of fields for reviews to include in response
schema:
type: array
items:
type: string
enum:
- questions
- published_at
- submitted_at
- user_updated_at
- url
- name: include
in: query
explode: false
description: Comma-separated list of relationships to include (e.g. user,answers)
schema:
type: array
items:
type: string
enum:
- user
- answers
responses:
'401':
description: Unauthenticated
content:
application/vnd.api+json:
example:
errors:
- status: '401'
title: Bad Credentials
schema:
$ref: '#/components/schemas/Errors'
'403':
description: Not Authorized
content:
application/vnd.api+json:
example:
errors:
- status: '403'
title: You do not have access to that resource
schema:
$ref: '#/components/schemas/Errors'
'404':
description: Review not found
content:
application/vnd.api+json:
example:
errors:
- status: '404'
title: Not Found
# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/business-software-and-services-reviews-g2/refs/heads/main/openapi/business-software-and-services-reviews-g2-reviews-api-openapi.yml