> ## 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.added

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

`reaction.added` fires when a contact adds a reaction to 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

Attach the reaction to part `part_index` of message `message_id` in your stored copy. `is_from_me` is `true` when your own agent reacted, which you can ignore. A `custom` reaction carries its emoji in `custom_emoji`; the six standard tapbacks carry `null` there.

## Next steps

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