List events for a WhatsApp message
/v1/whatsapp/messages/{message_id}/eventsconst { data } = await bird.whatsapp.listEvents("wa_abc123");
for (const event of data) console.log(event.type, event.occurred_at);events = client.whatsapp.list_events("wa_abc123")
for event in events.data:
print(event.type, event.occurred_at)events, err := client.Whatsapp.ListEvents(context.Background(), "wam_01krdgeqcxet5s7t44vh8rt9mg", bird.WhatsappListEventsParams{})
if err != nil {
log.Fatal(err)
}
for _, e := range events.Data {
fmt.Println(e.Id, e.Type)
}$events = $bird->whatsapp->listEvents('wamid_01krdgeqcxet5s7t44vh8rt9mg');
foreach ($events->getData() ?? [] as $event) {
echo $event->getType(), ' ', $event->getId(), "\n";
}bird whatsapp list-events <message-id>curl -X GET "https://us1.platform.bird.com/v1/whatsapp/messages/{message_id}/events" \
-H "Authorization: Bearer $TOKEN"{
"data": [
{
"id": "ev_01kya19f8p2hs5w1y7k4cmqrtv",
"type": "whatsapp.sent",
"occurred_at": "2026-09-15T14:03:11Z"
},
{
"id": "ev_01kya19f2m8xqe4v0t6r3bnpcd",
"type": "whatsapp.delivered",
"occurred_at": "2026-09-15T14:03:12Z",
"recipient": {
"phone_number": "+15550002222",
"bsuid": "US.AbC1"
}
}
]
}
Returns a WhatsApp message's lifecycle events in chronological order, one entry per delivery transition (whatsapp.accepted, whatsapp.sent, whatsapp.delivered, whatsapp.read, whatsapp.failed). The timeline is bounded and returned in full, so this list is not paginated; an unknown message ID returns 404. For the message's current state in a single field, use Get a WhatsApp message instead.
Paramètres
message_idstringID of the message, as returned in the send response's id field.
Paramètres de requête
typestringKeep only events of this exact type (for example whatsapp.delivered or whatsapp.failed). Omit for the full timeline.
Possible values (may grow over time): whatsapp.accepted, whatsapp.delivered, whatsapp.failed, whatsapp.read, whatsapp.received, whatsapp.rejected, whatsapp.sent
Contenu de la réponse
dataTimeline events for this WhatsApp message, in chronological order. The timeline is bounded and returned in full; this list is not paginated.
Afficher les attributs enfants
data.idID of the event, unique within the message's timeline.
data.typeMessage timeline event type:
whatsapp.accepted: The API accepted the request.whatsapp.sent: The message reached the WhatsApp network.whatsapp.delivered: Delivery to the recipient's device was confirmed.whatsapp.read: The message was read. On an outbound message the recipient opened it; on an inbound one Bird acknowledged it to WhatsApp for the business, which is what a read receipt records.whatsapp.failed: Delivery failed permanently.whatsapp.rejected: The message was refused before sending and not charged.whatsapp.received: An inbound message arrived from the contact.
This is an open enum. Accept unrecognized values.
Possible values (may grow over time): whatsapp.accepted, whatsapp.delivered, whatsapp.failed, whatsapp.read, whatsapp.received, whatsapp.rejected, whatsapp.sent
data.occurred_atWhen this event occurred.
data.recipientThe participant this confirmation is about, on a group message. Present only on whatsapp.delivered and whatsapp.read, the two events a group send fans out: one per participant, so a group of eight produces up to eight of each. The rest describe the message as a whole and carry no recipient, because there is one hand-off to the WhatsApp network and one way for that to be refused. Absent on a one-to-one message, whose to already names its recipient. Never carries group_id: the group belongs to the message's to, not to a participant.
data.errorFailure detail. Present only on whatsapp.failed and whatsapp.rejected events.
Ressources associées
Poursuivez avec la documentation, les guides et les exemples sur ce sujet.