> ## Documentation Index
> Fetch the complete documentation index at: https://socialquery.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# G2 Reviews

> Read public written G2 product reviews by product slug or URL, ten per page, up to three pages. Preserves half-star ratings, dates, likes/dislikes, verified-user and incentive flags. Supports most-recent (also used for default), highest-rated and lowest-rated sorting, comma-separated stars, keywords, and since. until filters each returned window locally. Totals are unknown; helpfulness ranking, industry/region/role/segment filters and review analysis/enrichment are unavailable.

Read public written G2 product reviews by product slug or URL, ten per page, up to three pages. Preserves half-star ratings, dates, likes/dislikes, verified-user and incentive flags. Supports most-recent (also used for default), highest-rated and lowest-rated sorting, comma-separated stars, keywords, and since. until filters each returned window locally. Totals are unknown; helpfulness ranking, industry/region/role/segment filters and review analysis/enrichment are unavailable.

A successful uncached call costs **5 credits**. Failed requests and cache hits cost zero. Failed or empty source output is not counted as successful data retrieval.

Pagination re-fetches a bounded source prefix, so new reviews or listings can shift rows. Only observed look-ahead rows produce a next cursor. A null cursor does not prove the complete archive was retrieved. Unknown fields remain null. Source runs use a pinned Actor build, limited permissions and a hard cost ceiling.


## OpenAPI

````yaml GET /g2/reviews
openapi: 3.1.0
info:
  title: SocialQuery API
  version: '2026-10-09'
  description: >-
    Documented requests for public-source records. Inspect accepted inputs and
    credit amounts, then verify the selected operation before integrating
    preview coverage.
servers:
  - url: https://socialquery.dev/v1
security:
  - apiKey: []
paths:
  /g2/reviews:
    get:
      tags:
        - G2
      summary: G2 Reviews
      description: >-
        Read public written G2 product reviews by product slug or URL, ten per
        page, up to three pages. Preserves half-star ratings, dates,
        likes/dislikes, verified-user and incentive flags. Supports most-recent
        (also used for default), highest-rated and lowest-rated sorting,
        comma-separated stars, keywords, and since. until filters each returned
        window locally. Totals are unknown; helpfulness ranking,
        industry/region/role/segment filters and review analysis/enrichment are
        unavailable.
      operationId: get_g2_reviews
      parameters:
        - name: id
          in: query
          required: false
          example: postman
          schema:
            type: string
        - name: url
          in: query
          required: false
          schema:
            type: string
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 3
          description: Bounded source window, page 1–3; do not combine with cursor.
        - name: industry
          in: query
          required: false
          schema:
            type: string
          description: Unavailable with this public written-review source; returns 422.
        - name: keywords
          in: query
          required: false
          schema:
            type: string
        - name: region
          in: query
          required: false
          schema:
            type: string
          description: Unavailable with this public written-review source; returns 422.
        - name: role
          in: query
          required: false
          schema:
            type: string
          description: Unavailable with this public written-review source; returns 422.
        - name: segment
          in: query
          required: false
          schema:
            type: string
            enum:
              - small-business
              - mid-market
              - enterprise
          description: Unavailable with this public written-review source; returns 422.
        - name: sort
          in: query
          required: false
          schema:
            type: string
            enum:
              - default
              - most-recent
              - most-helpful
              - highest-rated
              - lowest-rated
          description: >-
            default uses most-recent; highest-rated and lowest-rated also
            supported. most-helpful returns 422.
        - name: stars
          in: query
          required: false
          schema:
            type: string
        - name: label
          in: query
          required: false
          schema:
            type: string
          description: Unavailable with this public written-review source; returns 422.
        - name: reports
          in: query
          required: false
          schema:
            type: string
          description: Unavailable with this public written-review source; returns 422.
        - name: judgments
          in: query
          required: false
          schema:
            type: string
            enum:
              - 'on'
              - 'off'
          description: Unavailable with this public written-review source; returns 422.
        - name: dry_run
          in: query
          required: false
          schema:
            type: string
            enum:
              - '1'
          description: Unavailable with this public written-review source; returns 422.
        - name: label_evidence
          in: query
          required: false
          schema:
            type: string
            enum:
              - '1'
          description: Unavailable with this public written-review source; returns 422.
        - name: fit
          in: query
          required: false
          schema:
            type: string
            enum:
              - goal
          description: Unavailable with this public written-review source; returns 422.
        - name: goal
          in: query
          required: false
          schema:
            type: string
          description: Unavailable with this public written-review source; returns 422.
        - name: fit_tokens
          in: query
          required: false
          schema:
            type: integer
          description: Unavailable with this public written-review source; returns 422.
        - name: since
          in: query
          required: false
          schema:
            type: string
        - name: until
          in: query
          required: false
          schema:
            type: string
          description: >-
            YYYY-MM-DD; filters the current bounded source window and can yield
            an empty page with continuation.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: >-
            Opaque cursor bound to identical product/query/filter parameters; do
            not combine with page.
        - name: Cache-Control
          in: header
          required: false
          example: no-cache
          schema:
            type: string
        - name: Idempotency-Key
          in: header
          required: false
          example: 7a5e1b4c-2d8f-4a3b-9c1e-6e8b4d2a1f3c
          schema:
            type: string
        - name: X-Max-Credits
          in: header
          required: false
          description: >-
            Optional nonnegative integer cap on the maximum request hold. A live
            request whose hold exceeds this cap returns 422
            CREDIT_BUDGET_EXCEEDED before spending. Metered holds use the
            requested limit; cache hits and successful idempotent replays cost
            zero.
          schema:
            type: integer
            minimum: 0
      responses:
        '200':
          description: >-
            Read public written G2 product reviews by product slug or URL, ten
            per page, up to three pages. Preserves half-star ratings, dates,
            likes/dislikes, verified-user and incentive flags. Supports
            most-recent (also used for default), highest-rated and lowest-rated
            sorting, comma-separated stars, keywords, and since. until filters
            each returned window locally. Totals are unknown; helpfulness
            ranking, industry/region/role/segment filters and review
            analysis/enrichment are unavailable.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/SocialQueryResponse'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          items:
                            type: array
                            items:
                              type: object
                              properties:
                                review:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    entity_id:
                                      type: string
                                    url:
                                      type: string
                                    title:
                                      type:
                                        - string
                                        - 'null'
                                    text:
                                      type: string
                                    rating:
                                      type: object
                                      properties:
                                        value:
                                          type:
                                            - number
                                            - 'null'
                                          minimum: 0
                                        max:
                                          type: number
                                          const: 5
                                    author:
                                      type: object
                                      properties:
                                        name:
                                          type:
                                            - string
                                            - 'null'
                                        avatar_url:
                                          type: 'null'
                                        url:
                                          type: 'null'
                                        location:
                                          type: 'null'
                                        reviews_count:
                                          type: 'null'
                                    helpful_votes:
                                      type: 'null'
                                    verified:
                                      type:
                                        - boolean
                                        - 'null'
                                    source:
                                      type: string
                                      const: g2
                                    language:
                                      type: 'null'
                                    original_language:
                                      type: 'null'
                                    translated:
                                      type: boolean
                                      const: false
                                    images:
                                      type: array
                                      items:
                                        type: string
                                    responses:
                                      type: 'null'
                                    published_at:
                                      type:
                                        - string
                                        - 'null'
                                    ext:
                                      type: object
                                      properties:
                                        updated_at:
                                          type:
                                            - string
                                            - 'null'
                                        likes:
                                          type:
                                            - string
                                            - 'null'
                                        dislikes:
                                          type:
                                            - string
                                            - 'null'
                                        recommendations:
                                          type:
                                            - string
                                            - 'null'
                                        problems_solved:
                                          type:
                                            - string
                                            - 'null'
                                        review_source:
                                          type:
                                            - string
                                            - 'null'
                                        verified_current_user:
                                          type:
                                            - boolean
                                            - 'null'
                                        incentivized:
                                          type:
                                            - boolean
                                            - 'null'
                          returned_count:
                            type: integer
                          total:
                            type: 'null'
                          next_cursor:
                            type:
                              - string
                              - 'null'
                          window_truncated:
                            type: boolean
                          dropped:
                            type: integer
                            const: 0
                          coverage_note:
                            type: string
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '402':
          $ref: '#/components/responses/Error402'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '405':
          $ref: '#/components/responses/Error405'
        '409':
          $ref: '#/components/responses/Error409'
        '422':
          $ref: '#/components/responses/Error422'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
        '502':
          $ref: '#/components/responses/Error502'
        '503':
          $ref: '#/components/responses/Error503'
        '504':
          $ref: '#/components/responses/Error504'
components:
  schemas:
    SocialQueryResponse:
      type: object
      required:
        - success
        - platform
        - endpoint
        - credits_used
        - credits_remaining
        - request_id
        - cached
        - data
      properties:
        success:
          type: boolean
          const: true
        platform:
          type: string
        endpoint:
          type: string
        credits_used:
          type: integer
          minimum: 0
        credits_remaining:
          type:
            - integer
            - 'null'
        request_id:
          type: string
        cached:
          type: boolean
        data:
          type: object
          additionalProperties: true
          description: >-
            The selected operation determines the resource fields in this
            object. Source data can omit a metric or report it as null.
    SocialQueryError:
      type: object
      required:
        - success
        - platform
        - endpoint
        - credits_used
        - credits_remaining
        - request_id
        - cached
        - error
      properties:
        success:
          type: boolean
          const: false
        platform:
          type: string
        endpoint:
          type: string
        credits_used:
          type: integer
          minimum: 0
        credits_remaining:
          type:
            - integer
            - 'null'
        request_id:
          type: string
        cached:
          type: boolean
        error:
          type: object
          required:
            - code
            - type
            - message
            - status
            - doc_url
          properties:
            code:
              type: string
            type:
              type: string
            message:
              type: string
            status:
              type: integer
            doc_url:
              type: string
              format: uri
  responses:
    Error400:
      description: Upstream rejected the request.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error401:
      description: Missing, expired, invalid, or revoked API key.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error402:
      description: Insufficient SocialQuery credits.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error403:
      description: Key scope or provider policy denied access.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error404:
      description: Endpoint or upstream resource not found.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error405:
      description: HTTP method is not supported.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error409:
      description: Idempotency conflict or request in progress.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error422:
      description: Invalid parameters.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error429:
      description: Request limit reached.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error500:
      description: Request processing failed.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error502:
      description: Upstream service failed.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error503:
      description: Provider or required service is unavailable.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error504:
      description: Upstream service timed out.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.