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

# reaction.removed

> Read the reaction.removed data payload and its fields.

`reaction.removed` fires when a contact removes a reaction from one part of a message.

## Read the payload

The `data` object is the `ReactionEventBase` schema from the API contract. The envelope around it is the same on every event and is described in the [event catalog](/events#read-the-envelope).

| Field           | Meaning                                                                         |
| --------------- | ------------------------------------------------------------------------------- |
| `chat_id`       | Chat ID                                                                         |
| `from_handle`   | The handle that added or removed the reaction                                   |
| `message_id`    | Message containing the affected part                                            |
| `part_index`    | Zero-based index of the affected part                                           |
| `reaction_type` | One of `love`, `like`, `dislike`, `laugh`, `emphasize`, `question`, or `custom` |
| `custom_emoji`  | The emoji for a `custom` reaction, otherwise `null`                             |
| `is_from_me`    | Whether the reacting contact is your agent                                      |
| `reacted_at`    | When the reaction was added or removed                                          |

## Handle the event

Remove the matching reaction from part `part_index` of message `message_id`; the payload names the same `reaction_type` and `from_handle` the `reaction.added` event carried. Treat a removal for a reaction you never stored as already done.

## Next steps

* [Send reactions](/messages/reactions)
* [Read the reaction.added event](/events/reaction-added)
* [Choose an event type](/events)
