Sign inGet started

Mark a WhatsApp message as read

POST
/v1/whatsapp/messages/{message_id}/read
const ack = await bird.whatsapp.markRead("wam_01krdgeqcxet5s7t44vh8rt9mg", {
  typing_indicator: true,
});
ack.typing_indicator; // true
Response202
{
  "typing_indicator": true
}
Marks an inbound WhatsApp message as read, showing the contact the blue ticks. WhatsApp also marks every earlier message in that conversation read.
Pass typing_indicator: true to show a typing indicator as well. WhatsApp clears it when you send your next message, or after 25 seconds, whichever comes first, and there is no call to clear it early, so ask for one only when you are about to reply. WhatsApp cannot show a typing indicator without a read receipt, so both arrive together.
The acknowledgement is sent asynchronously: a 202 means Bird accepted the request, not that WhatsApp has shown it. Nothing reports back, because WhatsApp publishes no delivery, status or failure callback for an acknowledgement, so there is nothing to poll and no webhook event. Repeating the call is safe, and each call restarts the 25-second typing window. To refresh the indicator, send a fresh Idempotency-Key or none at all: a replayed key answers from the stored response without acknowledging anything again.
Only an inbound message can be marked read. WhatsApp allows this for 30 days after receipt, but Bird keeps the provider id a receipt needs for 15 days, so a message older than that answers 404. A message Bird sent, or one that never reached WhatsApp, answers 422.
Parameters
message_id
string
ID of the inbound message to acknowledge.
Request Payload
typing_indicator
boolean
Show a typing indicator to the contact as well as marking the message read. WhatsApp clears it when you send your next message, or after 25 seconds, whichever comes first. Only ask for one if you are about to reply.
Response Payload
typing_indicator
boolean
required
Whether a typing indicator was requested alongside the read receipt.