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