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

# Vobiz Messaging API - SMS, MMS and RCS

> Send and receive SMS, MMS and RCS through one Vobiz API - buy messaging numbers, register for US 10DLC and toll-free, add India DLT IDs, run broadcasts, manage conversations and opt-outs, and receive delivery events by webhook or WebSocket.

Vobiz Messaging lets you send and receive **SMS**, **MMS** and **RCS** messages through one REST API, from numbers or RCS senders you own on Vobiz. The same credentials you use for voice work here, and every resource is scoped to your account automatically.

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/docs/sms/quickstart">
    Send your first SMS in four steps.
  </Card>

  <Card title="Send a message" icon="paper-plane" href="/docs/sms/api/messages/send-message">
    The one endpoint for SMS, MMS and RCS.
  </Card>

  <Card title="Compliance and registration" icon="shield-check" href="/docs/sms/compliance/overview">
    US 10DLC, toll-free verification and India DLT.
  </Card>

  <Card title="Webhooks" icon="webhook" href="/docs/sms/webhooks">
    Signed delivery and inbound events to your server.
  </Card>
</CardGroup>

## What you can do

| Capability | What it does |
| - | - |
| Send SMS, MMS and RCS | One endpoint. Choose the `channel`. Several recipients in one call, each with its own message record. |
| RCS rich messages | Text plus suggestion buttons: reply, open URL, dial, show or request location. |
| SMS fallback for RCS | `failoverToSms: true` sends the same text as SMS when the recipient cannot receive RCS. |
| RCS reachability check | Ask whether a number can receive RCS before you send. |
| Cost preview | Price a message (segments x rate) before sending. |
| Scheduling | `scheduledAt` holds a message with status `scheduled`. |
| Idempotency | `idempotencyKey` makes retries safe. The same key never sends twice. |
| Tags | A free-text `tag` on a message to group and filter. |
| Broadcasts | Upload a CSV, personalise with variables, send at a set rate, track each recipient, export results. |
| Conversations and inbox | Two-way threads per contact, unread counts, mark as read. |
| Opt-outs | Automatic STOP handling and manual lists, per channel. |
| Numbers | Search, buy and release messaging-capable numbers by API or console. |
| Compliance | US 10DLC brand and campaign registration, US toll-free verification, India DLT IDs. |
| Webhooks | Signed delivery-status and inbound-message events. |
| WebSocket | Live message, broadcast, registration and number events for dashboards. |

## Channels

<CardGroup cols={3}>
  <Card title="SMS" icon="message" href="/docs/sms/channels/sms">
    Text to any mobile. Long messages are split into segments and billed per segment.
  </Card>

  <Card title="MMS" icon="image" href="/docs/sms/channels/mms">
    Text plus media to US and Canadian numbers.
  </Card>

  <Card title="RCS" icon="sparkles" href="/docs/sms/channels/rcs">
    Branded rich messages with buttons, from a verified RCS sender.
  </Card>
</CardGroup>

## Base URL and authentication

```text Base URL theme={null}
https://api.vobiz.ai/api/v1/sms
```

Every path in this section is relative to the base URL. `POST /messages` means `POST https://api.vobiz.ai/api/v1/sms/messages`.

Send your account credentials on every request:

```http theme={null}
X-Auth-ID: MA_XXXXXXXX
X-Auth-Token: YOUR_AUTH_TOKEN
Content-Type: application/json
```

The account is taken from your credentials. You never put an account ID in a path or body. Find your Auth ID and Auth Token on the [Vobiz Console](https://console.vobiz.ai) dashboard, and see [Authentication](/docs/api-reference/authentication) for how to keep them safe.

<Note>
  Field names in the Messaging API are **camelCase** (`failoverToSms`, `idempotencyKey`, `scheduledAt`). The voice API uses snake\_case. Keep each API's casing as documented.
</Note>

## Endpoints

| Area | Endpoints |
| - | - |
| Messages | [Send](/docs/sms/api/messages/send-message), [List](/docs/sms/api/messages/list-messages), [Retrieve](/docs/sms/api/messages/get-message), [Cost preview](/docs/sms/api/messages/cost-preview), [RCS reachability](/docs/sms/api/messages/rcs-reachability) |
| Numbers | [List yours](/docs/sms/api/numbers/list-numbers), [Countries](/docs/sms/api/numbers/list-countries), [Search inventory](/docs/sms/api/numbers/search-available-numbers), [Purchase](/docs/sms/api/numbers/purchase-number), [Purchases](/docs/sms/api/numbers/list-purchases), [Release](/docs/sms/api/numbers/release-number) |
| Coverage | [All countries](/docs/sms/api/coverage/list-coverage), [One country](/docs/sms/api/coverage/get-coverage) |
| Conversations | [List](/docs/sms/api/conversations/list-conversations), [Retrieve](/docs/sms/api/conversations/get-conversation), [Messages](/docs/sms/api/conversations/list-conversation-messages), [Mark read](/docs/sms/api/conversations/mark-conversation-read), [Unread count](/docs/sms/api/conversations/unread-count) |
| Opt-outs | [Add](/docs/sms/api/opt-outs/create-opt-out), [List](/docs/sms/api/opt-outs/list-opt-outs), [Check](/docs/sms/api/opt-outs/check-opt-out), [Remove](/docs/sms/api/opt-outs/delete-opt-out) |
| Webhooks | [Create](/docs/sms/api/webhooks/create-webhook), [List](/docs/sms/api/webhooks/list-webhooks), [Retrieve](/docs/sms/api/webhooks/get-webhook), [Update](/docs/sms/api/webhooks/update-webhook), [Delete](/docs/sms/api/webhooks/delete-webhook) |
| Broadcasts | [Create](/docs/sms/api/broadcasts/create-broadcast), [Upload recipients](/docs/sms/api/broadcasts/upload-recipients), [Preview](/docs/sms/api/broadcasts/preview-broadcast), [Launch](/docs/sms/api/broadcasts/launch-broadcast), [Pause](/docs/sms/api/broadcasts/pause-broadcast), [Resume](/docs/sms/api/broadcasts/resume-broadcast), [Cancel](/docs/sms/api/broadcasts/cancel-broadcast), [Recipients](/docs/sms/api/broadcasts/list-recipients), [Export](/docs/sms/api/broadcasts/export-broadcast) |
| RCS senders | [Create](/docs/sms/api/senders/create-sender), [List](/docs/sms/api/senders/list-senders), [Status](/docs/sms/api/senders/get-sender-status), [Templates](/docs/sms/api/senders/create-template) |
| 10DLC | [Brands](/docs/sms/api/10dlc/create-brand), [Campaigns](/docs/sms/api/10dlc/create-campaign), [Toll-free](/docs/sms/api/10dlc/create-toll-free-campaign), [Documents](/docs/sms/api/10dlc/upload-document) |

## Message lifecycle

| Status | Direction | Meaning |
| - | - | - |
| `scheduled` | out | Held for `scheduledAt`. |
| `sent` | out | Accepted by the network and on its way. |
| `delivered` | out | Delivery receipt received from the handset or network. |
| `failed` | out | Rejected, undeliverable or expired. See `errorCode` and `errorMessage`. |
| `received` | in | A message, or an RCS button tap, sent to you. |
| `unknown` | out | The network reported a state outside the list above. Retrieve the message for its status history. |

A `2xx` on send means accepted, not delivered. Delivery outcomes arrive later through [webhooks](/docs/sms/webhooks) or the [WebSocket](/docs/sms/websocket), or by polling [Retrieve a message](/docs/sms/api/messages/get-message).

## Before you send in production

<Steps>
  <Step title="Get a messaging number">
    [Buy one](/docs/sms/numbers) or bring your own. India uses DLT sender IDs instead of long codes.
  </Step>

  <Step title="Register where required">
    US local numbers need a [10DLC campaign](/docs/sms/compliance/us-10dlc-campaigns). US toll-free numbers need [toll-free verification](/docs/sms/compliance/us-toll-free). Indian traffic needs [DLT IDs](/docs/sms/compliance/india-dlt) on every message.
  </Step>

  <Step title="Subscribe to events">
    Create a [webhook subscription](/docs/sms/webhooks) so delivery receipts and replies reach your server.
  </Step>

  <Step title="Honour opt-outs">
    STOP replies are recorded automatically and sends to opted-out numbers return `422`. See [Opt-outs](/docs/sms/opt-outs).
  </Step>
</Steps>

## Console

Everything in this section is also in the Vobiz Console under **SMS & RCS**: Overview, Send, Inbox, Broadcasts, Numbers (Buy a number, Bring your numbers), Registration (Brands, Campaigns, Toll-free), RCS agents and templates, Opt-outs, and Webhooks.

## Pricing

SMS is billed per segment. Use [Cost preview](/docs/sms/api/messages/cost-preview) to see the segment count and price before you send. RCS and MMS have their own rates, and an RCS message that falls back to SMS is billed as SMS. Numbers carry a setup fee and a monthly fee in your account currency. See the [pricing page](https://vobiz.ai/pricing) for current rates.

## Related

* [Vobiz WhatsApp Business API](/docs/whatsapp/api) - messaging on WhatsApp.
* [Voice API reference](/docs/api-reference) - calls, numbers for voice, SIP trunks.
* [Errors](/docs/sms/errors) - status codes and error bodies for this API.


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