## Add or remove a reaction to a message

`client.messages.addReaction(stringmessageID, MessageAddReactionParamsbody, RequestOptionsoptions?): MessageAddReactionResponse`

**post** `/v3/messages/{messageId}/reactions`

Add or remove emoji reactions to messages. Reactions let users express
their response to a message without sending a new message.

**Supported Reactions:**

- love ❤️
- like 👍
- dislike 👎
- laugh 😂
- emphasize ‼️
- question ❓
- custom - any emoji (use `custom_emoji` field to specify)

### Parameters

- `messageID: string`

- `body: MessageAddReactionParams`

  - `operation: "add" | "remove"`

    Whether to add or remove the reaction

    - `"add"`

    - `"remove"`

  - `type: ReactionType`

    Type of reaction. Standard iMessage tapbacks are love, like, dislike, laugh, emphasize, question.
    Custom emoji reactions have type "custom" with the actual emoji in the custom_emoji field.
    Sticker reactions have type "sticker" with sticker attachment details in the sticker field.

    - `"love"`

    - `"like"`

    - `"dislike"`

    - `"laugh"`

    - `"emphasize"`

    - `"question"`

    - `"custom"`

    - `"sticker"`

  - `custom_emoji?: string`

    Custom emoji string. Required when type is "custom".

  - `part_index?: number`

    Optional index of the message part to react to.
    If not provided, reacts to the entire message (part 0).

### Returns

- `MessageAddReactionResponse`

  - `message?: string`

  - `status?: string`

  - `trace_id?: string`

### Example

```typescript
import LinqAPIV3 from '@linqapp/sdk';

const client = new LinqAPIV3({
  apiKey: process.env['LINQ_API_V3_API_KEY'], // This is the default and can be omitted
});

const response = await client.messages.addReaction('69a37c7d-af4f-4b5e-af42-e28e98ce873a', {
  operation: 'add',
  type: 'love',
});

console.log(response.trace_id);
```

#### Response

```json
{
  "message": "Reaction processed",
  "status": "accepted",
  "trace_id": "trace_id"
}
```
