Sign inGet started

Mark message as read

Acknowledge a contact's WhatsApp message when you have read it or started handling their request. You can also show a typing indicator while preparing a reply.

Prerequisites

You need an API key with WhatsApp write permission and the Bird message ID (wam_…) of a message your workspace received. Use data.whatsapp_id from the whatsapp.received webhook, or the message's id from the WhatsApp log.
Replace the example message ID with the ID of a message your workspace received. Initialize the client for your language using the TypeScript, Python, Go, or PHP SDK guide. For CLI examples, install and authenticate the CLI with WhatsApp write access. Use the API host for your workspace region in cURL requests.

1. Mark the received message as read

Call Mark a message read with the received message ID. WhatsApp also marks earlier messages in the same conversation as read, so choose the message that represents how far you have read.
const acknowledgement = await bird.whatsapp.markRead("wam_01krdgeqcxet5s7t44vh8rt9mg", {});
console.log(acknowledgement.typing_indicator);
A successful request returns 202 with typing_indicator: false. The acknowledgement is accepted for processing; the response does not confirm that the contact has seen it. Read acknowledgements create no billable outbound message.

2. Show typing while preparing a reply

To mark the message read and show typing, pass typing_indicator: true in the same request:
await bird.whatsapp.markRead("wam_01krdgeqcxet5s7t44vh8rt9mg", {
  typing_indicator: true,
});
WhatsApp clears the indicator when you send a message or after 25 seconds. Repeating the call is safe. To refresh typing, omit Idempotency-Key or use a new key; replaying an earlier request does not refresh the indicator.

3. Check the received message

Retrieve the message to inspect read_at. After WhatsApp accepts the acknowledgement, the received message can carry this timestamp while keeping its received status. There is no separate acknowledgement resource or delivery webhook to track.

Troubleshooting

  • 404 (E15071): Check the message ID and workspace. Bird can resolve a message for acknowledgement for 15 days; an older message cannot be marked read through this operation.
  • 422 (E15074): Use an inbound message your workspace can acknowledge. An outbound message is not an eligible target.
  • 503 (E15073): Retry after a temporary failure to resolve the message.

Next steps