# `bird sms list`

## Usage

```bash
bird sms list [flags]
```

## Description

List SMS messages, newest first, as a cursor page ({data, next_cursor, …}). Pass next_cursor back as starting_after to fetch the next page. Filter by direction, status, category, recipient, sender, or tag.

Returns a paginated JSON envelope; narrow with the filters below and page with --limit and --starting-after.

## Examples

```bash
bird sms list
bird sms list | jq -r '.data[].id'
bird sms list --limit 50 --starting-after <cursor>
```

## Options

#### Filters

| Name                     | Description                                                                                                                                                                                                                                                                                                                                   |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--category`             | Filter by category.                                                                                                                                                                                                                                                                                                                           |
| `--created-after`        | Return only resources created at or after this timestamp (inclusive lower bound). Combine with created_before to filter to a time window. RFC 3339 / ISO 8601 with timezone.                                                                                                                                                                  |
| `--created-before`       | Return only resources created strictly before this timestamp (exclusive upper bound). Combine with created_after to filter to a time window. RFC 3339 / ISO 8601 with timezone.                                                                                                                                                               |
| `--direction`            | Filter by direction. Omit for both.                                                                                                                                                                                                                                                                                                           |
| `--error-code <v1,v2,…>` | Keep only messages whose failure reason (last_error.code) matches; repeat the parameter to match any of several. One of invalid_destination, unreachable, blocked_by_carrier, blocked_by_recipient, landline_unreachable, content_rejected, sender_unregistered, recipient_opted_out, provider_unavailable, insufficient_balance, or unknown. |
| `--from`                 | Filter by sender (E.164, alphanumeric, or short code; exact match).                                                                                                                                                                                                                                                                           |
| `--response-schema`      | Print the fields this command returns, then exit                                                                                                                                                                                                                                                                                              |
| `--status <v1,v2,…>`     | Keep only messages whose current status matches; repeat the parameter to match any of several. One of scheduled, accepted, sent, delivered, undelivered, failed, rejected, canceled, expired, or received.                                                                                                                                    |
| `--tag <v1,v2,…>`        | Filter by tag. Accepts name to match any message carrying that tag name, or name:value to match a specific tag pair (e.g. category:welcome). Repeat the parameter to AND-combine several tag filters.                                                                                                                                         |
| `--to`                   | Filter by recipient phone number (E.164 exact match).                                                                                                                                                                                                                                                                                         |

#### Pagination

| Name               | Description                                                                                                                                    |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `--ending-before`  | Cursor from the prev_cursor field of a previous list response. Returns items immediately before the cursor position in the current sort order. |
| `--limit <n>`      | Maximum number of items to return per page.                                                                                                    |
| `--starting-after` | Cursor from the next_cursor field of a previous list response. Returns items immediately after the cursor position in the current sort order.  |

## Related

| Name                                            | Description                           |
| ----------------------------------------------- | ------------------------------------- |
| [`bird sms get`](/docs/cli/reference/sms-get)   | Get an SMS message                    |
| [`bird sms send`](/docs/cli/reference/sms-send) | Send an SMS message to one recipient. |