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

# Polls and message actions

> Create polls, vote on polls, react, edit, revoke, pin, and keep messages.

## Create a poll

```http theme={null}
POST /api/v1/sessions/{sessionId}/messages/poll
Authorization: Bearer <api_key>
Content-Type: application/json
Idempotency-Key: <unique-message-key>
```

```json theme={null}
{
  "to": "120363000000000000@g.us",
  "content": {
    "type": "poll",
    "name": "Lunch?",
    "options": ["Pizza", "Sushi"],
    "selectableCount": 1
  }
}
```

## Vote on a poll

```http theme={null}
POST /api/v1/sessions/{sessionId}/messages/poll/vote
Authorization: Bearer <api_key>
Content-Type: application/json
```

```json theme={null}
{
  "to": "120363000000000000@g.us",
  "poll": {
    "id": "3EB0A1B2C3D4E5F6",
    "fromMe": false,
    "authorJid": "15551234567@s.whatsapp.net",
    "messageSecretBase64": "base64-message-secret"
  },
  "selectedOptionNames": ["Pizza"]
}
```

## React to a message

```http theme={null}
POST /api/v1/sessions/{sessionId}/messages/react
Authorization: Bearer <api_key>
Content-Type: application/json
```

```json theme={null}
{
  "to": "15551234567",
  "target": {
    "remoteJid": "15551234567@s.whatsapp.net",
    "id": "3EB0A1B2C3D4E5F6",
    "fromMe": false
  },
  "emoji": "👍"
}
```

Use an empty `emoji` string to remove your reaction.

## Edit a message

```http theme={null}
PATCH /api/v1/sessions/{sessionId}/messages/edit
Authorization: Bearer <api_key>
Content-Type: application/json
Idempotency-Key: <unique-message-key>
```

```json theme={null}
{
  "to": "15551234567",
  "target": {
    "id": "3EB0A1B2C3D4E5F6"
  },
  "content": {
    "type": "text",
    "text": "Corrected text"
  }
}
```

## Target a message

These endpoints share the same target shape:

| Action              | Endpoint                                            |
| ------------------- | --------------------------------------------------- |
| Delete for everyone | `POST /api/v1/sessions/{sessionId}/messages/revoke` |
| Pin                 | `POST /api/v1/sessions/{sessionId}/messages/pin`    |
| Unpin               | `POST /api/v1/sessions/{sessionId}/messages/unpin`  |
| Keep                | `POST /api/v1/sessions/{sessionId}/messages/keep`   |
| Unkeep              | `POST /api/v1/sessions/{sessionId}/messages/unkeep` |

```json theme={null}
{
  "to": "15551234567",
  "target": {
    "remoteJid": "15551234567@s.whatsapp.net",
    "id": "3EB0A1B2C3D4E5F6",
    "fromMe": true
  }
}
```

For pinning, you may include `durationSecs`.

## Delete for me

```http theme={null}
POST /api/v1/sessions/{sessionId}/messages/delete-for-me
Authorization: Bearer <api_key>
Content-Type: application/json
```

```json theme={null}
{
  "message": {
    "chatJid": "15551234567@s.whatsapp.net",
    "id": "3EB0A1B2C3D4E5F6",
    "fromMe": false
  },
  "deleteMedia": true
}
```
