---
title: "Set Signal Reaction"
method: PUT
path: "/{brand_id}/signals/{signal_id}/reaction"
tags: ["signals"]
---

# Set Signal Reaction

`PUT /{brand_id}/signals/{signal_id}/reaction`

## Request

- Base URL: `https://api.scrunchai.com/v1`
- URL: `https://api.scrunchai.com/v1/{brand_id}/signals/{signal_id}/reaction`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/scrunch/apis/scrunch-data-api/docs/:brand_id/signals/:signal_id/reaction/put.ts> (a function with typed inputs; its response is checked against the schema)

Set (or replace) the calling user's reaction on a signal. Reactions are keyed on the signal's stable `fingerprint`, so a reaction survives the nightly re-detection of the same underlying issue.

Requires a **user token** (JWT) — API keys have no user identity to attribute the reaction to and receive 403.

## Path parameters

- `brand_id` integer, required
- `signal_id` integer, required

## Request body

- APISignalReactionUpsert: Request body for `setSignalReaction`.
  - `reaction` 'useful' | 'not_useful' | 'dismissed' | 'actioned', required: Reaction to set: `useful`, `not_useful`, `dismissed`, or `actioned`.
  - `reason` string, nullable: Optional free-text reason accompanying the reaction.

## Response `200`

Successful Response

- APISignalReaction: A user's reaction to a signal's stable identity.
  - `user_id` integer, required: ID of the user the reaction belongs to.
  - `insight_id` integer, required: Signal ID the reaction was last set on.
  - `fingerprint` string, required: Stable signal identity the reaction follows across re-detections.
  - `reaction` 'useful' | 'not_useful' | 'dismissed' | 'actioned', required: The reaction value.
  - `reason` string, nullable: Free-text reason, when provided.
  - `surface` 'in_app' | 'email' | 'slack' | 'api', required: Where the reaction was set: `in_app`, `email`, `slack`, or `api`.
  - `created_at` string, date-time, required: When the reaction was first set (UTC).
  - `updated_at` string, date-time, required: When the reaction was last changed (UTC).

## Other responses

- `422`: Validation Error

## Changes

- **2026-11-03** `e37811b6bc07`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/scrunch/apis/scrunch-data-api/changes/:brand_id/signals/:signal_id/reaction/put.md)

---

[API](https://skmtc.dev/scrunch/apis/scrunch-data-api.md) - [All operations](https://skmtc.dev/scrunch/apis/scrunch-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/scrunch/apis/scrunch-data-api/revisions/e28a10a186bf?raw)
