# SMS log

The **SMS log**, the [**Messages**](https://bird.com/dashboard/w/sms/messages) page in the Bird dashboard, is your workspace's record of every message it has sent: every send made through [`POST /v1/sms/messages`](/docs/guides/sms/sending-sms) lands here, newest first. Use it to confirm a message went out, see where it is in the delivery lifecycle, and read its segment count, cost, and carrier detail. It is the per-message companion to the aggregate [Metrics](/docs/guides/sms/tracking-and-metrics) page: Metrics tells you the rates across everything you send, the SMS log lets you drill into a single message. The page also carries the **Send SMS** button for one-off sends from the dashboard. For a tour of where this page sits, see the [dashboard tour](/docs/knowledge-base/getting-started/dashboard-tour).

![The SMS Messages page in the Bird dashboard: a table of sent messages with status (Delivered, Undelivered), sender, recipient, message text, a category badge (AUTH, TXN, MKTG, SVC), and sent time, above a recipient search box and status and date filters](/images/docs/dashboard-sms-messages.png)

## The message list

Each row is one message. The columns are:

| Column       | What it shows                                                                                                                 |
| :----------- | :---------------------------------------------------------------------------------------------------------------------------- |
| **Status**   | The message's current delivery status (see [Statuses](#statuses)), shown as a color-coded indicator                           |
| **From**     | The sender: the number, sender ID, or short code the message was sent from                                                    |
| **To**       | The recipient's number                                                                                                        |
| **Message**  | The start of the message body (click it, or anywhere on the row, to open the message)                                         |
| **Category** | The message [category](/docs/guides/sms/sending-sms#body-and-category), shown as a short badge (`TXN`, `MKTG`, `AUTH`, `SVC`) |
| **Sent**     | When the send was accepted, as a relative time (hover for the exact timestamp)                                                |

The list is paginated, 25 messages per page; use **Prev** and **Next** to move between pages.

## Searching and filtering

A message log fills up fast, so the page leads with a recipient search and four filters. They combine: a status filter plus a date range narrows to messages matching both.

**Search by recipient.** The search box matches an **exact recipient number** in E.164 format. Type the full number you sent to (e.g. `+31612345678`) to find every message addressed to it; it is not a substring search.

**Status.** Filter to one or more delivery statuses. Status is **multi-select**, so you can, say, show everything that didn't arrive by selecting `Undelivered`, `Failed`, and `Expired` together. The options are the statuses listed in [Statuses](#statuses).

**Category.** Filter by message category: `Transactional`, `Marketing`, `Authentication`, or `Service`.

**Direction.** Filter by `Outbound` or `Inbound`. Bird SMS is outbound-only today, so every message is `Outbound`; the `Inbound` option applies once receiving is available.

**Date.** Filter by when the message was sent; pick a preset or choose a custom range from the calendar.

When a filter combination matches nothing, the page shows a no-results state with a **Clear filters** action to reset back to the full list.

## Statuses

A message's status is where it currently sits in the [delivery lifecycle](/docs/guides/sms/events). A message walks from `accepted` toward a terminal receipt.

| Status          | Meaning                                                                                     |
| :-------------- | :------------------------------------------------------------------------------------------ |
| **Accepted**    | Bird admitted the message and is preparing to hand it to a carrier                          |
| **Sent**        | Handed to the carrier; awaiting a delivery receipt                                          |
| **Delivered**   | The carrier confirmed delivery to the handset                                               |
| **Undelivered** | A non-permanent non-delivery: the handset was off, unreachable, or the content was blocked  |
| **Failed**      | A permanent failure; the message will not be delivered                                      |
| **Rejected**    | The message was refused (a policy check, a failed charge, or a carrier that turned it away) |
| **Expired**     | The message's validity window elapsed before a terminal receipt arrived                     |
| **Scheduled**   | Queued to send at a future time; applies once send-later scheduling is available            |
| **Canceled**    | A scheduled message canceled before sending; applies once scheduling is available           |
| **Received**    | An inbound message; applies once receiving is available                                     |

The indicator is color-coded: green for delivered and received, blue for in-flight (`Accepted`, `Sent`, `Scheduled`), a warning color for `Undelivered` and `Expired`, and a destructive color for `Failed`, `Rejected`, and `Canceled`.

## Inspecting a message

Click any row to open the message in a side panel. It has two tabs, **Events** and **Details**, and its header shows the message body, the current status, the recipient, and the category. While a message is still in flight, the panel refreshes itself every few seconds, so a status change or a delivery receipt appears without a manual reload.

![The SMS message detail sheet in the Bird dashboard: the Events tab showing the per-message lifecycle timeline (Accepted, Sent after 221 ms, and Delivered after 2.6 s on carrier EE) over the dimmed message list](/images/docs/dashboard-sms-detail.png)

### Events

The default tab is a timeline of everything that happened to the message, in order, each with its timestamp. This is the same event stream described in the [SMS events](/docs/guides/sms/events), rendered for one message: `Accepted`, then `Sent`, then `Delivered`, or a failure event (`Undelivered`, `Failed`, `Rejected`, `Expired`). Delivery events show the carrier and MCC/MNC (the mobile network) they were confirmed on; failure events carry their error description inline (the error code is on the Details tab), so a failed message tells you why on its own timeline.

### Details

The **Details** tab is the message's metadata:

- **Message ID**, **Direction**, **From**, **To**, and **Category**
- **Segments**: the billable segment count, the encoding (`GSM_7BIT` or `UCS2`), and the character count (see [segments and encoding](/docs/guides/sms/sending-sms#segments-and-encoding))
- **Cost**: the amount and currency, once the message has been priced
- **Carrier** and **MCC/MNC**: the delivering network, when known
- **Validity period**: the window the message stays valid for delivery, in seconds
- **Sent**, **Handed to carrier**, and **Delivered** timestamps
- **Error**: the description and code, on a message that didn't arrive
- Any **Tags** and **Metadata** you set on the send

Most fields can be copied with one click.

## The same log over the API

The list behind this page is [`GET /v1/sms/messages`](/docs/api/reference/list-sms-messages), whose filters (status, category, tag, an exact recipient, a time window) cover the same searches the page offers. The per-message timeline the Events tab renders is not part of the public API today; to reconcile programmatically, read a message with [`GET /v1/sms/messages/{message_id}`](/docs/api/reference/get-sms-message), whose `status`, `sent_at`, `delivered_at`, and `last_error` fields reflect the latest event, or consume [webhook events](/docs/guides/sms/events) as they happen.

## Next steps

- [SMS metrics](/docs/guides/sms/tracking-and-metrics): aggregate delivery, failure, segment, and spend numbers across everything you send
- [SMS events](/docs/guides/sms/events): the full event vocabulary the timeline is built from
- [Sending SMS](/docs/guides/sms/sending-sms): the send payload, including categories, tags, and metadata