> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs-parschat.parstechai.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs-parschat.parstechai.com/_mcp/server.

# reaction

POST 

A reaction was added to or removed from a message. `action` tells you which, so one handler covers both: apply it on `added`, undo it on `removed`.

The two payloads are identical apart from `action`, so match on (`message_id`, `emoji`, `by.id`) to find the reaction you stored.

Reference: https://docs-parschat.parstechai.com/api-reference/webhook-events/reaction-webhook

## Request

### Payload

- `schema_version` (string, optional) — Semver for the payload shape. Fields are added without a major bump; nothing is removed or repurposed without one.
- `event` (string, optional) — Which event this is.
- `delivery_id` (string, optional) — Unique per delivery attempt. Log it, and use it to detect a redelivery.
- `occurred_at` (datetime, optional) — When the event happened.
- `robot_id` (string, optional) — The robot it belongs to.
- `external_id` (string, optional) — Your own id for that robot, echoed on every event so you never need a lookup table.
- `channel_id` (string, optional) — The channel it arrived on.
- `data` (WebhooksReactionWebhookPayloadContentApplicationJsonSchemaData, optional)

## Types

### WebhooksReactionWebhookPayloadContentApplicationJsonSchemaData

- `conversation_id` (string, optional) — The conversation.
- `message_id` (string, optional) — The message reacted to.
- `action` (enum, optional) — Whether it was added or removed.
  - Allowed values: `added`, `removed`
- `emoji` (string, optional) — The reaction itself.
- `by` (WebhooksReactionWebhookPayloadContentApplicationJsonSchemaDataBy, optional) — Who reacted.

### WebhooksReactionWebhookPayloadContentApplicationJsonSchemaDataBy

Who reacted.

- `id` (string, optional)
- `username` (string, optional)