---
title: "Send an outbound SMS message from a workspace number (sms:write)."
method: POST
path: "/v1/sms/send"
---

# Send an outbound SMS message from a workspace number (sms:write).

`POST /v1/sms/send`

## Request

- Base URL: `https://www.kaicalls.com/api`
- URL: `https://www.kaicalls.com/api/v1/sms/send`
- Auth: HTTP bearer

The text goes out on the workspace's own number through KaiCalls' carriers. The destination must already have usable SMS consent for the workspace. Imported walk-up clients become eligible only after POST /v1/leads records verified opt-in provenance; a cold phone number remains blocked. If the carrier definitively rejects an attempt, the error response includes attempt { code, to, timestamp }, and the same failed attempt is available from GET /v1/sms/messages with status "failed".

## Request body

- object
  - `to` string, required: Destination in E.164 format.
  - `from_agent_id` string, uuid, required
  - `message` string, required
  - `lead_id` string, uuid
  - `idempotency_key` string

## Response `200`

SMS accepted by the provider.

## Other responses

- `400`: Invalid or compliance-blocked request, or definitive provider rejection. A provider rejection includes attempt.code, attempt.to, and attempt.timestamp.
- `502`: Provider outcome unknown; safe reconciliation is required.

---

[API](https://skmtc.dev/kaicalls/apis/kaicalls-public-api.md) · [All operations](https://skmtc.dev/kaicalls/apis/kaicalls-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kaicalls/apis/kaicalls-public-api/revisions/e607fc6cf36e?raw)
