List events for a WhatsApp message
GET
/v1/whatsapp/messages/{message_id}/events
curl -X GET "https://us1.platform.bird.com/v1/whatsapp/messages/{message_id}/events" \
-H "Authorization: Bearer $TOKEN"Returns the lifecycle event timeline for a WhatsApp message, in chronological order.
Parámetros
message_id
string
Message ID.
Parámetros de consulta
type
string
Filter by event type (e.g. whatsapp.delivered, whatsapp.failed).
Carga de respuesta
data
array of object
obligatorio
Timeline events for this WhatsApp message, in chronological order. The timeline is bounded and returned in full — this list is not paginated.
Mostrar atributos secundarios
data.id
string
obligatorio
Event ID.
data.type
string
obligatorio
Lifecycle event type. whatsapp.accepted — Bird accepted the request. whatsapp.sent — handed to the WhatsApp network. whatsapp.delivered — delivery confirmed to the recipient's device. whatsapp.read — the recipient opened the message (this does not change the message status, which never becomes read). whatsapp.failed — terminal permanent failure. Open enum — new event types may be added over time, so treat any unrecognized value as a future event rather than an error.
data.occurred_at
string
obligatorio
When this event occurred.
data.error
nullable object
obligatorio
Failure detail. Present on whatsapp.failed events; null otherwise.
Mostrar atributos secundarios
data.error.code
string
obligatorio
Bird-stable failure reason, uniform whether the failure happened internally or was reported by the WhatsApp network. insufficient_balance — the workspace could not afford the send. price_not_found — no price was configured for this destination/template combination. internal_error — an unexpected Bird-side failure. undeliverable — the recipient could not be reached (e.g. not on WhatsApp, number invalid). service_window_expired — the 24-hour customer care window has closed and a free-form message cannot be sent; send a template instead. rate_limited — the send was throttled.
data.error.description
string
obligatorio
Human-readable explanation of the failure.
data.error.occurred_at
string
obligatorio
When the failure occurred.