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.
Parameters
message_id
string
Message ID.
Queryparameters
type
string
Filter by event type (e.g. whatsapp.delivered, whatsapp.failed).
Response Payload
data
array of object
verplicht
Timeline events for this WhatsApp message, in chronological order. The timeline is bounded and returned in full — this list is not paginated.
Onderliggende attributen tonen
data.id
string
verplicht
Event ID.
data.type
string
verplicht
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
verplicht
When this event occurred.
data.error
nullable object
verplicht
Failure detail. Present on whatsapp.failed events; null otherwise.
Onderliggende attributen tonen
data.error.code
string
verplicht
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
verplicht
Human-readable explanation of the failure.
data.error.occurred_at
string
verplicht
When the failure occurred.