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

# List Signal Reactions

> List reactions users have set on this brand's signals, newest first. This is **brand-wide** — it returns every user's reactions, not just the caller's — so an integration can export the team's aggregate feedback. Filter by `fingerprint` to get reactions for one signal identity, or by `reaction` to get e.g. everything marked `useful`.



## OpenAPI

````yaml /api-reference/openapi.json get /{brand_id}/signals/reactions
openapi: 3.1.0
info:
  title: Scrunch Data API
  version: 0.1.0
servers:
  - url: https://api.scrunchai.com/v1
security: []
paths:
  /{brand_id}/signals/reactions:
    get:
      tags:
        - signals
      summary: List Signal Reactions
      description: >-
        List reactions users have set on this brand's signals, newest first.
        This is **brand-wide** — it returns every user's reactions, not just the
        caller's — so an integration can export the team's aggregate feedback.
        Filter by `fingerprint` to get reactions for one signal identity, or by
        `reaction` to get e.g. everything marked `useful`.
      operationId: listSignalReactions
      parameters:
        - name: brand_id
          in: path
          required: true
          schema:
            type: integer
            title: Brand Id
        - name: fingerprint
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Only reactions on this signal fingerprint.
            title: Fingerprint
          description: Only reactions on this signal fingerprint.
        - name: reaction
          in: query
          required: false
          schema:
            anyOf:
              - enum:
                  - useful
                  - not_useful
                  - dismissed
                  - actioned
                type: string
              - type: 'null'
            description: Only reactions with this value.
            title: Reaction
          description: Only reactions with this value.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 200
            minimum: 1
            description: Maximum number of reactions to return.
            default: 50
            title: Limit
          description: Maximum number of reactions to return.
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
            description: Number of reactions to skip (pagination).
            default: 0
            title: Offset
          description: Number of reactions to skip (pagination).
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionResponse_APISignalReaction_'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer:
            - query
components:
  schemas:
    CollectionResponse_APISignalReaction_:
      properties:
        total:
          type: integer
          title: Total
        offset:
          type: integer
          title: Offset
          default: 0
        limit:
          anyOf:
            - type: integer
            - type: 'null'
          title: Limit
        items:
          items:
            $ref: '#/components/schemas/APISignalReaction'
          type: array
          title: Items
        metadata:
          anyOf:
            - $ref: '#/components/schemas/TimeSeriesMetadata'
            - type: 'null'
      type: object
      required:
        - total
        - items
      title: CollectionResponse[APISignalReaction]
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    APISignalReaction:
      properties:
        user_id:
          type: integer
          title: User Id
          description: ID of the user the reaction belongs to.
        insight_id:
          type: integer
          title: Insight Id
          description: Signal ID the reaction was last set on.
        fingerprint:
          type: string
          title: Fingerprint
          description: Stable signal identity the reaction follows across re-detections.
        reaction:
          type: string
          enum:
            - useful
            - not_useful
            - dismissed
            - actioned
          title: Reaction
          description: The reaction value.
        reason:
          anyOf:
            - type: string
            - type: 'null'
          title: Reason
          description: Free-text reason, when provided.
        surface:
          type: string
          enum:
            - in_app
            - email
            - slack
            - api
          title: Surface
          description: 'Where the reaction was set: `in_app`, `email`, `slack`, or `api`.'
        created_at:
          type: string
          format: date-time
          title: Created At
          description: When the reaction was first set (UTC).
        updated_at:
          type: string
          format: date-time
          title: Updated At
          description: When the reaction was last changed (UTC).
      type: object
      required:
        - user_id
        - insight_id
        - fingerprint
        - reaction
        - surface
        - created_at
        - updated_at
      title: APISignalReaction
      description: A user's reaction to a signal's stable identity.
    TimeSeriesMetadata:
      properties:
        aggregation_granularity:
          $ref: '#/components/schemas/AggregationGranularity'
          description: 'The aggregation granularity: daily, weekly, or monthly'
        period_count:
          type: integer
          title: Period Count
          description: The number of periods in the time series
        start_date:
          type: string
          format: date-time
          title: Start Date
          description: The start date of the time series
        end_date:
          type: string
          format: date-time
          title: End Date
          description: The end date of the time series
        top_domains:
          anyOf:
            - $ref: '#/components/schemas/TopDomainsMetadata'
            - type: 'null'
          description: Top domains metadata (only populated by sources/domains endpoints)
      type: object
      required:
        - aggregation_granularity
        - period_count
        - start_date
        - end_date
      title: TimeSeriesMetadata
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    AggregationGranularity:
      type: string
      enum:
        - daily
        - weekly
        - monthly
    TopDomainsMetadata:
      properties:
        domains:
          items:
            $ref: '#/components/schemas/TopDomainSummary'
          type: array
          title: Domains
          description: Top domains by observation count (always domain-level aggregated)
        grand_total:
          type: integer
          title: Grand Total
          description: Total observation count across all domains (for calculating 'Other')
        owner_totals:
          additionalProperties:
            type: integer
          type: object
          title: Owner Totals
          description: Observation counts by owner type (brand, competitor, other)
        owner_time_series:
          anyOf:
            - items:
                $ref: '#/components/schemas/OwnerTimeSeriesPoint'
              type: array
            - type: 'null'
          title: Owner Time Series
          description: Time series data by owner type for trend visualization
        segment_totals:
          items:
            $ref: '#/components/schemas/SegmentTotal'
          type: array
          title: Segment Totals
          description: >-
            Server-side observation counts per citation segment (covers all
            domains, not just top-N)
      type: object
      required:
        - domains
        - grand_total
        - owner_totals
      title: TopDomainsMetadata
      description: Metadata about top domains, used by sources/domains endpoints.
    TopDomainSummary:
      properties:
        domain:
          type: string
          title: Domain
        domain_owner:
          type: string
          title: Domain Owner
        observation_count:
          type: integer
          title: Observation Count
      type: object
      required:
        - domain
        - domain_owner
        - observation_count
      title: TopDomainSummary
    OwnerTimeSeriesPoint:
      properties:
        time_bucket:
          type: string
          title: Time Bucket
          description: Date string for the time bucket (YYYY-MM-DD)
        brand:
          type: integer
          title: Brand
          description: Observation count for brand-owned domains
        competitor:
          type: integer
          title: Competitor
          description: Observation count for competitor-owned domains
        other:
          type: integer
          title: Other
          description: Observation count for third-party domains
      type: object
      required:
        - time_bucket
        - brand
        - competitor
        - other
      title: OwnerTimeSeriesPoint
      description: A single time bucket with observation counts by owner type.
    SegmentTotal:
      properties:
        name:
          type: string
          title: Name
        observation_count:
          type: integer
          title: Observation Count
      type: object
      required:
        - name
        - observation_count
      title: SegmentTotal
      description: Observation count for a citation segment, computed server-side.
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````

## Related topics

- [Set Signal Reaction](/api-reference/signals/set-signal-reaction.md)
- [Clear Signal Reaction](/api-reference/signals/clear-signal-reaction.md)
- [Signals API: Detected changes in AI visibility](/api-reference/signals/overview.md)
