G2 API V2

The G2 API V2 provides programmatic access to G2's software reviews, buyer intent signals, competitive intelligence, and product data. Uses OAuth 2.0 for authentication. Enables integration of G2 buyer intent data into CRM, marketing automation, and sales workflows.

Documentation

Specifications

Other Resources

OpenAPI Specification

business-software-and-services-reviews-g2-v2-openapi.yml Raw ↑
---
openapi: 3.0.1
info:
  title: G2 API
  version: v2
  description: |
    ## Rate Limiting

    Cloudflare limits requests to the G2 API to **100 requests per second** per source IP address.
paths:
  "/api/sandbox/products/{subject_product_id}/buyer_intent":
    get:
      summary: Browse sandbox buyer intent interactions for a product
      operationId: getSandboxBuyerIntentInteractions
      tags:
      - Buyer Intent
      description: |
        **No scope is required to access this sandbox endpoint**

        **⚠️ Sandbox API**: This endpoint is a sandbox endpoint and is data limited. Only data between 6 months to 1 year ago will be available.

        Query buyer intent data using an analytical query interface.

        ## Query Language

        This endpoint uses an OLAP-style query language that supports:
        - **Dimensions**: Group and categorize data (e.g., company_name, company_domain, day)
        - **Measures**: Aggregate numerical values (e.g., total_activity, visitor_count)
        - **Filters**: Apply conditions to limit results

        ### Filter Operators
        Filters use the format `dimension_filters[name_suffix]` where `name`
        is the dimension name and `suffix` indicates the operation:

        - `_eq`: Equals (exact match)
        - `_not_eq`: Not equals
        - `_cont`: Contains (substring match)
        - `_not_cont`: Does not contain
        - `_gt`: Greater than
        - `_gteq`: Greater than or equal
        - `_lt`: Less than
        - `_lteq`: Less than or equal
        - `_present`: Field has a value
        - `_empty`: Field is empty

        ### Time Series vs Aggregated Data
        - **Aggregated**: Request dimensions without `day` for company-level summaries
        - **Time Series**: Include `day` dimension for daily breakdowns over time

        ### Sorting Results
        Use the `sort` parameter to order results by any dimension or measure:
        - **Ascending**: `sort=company_name` or `sort=total_activity`
        - **Descending**: `sort=-company_intent_score` (prefix with `-`)
        - **Default**: Results are sorted by `-company_intent_score` (highest intent first)

        Available sort fields include all dimensions and measures listed above.

        ### Examples
        - Company summary: `dimensions=company_name,company_domain&measures=total_activity`
        - Time series: `dimensions=company_name,day&measures=company_intent_score`
        - Filtered: `dimension_filters[company_name_cont]=Acme&dimensions=company_name`
        - Sorted by activity: `dimensions=company_name&measures=total_activity&sort=-total_activity`
      security:
      - AccountAPIToken: []
        G2OAuth:
        - openid
        - profile
      parameters:
      - name: subject_product_id
        in: path
        description: Identifier for the subject product
        required: true
        schema:
          type: string
      - name: dimensions
        in: query
        explode: false
        description: Comma separated list of dimensions
        schema:
          type: array
          items:
            type: string
            enum:
            - signal_type
            - time
            - day
            - week
            - month
            - company_id
            - company_name
            - company_domain
            - company_country
            - company_state
            - company_city
            - company_employees
            - company_industry
            - visitor_id
            - visitor_country
            - visitor_state
            - visitor_city
            - company_intent_score
            - product_id
            - product_slug
            - product_name
            - category_id
            - category_slug
            - category_name
            - left_product_id
            - left_product_slug
            - left_product_name
            - right_product_id
            - right_product_slug
            - right_product_name
            - vendor_id
            - vendor_slug
            - vendor_name
            - provider
      - name: measures
        in: query
        explode: false
        description: Comma separated list of measures
        schema:
          type: array
          items:
            type: string
            enum:
            - total_activity
            - visitor_count
            - company_count
            - last_seen_at
      - name: sort
        in: query
        description: Sort field with optional direction prefix. Use "-" for descending
          (e.g., "-day")
        schema:
          type: string
      - 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: dimension_filters
        in: query
        style: deepObject
        explode: true
        description: Filters represented as query object (e.g., dimension_filters[company_name_cont]=Acme)
        schema:
          type: object
          additionalProperties:
            oneOf:
            - type: string
            - type: number
            - type: string
              format: date-time
          example:
            company_name_cont: Acme
            company_intent_score_gteq: 75
            day_gteq: '2024-01-01'
      responses:
        '200':
          description: Successful responses
          content:
            application/vnd.api+json:
              examples:
                Company-level intent score:
                  value:
                    data:
                    - id: 602674427a5e0384ac2b5a911062a284
                      type: buyer_intent
                      attributes:
                        total_activity: 150
                        company_name: Enterprise Corp
                        company_domain: enterprise.com
                        company_state: New York
                        company_intent_score: 85.5
                        subject_product_id: f6d9f6d6-3ec1-4380-8525-000000000002
                        subject_product_slug: test-product-6
                    links:
                      self: http://data.example.com/api/sandbox/products/f6d9f6d6-3ec1-4380-8525-000000000002/buyer_intent?dimensions=company_name,company_domain,company_state,company_intent_score&measures=total_activity&sort=-company_intent_score&dimension_filters%5Bcompany_intent_score_gteq%5D=75
                      next:
                      prev:
                Company-level intent score by day:
                  value:
                    data:
                    - id: a6b2c88e1321dbb7b45d8575d0fea75b
                      type: buyer_intent
                      attributes:
                        total_activity: 25
                        day: '2024-01-15'
                        company_intent_score: 75.0
                        subject_product_id: f6d9f6d6-3ec1-4380-8525-000000000002
                        subject_product_slug: test-product-7
                    - id: 610adfa9282f00fd355147a410aaa154
                      type: buyer_intent
                      attributes:
                        total_activity: 35
                        day: '2024-01-16'
                        company_intent_score: 82.5
                        subject_product_id: f6d9f6d6-3ec1-4380-8525-000000000002
                        subject_product_slug: test-product-7
                    links:
                      self: http://data.example.com/api/sandbox/products/f6d9f6d6-3ec1-4380-8525-000000000002/buyer_intent?dimensions=company_intent_score,day&measures=total_activity&sort=-company_intent_score&dimension_filters%5Bcompany_id_eq%5D=uuid-456&dimension_filters%5Bday_gteq%5D=2024-01-01
                      next:
                      prev:
                Company-level activity by signal type:
                  value:
                    data:
                    - id: 5bd5e51817ee7d50eded19d61a0e5d10
                      type: buyer_intent
                      attributes:
                        total_activity: 10
                        signal_type: profile
                        company_name: Enterprise Corp
                        company_domain: enterprise.com
                        company_state: New York
                        subject_product_id: f6d9f6d6-3ec1-4380-8525-000000000002
                        subject_product_slug: test-product-8
                    - id: 6f864c4b6221d1241cab0bc3295c8fbb
                      type: buyer_intent
                      attributes:
                        total_activity: 5
                        signal_type: pricing
                        company_name: Enterprise Corp
                        company_domain: enterprise.com
                        company_state: New York
                        subject_product_id: f6d9f6d6-3ec1-4380-8525-000000000002
                        subject_product_slug: test-product-8
                    links:
                      self: http://data.example.com/api/sandbox/products/f6d9f6d6-3ec1-4380-8525-000000000002/buyer_intent?dimensions=company_name,company_domain,company_state,signal_type&measures=total_activity&sort=-company_intent_score&
                      next:
                      prev:
                Visitor-level daily behavior:
                  value:
                    data:
                    - id: 1e4bd6a7464c9637a09a7836daa6a6a3
                      type: buyer_intent
                      attributes:
                        total_activity: 5
                        signal_type: pricing
                        day: '2024-01-15'
                        company_name: Tech Solutions Inc
                        company_domain: techsolutions.com
                        visitor_id: visitor-123
                        visitor_country: United States
                        visitor_state:
                        subject_product_id: f6d9f6d6-3ec1-4380-8525-000000000002
                        subject_product_slug: test-product-9
                    links:
                      self: http://data.example.com/api/sandbox/products/f6d9f6d6-3ec1-4380-8525-000000000002/buyer_intent?dimensions=visitor_id,visitor_country,visitor_state,company_name,company_domain,signal_type,day&measures=total_activity&sort=-company_intent_score&dimension_filters%5Bday_gteq%5D=2024-01-01
                      next:
                      prev:
                Summary of data volume:
                  value:
                    data:
                    - id: 53617a1aa24939effc7778828ba770d2
                      type: buyer_intent
                      attributes:
                        total_activity: 1250
                        visitor_count: 450
                        company_count: 150
                        subject_product_id: f6d9f6d6-3ec1-4380-8525-000000000002
                        subject_product_slug: test-product-10
                    links:
                      self: http://data.example.com/api/sandbox/products/f6d9f6d6-3ec1-4380-8525-000000000002/buyer_intent?dimensions=&measures=company_count,visitor_count,total_activity&sort=-company_intent_score&
                      next:
                      prev:
                Data volume by topic (Product and Category):
                  value:
                    data:
                    - id: f03aa0a9a87e5c684a685b314be1c068
                      type: buyer_intent
                      attributes:
                        total_activity: 30
                        visitor_count: 20
                        company_count: 10
                        product_slug: acme-product
                        category_slug: acme-category
                        subject_product_id: f6d9f6d6-3ec1-4380-8525-000000000002
                        subject_product_slug: test-product-11
                    links:
                      self: http://data.example.com/api/sandbox/products/f6d9f6d6-3ec1-4380-8525-000000000002/buyer_intent?dimensions=product_slug,category_slug&measures=company_count,visitor_count,total_activity&sort=-company_intent_score&dimension_filters%5Bcompany_intent_score_gteq%5D=50
                      next:
                      prev:
              schema:
                type: object
                required:
                - data
                - links
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        type:
                          type: string
                        attributes:
                          type: object
                          properties:
                            company_id:
                              type: string
                              description: Unique company identifier
                            company_name:
                              type: string
                              description: Company name
                            company_domain:
                              type: string
                              description: Company website domain
                            company_state:
                              type: string
                              description: Company location state
                            visitor_id:
                              type: string
                              description: Unique visitor identifier
                            company_intent_score:
                              type: number
                              description: Intent score (0-100)
                            total_activity:
                              type: integer
                              description: Total page views and interactions
                            day:
                              type: string
                              format: date
                              description: Date for time-series data
                            product_id:
                              type: string
                              nullable: true
                              description: Product UUID
                            category_id:
                              type: string
                              nullable: true
                              description: Category UUID
                            subject_product_id:
                              type: string
                              description: Subject product UUID
                            subject_product_slug:
                              type: string
                              description: Subject product slug
                      required:
                      - id
                      - type
                      - attributes
                  included:
                    "$ref": "#/components/schemas/included"
                  links:
                    "$ref": "#/components/schemas/cursor_pagination"
  "/api/v2/screenshots":
    get:
      summary: Lists screenshots
      operationId: getScreenshots
      tags:
      - Screenshots
      description: "**Requires `screenshots.read` scope.**\n"
      security:
      - AccountAPIToken: []
        G2OAuth:
        - openid
        - profile
      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[created_at_gt]
        in: query
        schema:
          type: string
        description: Min time for when a record was created. Using rfc3339 format.
      - name: filter[created_at_lt]
        in: query
        schema:
          type: string
        description: Max time for when a record was last updated. Using rfc3339 format.
      - name: filter[updated_at_gt]
        in: query
        schema:
          type: string
        description: Min time for when a record was last updated. Using rfc3339 format.
      - name: filter[updated_at_lt]
        in: query
        schema:
          type: string
        description: Max time for when a record was last updated. Using rfc3339 format.
      - name: fields[screenshots]
        in: query
        explode: false
        description: Comma separated list of fields for screenshots to include in
          response
        schema:
          type: array
          items:
            type: string
            enum:
            - id
            - product_id
            - url
            - created_at
            - updated_at
            - file_name
            - title
            - description
      - name: include
        in: query
        explode: false
        description: Comma-separated list of relationships to include (e.g. product,vendor)
        schema:
          type: array
          items:
            type: string
            enum:
            - product
            - vendor
      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"
        '401':
          description: Unauthenticated
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '401'
                  title: Bad Credentials
              schema:
                "$ref": "#/components/schemas/Errors"
        '200':
          description: With all fields included
          content:
            application/vnd.api+json:
              example:
                data:
                - id: 1dadd35b-0e33-46db-8377-000000000002
                  type: screenshots
                  attributes:
                    product_id: 1dadd35b-0e33-46db-8377-000000000001
                    url: https://d3cat1s0n6zlx1.cloudfront.net/uploads/attachment/file/47/g2.png
                    created_at: '2021-12-01T00:00:00.000-06:00'
                    updated_at: '2022-01-01T00:00:00.000-06:00'
                    file_name: g2.png
                    title: G2.com
                    description:
                links:
                  self: http://data.example.com/api/v2/screenshots?filter%5Bcreated_at_gt%5D=&filter%5Bcreated_at_lt%5D=&filter%5Bupdated_at_gt%5D=&filter%5Bupdated_at_lt%5D=&fields%5Bscreenshots%5D=id,product_id,url,created_at,updated_at,file_name,title,description&include=product,vendor
                  next:
                  prev:
                meta:
                  record_count: 1
              schema:
                type: object
                required:
                - data
                - links
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        type:
                          type: string
                        attributes:
                          type: object
                          required:
                          - created_at
                          - product_id
                          - url
                          properties:
                            id:
                              type: string
                            product_id:
                              type: string
                            url:
                              type: string
                            created_at:
                              type: string
                              format: date-time
                            updated_at:
                              type: string
                              format: date-time
                            file_name:
                              type: string
                            title:
                              type: string
                            description:
                              type: string
                              nullable: true
                      required:
                      - id
                      - type
                      - attributes
                  included:
                    "$ref": "#/components/schemas/included"
                  links:
                    "$ref": "#/components/schemas/cursor_pagination"
  "/api/v2/screenshots/{id}":
    get:
      summary: Shows a screenshot
      operationId: getScreenshot
      tags:
      - Screenshots
      description: "**Requires `screenshots.read` scope.**\n"
      security:
      - AccountAPIToken: []
        G2OAuth:
        - openid
        - profile
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: fields[screenshots]
        in: query
        explode: false
        description: Comma separated list of fields for screenshots to include in
          response
        schema:
          type: array
          items:
            type: string
            enum:
            - id
            - product_id
            - url
            - created_at
            - updated_at
            - file_name
            - title
            - description
      - name: include
        in: query
        explode: false
        description: Comma-separated list of relationships to include (e.g. product,vendor)
        schema:
          type: array
          items:
            type: string
            enum:
            - product
            - vendor
      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"
        '401':
          description: Unauthenticated
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '401'
                  title: Bad Credentials
              schema:
                "$ref": "#/components/schemas/Errors"
        '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:
              example:
                data:
                  id: 1dadd35b-0e33-46db-8377-000000000002
                  type: screenshots
                  attributes:
                    product_id: 1dadd35b-0e33-46db-8377-000000000001
                    url: https://d3cat1s0n6zlx1.cloudfront.net/uploads/attachment/file/52/g2.png
                    created_at: '2021-12-01T00:00:00.000-06:00'
                    updated_at: '2022-01-01T00:00:00.000-06:00'
                    file_name: g2.png
                    title: G2.com
                    description:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      type:
                        type: string
                      attributes:
                        type: object
                        required:
                        - created_at
                        - url
                        properties:
                          id:
                            type: string
                          product_id:
                            type: string
                          url:
                            type: string
                          created_at:
                            type: string
                            format: date-time
                          updated_at:
                            type: string
                            format: date-time
                          file_name:
                            type: string
                          title:
                            type: string
                          description:
                            type: string
                            nullable: true
                  included:
                    "$ref": "#/components/schemas/included"
  "/api/v2/buyer_intent":
    get:
      summary: Browse buyer intent interactions (product-agnostic)
      operationId: getGlobalBuyerIntentInteractions
      tags:
      - Buyer Intent
      description: |
        **Requires `buyer_intent.read` scope.**

        Query buyer intent data across one or more products in a single request.
        Pass product_id to specify which products, or omit to use your assigned products.
        Supports multi-product queries — the data is not scoped to a single subject product.
      security:
      - AccountAPIToken: []
        G2OAuth:
        - openid
        - profile
      parameters:
      - name: dimensions
        in: query
        explode: false
        description: Comma separated list of dimensions
        schema:
          type: array
          items:
            type: string
            enum:
            - signal_type
            - time
            - day
            - week
            - month
            - company_id
            - company_name
            - company_domain
            - company_country
            - company_state
            - company_city
            - company_employees
            - company_industry
            - visitor_id
            - visitor_country
            - visitor_state
            - visitor_city
            - product_id
            - product_slug
            - product_name
            - category_id
            - category_slug
            - category_name
            - left_product_id
            - left_product_slug
            - left_product_name
            - right_product_id
            - right_product_slug
            - right_product_name
            - vendor_id
            - vendor_slug
            - vendor_name
            - provider
      - name: measures
        in: query
        explode: false
        description: Comma separated list of measures
        schema:
          type: array
          items:
            type: string
            enum:
            - total_activity
            - visitor_count
            - company_count
            - last_seen_at
      - name: subject_product_ids
        in: query
        description: One or more product IDs, UUIDs, or URL slugs (comma-separated)
          that scope the permissions of this query. Defaults to your assigned products.
        schema:
          type: string
      - name: sort
        in: query
        description: Sort field with optional direction prefix. Use "-" for descending
          (e.g., "-day")
        schema:
          type: string
      - 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: dimension_filters
        in: query
        style: deepObject
        explode: true
        description: Filters represented as query object (e.g., dimension_filters[company_name_cont]=Acme)
        schema:
          type: object
          additionalProperties:
            oneOf:
            - type: string
            - type: number
            - type: string
              format: date-time
          example:
            company_name_cont: Acme
            provider_in: g2
            audience_product_id_in: "<product-uuid-or-slug>"
      responses:
        '200':
          description: Successful responses
          content:
            application/vnd.api+json:
              examples:
                Company-level activity:
                  value:
                    data:
                    - id: 4e461029a40e1748cb562a87a581125d
                      type: buyer_intent
                      attributes:
                        total_activity: 150
                        company_name: Enterprise Corp
                        company_domain: enterprise.com
                    links:
                      self: http://data.example.com/api/v2/buyer_intent?dimensions=company_name,company_domain&measures=total_activity&subject_product_ids=4d4226d5-4959-4648-8fd2-000000000001&sort=&
                      next:
                      prev:
                With provider dimension:
                  value:
                    data:
                    - id: c72be8462054890d1a74760c5919cfe2
                      type: buyer_intent
                      attributes:
                        total_activity: 80
                        company_name: Enterprise Corp
                        provider: g2
                    - id: 57a93f21a6b22c62794813e31c9aabf5
                      type: buyer_intent
                      attributes:
                        total_activity: 70
                        company_name: Enterprise Corp
                        provider: capterra
                    links:
                      self: http://data.example.com/api/v2/buyer_intent?dimensions=company_name,provider&measures=total_activity&subject_product_ids=4d4226d5-4959-4648-8fd2-000000000001&sort=&
                      next:
                      prev:
                Summary of data volume:
                  value:
                    data:
                    - id: 075541525d161a64bcfeaf1315997704
                      type: buyer_intent
                      attributes:
                        total_activity: 1250
                        visitor_count: 450
                        company_count: 150
                    links:
                      self: http://data.example.com/api/v2/buyer_intent?dimensions=&measures=company_count,visitor_count,total_activity&subject_product_ids=4d4226d5-4959-4648-8fd2-000000000001&sort=&
                      next:
                      prev:
              schema:
                type: object
                required:
                - data
                - links
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        type:
                          type: string
                        attributes:
                          type: object
                          properties:
                            company_id:
                              type: string
                              description: Unique company identifier
                            company_name:
                              type: string
                              description: Company name
                            company_domain:
                              type: string
                              description: Company website domain
                            total_activity:
                

# --- truncated at 32 KB (464 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-v2-openapi.yml