---
openapi: 3.0.1
info:
title: G2 Data Solutions API
version: v2
description: Data Solutions API providing enriched review data with flat attribute
structures.
paths:
"/api/v2/data_solutions/reviews":
get:
summary: Lists reviews with all Data Solutions fields
operationId: getDataSolutionsReviews
tags:
- Data Solutions Reviews
description: |+
**Requires `ds_reviews.read` scope.**
**⚠️ BETA API**: This endpoint is a beta endpoint and it definition might change by the official release.
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: filter[product_id][]
in: query
required: false
description: Filter by product UUIDs or slugs
schema:
type: array
items:
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
- Company Segment ID: `179` => `Small-Business` *(0-50 employees)*
- Company Segment ID: `180` => `Mid-Market` *(51-1000 employees)*
- Company Segment ID: `181` => `Enterprise` *(1001-Infinity employees)*
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[product_id][]
description: Filter by product UUIDs or slugs
in: query
schema:
type: array
items:
type: string
- name: fields[reviews]
in: query
description: Comma-separated list of fields to include. All 55 Data Solutions
fields are available as flat attributes.
schema:
type: array
items:
type: string
enum:
- url
- slug
- title
- star_rating
- published_at
- submitted_at
- user_updated_at
- product_name
- country_name
- source
- review_incentive
- verified_current_user
- comments_present
- official_response_present
- is_public
- percent_complete
- default_sort
- regions
- attribution
- love
- hate
- benefits
- recommendations
- meets_requirements
- price
- ease_of_setup
- likely_to_recommend
- nps
- ease_of_admin
- ease_of_use
- quality_of_support
- ease_of_doing_business_with
- company_segment
- role
- company_size
- industry
- user_title
- company
- experience_level
- implementation
- go_live_time
- estimated_roi
- annual_cost
- setup_cost
- contract_length
- discount
- users_purchased
- frequency_of_use
- deployment
- implementation_year
- adoption
- switched_from
- switched_from_product
- switched_from_product_id
- switch_reason
- switch_themes
- survey_response_id
- product_id
- categories
- direction
- organic
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"
'200':
description: With all fields included
content:
application/vnd.api+json:
example:
data:
- id: aaaaaaaa-bbbb-4ccc-8ddd-000000000046
type: reviews
attributes:
url: http://www.lvh.me:63479/products/product-one/reviews/product-one-review-121
slug: product-one-review-121
title: Review title
star_rating: 2.5
published_at: '2021-12-01T00:00:00.000-06:00'
submitted_at: '2022-01-01T00:00:00.000-06:00'
user_updated_at: '2022-01-01T00:00:00.000-06:00'
product_name: Product One
country_name: United States
source: Organic review. This review was written entirely without
invitation or incentive from G2, a seller, or an affiliate.
review_incentive: false
verified_current_user: false
comments_present: false
official_response_present: false
is_public: true
percent_complete: 0.9
default_sort: 0.8
regions: []
attribution:
text: Verified by G2
url: http://www.lvh.me:63479/products/product-one/reviews/product-one-review-121
logo: http://www.lvh.me:63479/assets/g2-logo-rorange.svg
love: I like...
hate: I dislike...
benefits: I benefit...
recommendations: I recommend...
meets_requirements: 1.0
price: 3.0
ease_of_setup: 0.0
likely_to_recommend: 5.0
nps: -100
ease_of_admin: 1.5
ease_of_use: 2.0
quality_of_support: 2.5
ease_of_doing_business_with: 0.5
company_segment:
role:
company_size:
industry:
user_title:
company:
experience_level: Failed to go Live
implementation: Vendor Services Team
go_live_time: "< 1 day"
estimated_roi: 24-36 months
annual_cost: "$250,000-499,999"
setup_cost: "$250,000-499,999"
contract_length: 1 Year
discount: 21-30%
users_purchased: 5,000-9,999
frequency_of_use: At least once a month
deployment: 'No'
implementation_year: 2006-07
adoption: 11-30%
switched_from: Don't know
switched_from_product:
switched_from_product_id:
switch_reason:
switch_themes:
survey_response_id: aaaaaaaa-bbbb-4ccc-8ddd-000000000046
product_id: aaaaaaaa-bbbb-4ccc-8ddd-000000000009
categories:
direction: Don't know
organic: true
relationships:
user:
data:
id: aaaaaaaa-bbbb-4ccc-8ddd-000000000041
type: users
included:
- id: aaaaaaaa-bbbb-4ccc-8ddd-000000000041
type: users
attributes:
industry: Accounting
name: alex smith
first_name: alex
last_name: smith
image:
company:
title:
company_segment: Mid-Market (51-1,000 emp.)
links:
self: http://data.example.com/api/v2/data_solutions/reviews?filter%5Bproduct_id%5D%5B%5D=aaaaaaaa-bbbb-4ccc-8ddd-000000000009&filter%5Bupdated_at_gt%5D=&filter%5Bupdated_at_lt%5D=&&filter%5Bcomment_answer_values_exclude%5D=&&&&&&&fields%5Breviews%5D=url,slug,title,star_rating,published_at,submitted_at,user_updated_at,product_name,country_name,source,review_incentive,verified_current_user,comments_present,official_response_present,is_public,percent_complete,default_sort,regions,attribution,love,hate,benefits,recommendations,meets_requirements,price,ease_of_setup,likely_to_recommend,nps,ease_of_admin,ease_of_use,quality_of_support,ease_of_doing_business_with,company_segment,role,company_size,industry,user_title,company,experience_level,implementation,go_live_time,estimated_roi,annual_cost,setup_cost,contract_length,discount,users_purchased,frequency_of_use,deployment,implementation_year,adoption,switched_from,switched_from_product,switched_from_product_id,switch_reason,switch_themes,survey_response_id,product_id,categories,direction,organic&include=user
next:
prev:
meta:
aggregates:
- filter_name: nps_score
nested_filter_name:
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:
public_detail_url:
g2crowd_url: http://www.lvh.me:63479/products/product-one/reviews
write_review_url: http://www.lvh.me:63479/products/product-one/take_survey
schema:
type: object
required:
- data
- links
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
type:
type: string
attributes:
type: object
properties:
url:
type: string
description: Full URL to the review on G2
format: uri
nullable: false
slug:
type: string
description: URL-friendly identifier
example: great-product-for-our-team
nullable: false
title:
type: string
description: Review title
example: Great product for our team
nullable: false
star_rating:
type: number
description: Star rating (1-5 scale)
example: 4.5
nullable: false
published_at:
type: string
description: When the review was published
format: date-time
nullable: false
submitted_at:
type: string
description: When the review was submitted
format: date-time
nullable: false
user_updated_at:
type: string
description: When the user last updated the review
format: date-time
nullable: false
product_name:
type: string
description: Name of the reviewed product
nullable: false
country_name:
type: string
description: Country of the reviewer
nullable: false
source:
type: string
description: Source of the review (e.g., "G2", "Incentivized")
nullable: false
review_incentive:
type: boolean
description: Whether the review was incentivized
nullable: false
verified_current_user:
type: boolean
description: Whether the reviewer is a verified current
user
nullable: false
comments_present:
type: boolean
description: Whether comments are present on the review
nullable: false
official_response_present:
type: boolean
description: Whether vendor has responded
nullable: false
is_public:
type: boolean
description: Whether the review is public
nullable: false
percent_complete:
type: number
description: Completion percentage of the review
example: 0.9
nullable: false
default_sort:
type: number
description: Default sort score for the review
nullable: false
regions:
type: array
items:
type: string
description: Geographic regions associated with the
reviewer
nullable: false
attribution:
type: object
description: Attribution information for syndication
properties: {}
nullable: false
love:
type: string
description: What do you like best about this product?
nullable: true
hate:
type: string
description: What do you dislike about this product?
nullable: true
benefits:
type: string
description: What business problems does this product
solve?
nullable: true
recommendations:
type: string
description: Recommendations to others considering this
product
nullable: true
meets_requirements:
type: number
description: Meets Requirements rating (1-7 scale)
nullable: true
price:
type: number
description: Price rating (1-7 scale)
nullable: true
ease_of_setup:
type: number
description: Ease of Setup rating (1-7 scale)
nullable: true
likely_to_recommend:
type: number
description: Likelihood to Recommend (0-10 NPS driver)
nullable: true
nps:
type: integer
description: 'Net Promoter Score: %Promoters - %Detractors
(-100, 0, or 100)'
nullable: true
ease_of_admin:
type: number
description: Ease of Admin rating (1-7 scale)
nullable: true
ease_of_use:
type: number
description: Ease of Use rating (1-7 scale)
nullable: true
quality_of_support:
type: number
description: Quality of Support rating (1-7 scale)
nullable: true
ease_of_doing_business_with:
type: number
description: Ease of Doing Business With rating (1-7
scale)
nullable: true
company_segment:
type: string
description: Company size segment (Small Business, Mid-Market,
Enterprise)
example: Mid-Market
nullable: true
role:
type: string
description: Reviewer role (User, Admin, Executive Sponsor,
etc.)
nullable: true
company_size:
type: string
description: Employee count bucket
nullable: true
industry:
type: string
description: Reviewer industry
nullable: true
user_title:
type: string
description: Reviewer professional title
nullable: true
company:
type: string
description: Reviewer organization name
nullable: true
experience_level:
type: string
description: Level of experience with the product (Trial,
<1yr, 1-3yr, etc.)
nullable: true
implementation:
type: string
description: How the product was implemented (In-House,
Vendor, 3rd Party)
nullable: true
go_live_time:
type: string
description: Time to go live
nullable: true
estimated_roi:
type: string
description: Estimated time to ROI
nullable: true
annual_cost:
type: string
description: Annual recurring cost bucket
nullable: true
setup_cost:
type: string
description: One-time setup cost bucket
nullable: true
contract_length:
type: string
description: Contract term length
nullable: true
discount:
type: string
description: Discount percentage bucket
nullable: true
users_purchased:
type: string
description: Number of seats purchased bucket
nullable: true
frequency_of_use:
type: string
description: Product usage frequency (Daily, Weekly,
Monthly, etc.)
nullable: true
deployment:
type: string
description: Deployment model (Cloud, On-Premise, Hybrid)
nullable: true
implementation_year:
type: string
description: Year the product was implemented
nullable: true
adoption:
type: string
description: Percentage of users who have fully adopted
the system
nullable: true
switched_from:
type: string
description: Whether the reviewer switched from another
product (Yes/No/Don't Know)
nullable: true
switched_from_product:
type: array
items:
type: string
description: Names of products the reviewer switched
from
nullable: true
switched_from_product_id:
type: array
items:
type: string
description: G2 UUIDs of products the reviewer switched
from
nullable: true
switch_reason:
type: string
description: 'Free text: why the reviewer switched products'
nullable: true
switch_themes:
type: array
items:
type: string
description: NLP-generated switching themes
nullable: true
survey_response_id:
type: string
description: Review UUID
example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
nullable: false
product_id:
type: string
description: Product G2 UUID
nullable: false
categories:
type: array
items:
type: string
description: G2 category names for this product
nullable: true
direction:
type: string
description: Is this product headed in the right direction?
(Yes/No/Don't Know)
nullable: true
organic:
type: boolean
description: Whether the review was organically submitted
(vs invited/incentivized)
nullable: false
relationships:
type: object
required:
- id
- type
- attributes
included:
"$ref": "#/components/schemas/included"
links:
"$ref": "#/components/schemas/cursor_pagination"
servers:
- url: https://{defaultHost}
variables:
defaultHost:
default: data.g2.com
components:
parameters: {}
schemas:
cursor_pagination:
type: object
properties:
next:
type: string
nullable: true
prev:
type: string
nullable: true
self:
type: string
nullable: true
included:
type: array
items:
type: object
properties:
id:
type: string
type:
type: string
attributes:
type: object
relationships:
type: object
Errors:
type: object
properties:
errors:
type: array
items:
type: object
properties:
status:
type: string
title:
type: string
links:
type: object
nullable: true
source:
type: object
nullable: true
http_error:
type: object
properties:
status:
type: string
title:
type: string
links:
type: object
nullable: true
source:
type: object
nullable: true
securitySchemes:
AccountAPIToken:
type: http
scheme: bearer
G2OAuth:
type: oauth2
flows:
authorizationCode:
tokenUrl: https://www.g2.com/oauth/token
authorizationUrl: https://www.g2.com/oauth/authorize
scopes:
openid: OpenID Connect default scope
profile: Profile information on current user
data_subscriptions.read: Read Data Subscription records
data_subscriptions.read_write: Modify Data Subscription records
partner:partner-id.read: Access records created in Partner realm
performance_analytics.read: Read Performance Analytics data
...