# `bird amb send`

## Usage

```bash
bird amb send [flags]
```

## Description

Reply to an Apple Messages conversation

Requires an approved business and an open conversation. Queues a billable message; sent means Apple gateway acceptance. The API validates native content.

Build the request from flags, a JSON AMBMessageSendRequest body via --body-file ("-" reads
stdin), or both — a flag overrides the matching body field. Run --example to
print a ready-to-edit body, or --dry-run to print the resolved request without
sending it.

## Examples

```bash
# print the body shape (no credentials needed)
bird amb send --example

# the body it prints:
```

```json
{
  "content": {
    "body": "Your order is ready.",
    "type": "text"
  },
  "from": "b52d6267-2b62-4f8a-8842-0533d0f1dc07",
  "to": "opaque-customer-id"
}
```

## Options

#### Message

| Name        | Description                                                                           |
| ----------- | ------------------------------------------------------------------------------------- |
| `--from`    | Approved Apple business identifier (required; or in --body-file)                      |
| `--to`      | Opaque customer identifier from an open conversation (required; or in --body-file)    |
| `--content` | Native text, rich\_link, or interactive content as JSON (required; or in --body-file) |
| `--source`  | Sender identity permitted by the credential: api, automation, or operator             |

#### Labels

| Name         | Description                                                   |
| ------------ | ------------------------------------------------------------- |
| `--category` | Category label for statistics                                 |
| `--group`    | Department identifier                                         |
| `--intent`   | Purpose of the conversation                                   |
| `--locale`   | Apple locale identifier; omitted uses the conversation locale |
| `--metadata` | Per-message context as a JSON object, up to 2 KB              |
| `--tags`     | Structured labels as a JSON array of name and value objects   |

#### Request

| Name                | Description                                                  |
| ------------------- | ------------------------------------------------------------ |
| `--body-file`       | Read the JSON request body from this file; "-" reads stdin   |
| `--example`         | Print a complete example request body, then exit             |
| `--dry-run`         | Print the resolved request without sending it, then exit     |
| `--idempotency-key` | Deduplication key; a retry with the same key won't act twice |

#### Options

| Name                | Description                                      |
| ------------------- | ------------------------------------------------ |
| `--response-schema` | Print the fields this command returns, then exit |

## Related

| Name                                                          | Description               |
| ------------------------------------------------------------- | ------------------------- |
| [`bird amb get`](/docs/cli/reference/amb-get)                 | Get a message             |
| [`bird amb list`](/docs/cli/reference/amb-list)               | List messages             |
| [`bird amb list-events`](/docs/cli/reference/amb-list-events) | List events for a message |

## Related resources

- [Should I use a Bird SDK or call the API directly?](/explained/platform/should-i-use-an-sdk-or-call-the-api-directly) (answer)
- [Build your first integration](/learn/paths/integration) (course)
- [Send your first email](/docs/get-started/send-your-first-email) (docs)

[Get an implementation brief](/learn/workspace?topic=api-basics)
