---
title: "Mark messages as read"
description: "Mark inbound messages as read."
---

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

# Mark messages as read

Mark a customer's message as read so their WhatsApp shows blue ticks after your team has seen it.

## At a glance

| Item | Detail |
| --- | --- |
| `type` | `mark_as_read` |
| Channel support | Official and unofficial |
| `content.message_id` | Provider message ID of the inbound message |

## Request body

| Field | Required | Description |
| --- | --- | --- |
| `channel_id` | Yes | Sender channel ID |
| `to` | Yes | Recipient phone number (conversation peer) |
| `type` | Yes | `mark_as_read` |
| `content.message_id` | Yes | Message to mark as read |

## Example

### cURL

```bash
curl -X POST "https://api.wazapin.com/v1/messages" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
"channel_id": "wzp_abc123",
"to": "6281234567890",
"type": "mark_as_read",
"content": {
  "message_id": "wamid.HBgL..."
}
  }'
```
### TypeScript

```typescript
import { WazapinClient } from "@wazapin/sdk";

const wazapin = new WazapinClient({ apiKey: process.env.WAZAPIN_API_KEY! });

await wazapin.messages.read({
  channel_id: "wzp_abc123",
  message_id: "wamid.HBgL...",
  to: "6281234567890",
});
```
### Python

```python
import requests

requests.post(
"https://api.wazapin.com/v1/messages",
headers={"X-Api-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
json={
    "channel_id": "wzp_abc123",
    "to": "6281234567890",
    "type": "mark_as_read",
    "content": {"message_id": "wamid.HBgL..."},
},
timeout=30,
).raise_for_status()
```

Source: https://docs.wazapin.id/getting-started/mark-messages-read/index.mdx
