Sign inGet Started

List events for a WhatsApp message

GET
/v1/whatsapp/messages/{message_id}/events
const { data } = await bird.whatsapp.listEvents("wa_abc123");
for (const event of data) console.log(event.type, event.occurred_at);
Réponse200
{
  "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_idstring

ID of the message, as returned in the send response's id field.

Paramètres de requête

typestring

Keep 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

data
array of object
obligatoire

Timeline 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.id
string
obligatoire

ID of the event, unique within the message's timeline.

data.type
string
obligatoire

Message 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_at
string
obligatoire

When this event occurred.

data.recipient
object

The 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.

Afficher les attributs enfants
data.error
nullable object

Failure detail. Present only on whatsapp.failed and whatsapp.rejected events.

Afficher les attributs enfants