> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bland.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Send SMS Message

> Send an SMS message from an agent to a user. This creates or resumes a conversation and triggers processing workflows.

> [!NOTE]
>
> SMS is available on Enterprise plans and on the [Agent Phone Plan](https://docs.bland.ai/platform/agent-phone-plan.md). WhatsApp and iMessage are Enterprise only. Contact your Bland representative for Enterprise access.

### Headers

**authorization** `string` *required*

Your API key for authentication.

**idempotency-key** `string`

A unique key to prevent duplicate message sends. When provided, repeated requests with the same key will return successfully but will not send an additional message or incur extra charges. Useful for safely retrying failed requests without risk of double-sending.

### Body Parameters

**user\_number** `string` *required*

The E.164 formatted phone number of the user receiving the message.

**agent\_number** `string` *required*

The E.164 formatted phone number used to send the message (must belong to the authenticated account).

**agent\_message** `string`

The content of the SMS message to send. If not passed in, the message is generated from the conversation's pathway, persona, or `objective`, or from the number's prompt.

**objective** `string`

The goal of this conversation, for example "Book a haircut for Tuesday afternoon and confirm the price." Replies in the conversation are generated from it instead of the number's prompt, and so is the first message when you omit `agent_message`. Up to 20,000 characters.

A later send to the same conversation with a new `objective` replaces it, and a send without one keeps it. Set `new_conversation` to `true` to start a thread without it. A `persona_id` or `pathway_id`, on the request or on the number, takes priority: those replies don't use the objective.

An objective that is not a string, is empty, or is longer than 20,000 characters is rejected with a `400` and error code `INVALID_OBJECTIVE`.

**request\_data** `object`

Optional metadata to associate with the conversation or message. Used for custom routing or analytics.

**new\_conversation** `boolean`

Allows you to create a new conversation, archiving the existing conversation and ignores existing sms messages.

**persona\_id** `string`

UUID of a persona to use for this conversation. When provided, the persona's configuration is applied instead of the number's SMS config. Use `persona_version` to select which version to use.

Cannot be used as a substitute for `agent_number` — the agent number must still belong to your account. The persona\_id controls *how* the conversation is handled, not *which number* sends it.

**persona\_version** `string`

Which version of the persona to use. Allowed values: `"production"` (default), `"draft"`.

**persona\_settings** `object`

Per-dispatch persona overrides. Takes priority over any pathway settings on the persona version or the `pathway_id` field below.

**persona\_settings object**

**pathway\_id** `string`

Override the persona's pathway for this dispatch.

**pathway\_version** `number`

Specific version of the override pathway to use.

**start\_node\_id** `string`

Specific node to start from within the override pathway.

**pathway\_id** `string`

ID of the pathway to use for generating the SMS response. If `persona_id` is provided, this is used as a pathway override within the persona context (lower priority than `persona_settings`).

**pathway\_version** `number`

Version of the pathway to use.

**start\_node\_id** `string`

ID of the specific node within the pathway to start from.

**webhook** `string`

This overrides the webhook for the conversation, instead of using the webhook attached to the phone number.

**metadata** `object`

Custom metadata to attach to the conversation. This data is returned in all webhook payloads (message and status webhooks), making it useful for correlating conversations with your internal systems.

**disposition\_ids** `string[]`

An array of outcome IDs to run when the conversation ends. If omitted, the outcomes configured on the SMS number are used. If provided, overrides the number's configuration. See [Outcomes](https://docs.bland.ai/tutorials/outcomes.md) for details.

**citation\_schema\_ids** `string[]`

An array of citation schema IDs to extract when the conversation ends. If omitted, the citation schemas configured on the SMS number are used. If provided, overrides the number's configuration. See [Citations](https://docs.bland.ai/enterprise-features/citations.md) for details.

**channel** `string`

The channel to send the message on. Defaults to "sms".
Allowed values: "sms", "whatsapp", "imessage".

For numbers provisioned for iMessage, the channel is auto-derived from the number's configuration, so you don't need to set this explicitly. See [iMessage](https://docs.bland.ai/tutorials/messaging/imessage.md) for details.

**content\_sid** `string`

The Twilio SID of the content to send, usually in HXXXX format.

**content\_variables** `object`

The variables to send with the content.
Example:

```json theme={null}
{
  "1": "John",
  "2": "Smith", 
  "3": "Premium Plan"
}
```

**time\_out** `number`

Per-conversation timeout override, in seconds. When the user goes silent for this long after an agent message, the timeout flow fires (warning message and/or conversation end). Takes priority over the `time_out` on the number's sms\_config/whatsapp\_config. Persists on the conversation, so subsequent turns use the same override until another `/send` or `/create` replaces it.

**timeout\_message** `string`

Per-conversation override for the message sent when the timeout fires. Takes priority over `timeout_message` on sms\_config/whatsapp\_config.

**warning\_time** `number`

Per-conversation override for how long, in seconds, to wait before sending the warning message. Must be less than `time_out`; the request is rejected with `INVALID_TIMEOUT_CONFIG` otherwise. Takes priority over `warning_time` on sms\_config/whatsapp\_config.

**warning\_message** `string`

Per-conversation override for the warning message sent at `warning_time`. Takes priority over `warning_message` on sms\_config/whatsapp\_config.

### Response

**data** `object`

An object confirming the message was sent and referencing the triggered workflow.

**data.message** `string`

Confirmation text for the successful send.

**data.conversation\_id** `string`

ID of the conversation that was created or resumed.

**data.message\_id** `string`

ID of the message that was sent, if a single message was sent, to track message delivery and status.

**errors** `null|array`

`null` on success, or a list of error objects if the request failed.

```json Response theme={null}
{
  "data": {
    "message": "SMS sent successfully",
    "conversation_id": "convo_abc123",
    "workflow_id": "workflow_xyz789"
  },
  "errors": null
}
```

***

Docs for agents: [llms.txt](https://docs.bland.ai/llms.txt)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.