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

# Send Single Message

> Retired — this v1 endpoint returns HTTP 410 Gone. Use the v2 Send API.

<Warning>
  **Retired.** The v1 message-send endpoints have been retired. `POST /v1/messages` now returns **HTTP 410 Gone** on every request and sends nothing. Migrate to the [v2 Send API](/api-reference/v2/messages/send-single).
</Warning>

## Response

Every authenticated request returns `410 Gone`:

<ResponseExample>
  ```json 410 Gone theme={null}
  {
    "error": "The v1 message-send endpoints are retired. Migrate to the v2 messages API.",
    "code": "endpoint_retired"
  }
  ```
</ResponseExample>

| HTTP Status | Error Code            | Description                                                       |
| ----------- | --------------------- | ----------------------------------------------------------------- |
| 410         | `endpoint_retired`    | The v1 message-send path is retired. Use `POST /v2/send` instead. |
| 401         | `invalid_credentials` | Missing or invalid API key.                                       |

Authenticated requests can also return `403 account_suspended` or `429 rate_limited` — see [Error Codes](/api-reference/v2/error-codes).

## Migrating to v2

Replace `POST /v1/messages` with [`POST /v2/send`](/api-reference/v2/messages/send-single). The v2 response returns the `message_id` you need to correlate delivery and reply webhooks.

| v1 field               | v2 equivalent |
| ---------------------- | ------------- |
| `to_msisdn`            | `to`          |
| `from_phone_number_id` | `list_number` |
| `body`                 | `body`        |
