List events for an SMS message
GET
/v1/sms/messages/{message_id}/eventsconst events = await bird.sms.listEvents("sms_abc123");
for (const event of events.data ?? []) {
console.log(event.type, event.occurred_at);
}events = client.sms.list_events("sms_abc123")
for event in events.data:
print(event.type, event.occurred_at)events, err := client.Sms.ListEvents(context.Background(), "sms_01j9x2k3m4n5p6q7r8s9t0v1w2", bird.SmsListEventsParams{})
if err != nil {
log.Fatal(err)
}
for _, e := range events.Data {
fmt.Println(*e.Type, *e.OccurredAt)
}$events = $bird->sms->listEvents('sms_abc123');
foreach ($events->getData() ?? [] as $event) {
echo $event->getType(), ' ', $event->getOccurredAt()?->format(DATE_ATOM), PHP_EOL;
}bird sms list-events <message-id>curl -X GET "https://us1.platform.bird.com/v1/sms/messages/{message_id}/events" \
-H "Authorization: Bearer $TOKEN"Response200
{
"data": [
{
"id": "evt_01krdgeqcxet5s7t44vh8rt9mg",
"type": "sms.delivered",
"occurred_at": "2026-05-21T12:00:04Z",
"carrier": "Verizon",
"mcc_mnc": "311480",
"error": {
"code": "invalid_destination",
"description": "Carrier filtered as spam"
}
}
]
}
Returns the lifecycle event timeline for a message, in chronological order.
Parameters
message_idstringID of the SMS message (sms_ prefix), as returned when the message was accepted.
Query Parameters
typestringFilter by event type, such as sms.delivered or sms.failed.
Response Payload
dataarray of object
required
Timeline events for this SMS message, in chronological order. The bounded timeline is returned in full and is not paginated.
Related resources
Continue with the documentation, guides and examples for this topic.