G2 Data Solutions API

The G2 Data Solutions API delivers enriched review data with flat attribute structures, intended for analytics and warehouse workflows rather than profile rendering. It returns reviews with B2B firmographic context — company segment, industry and competitive switching signal — attached to each record, and is the surface behind the MCP tool list_market_intelligence_product_reviews. G2 marks it a BETA API and warns the definition may change before official release. Requires the ds_reviews.read OAuth scope; cursor paginated with page[size] up to 250.

OpenAPI Specification

business-software-and-services-reviews-g2-data-solutions-openapi.yml Raw ↑
---
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
...