---
title: "SMS"
description: "Send SMS and MMS messages, one at a time or up to 1000 in a single request.\n\nEach message in a request is validated on its own. Valid messages are queued and returned in\n`data.messages`; any that fail come back in `data.errors` with an `error_code` and an\n`error_help` explaining the fix, so one bad number doesn't block the rest of a batch.\n\nMessages can be scheduled with `date`, tagged with a `campaign` or `reference` for reporting,\nand carry up to 10 `metadata` key/value pairs that are returned with delivery receipts and\nreplies. Every message is checked against an opt-out list before it is sent.\n\nUse the dry-run endpoint to validate a request and see parts and cost without sending. See\n[Sending messages](/guides/sending-messages/) for MMS rules, error codes and testing numbers.\n"
version: "v2"
---

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

Path: touchSMS API

Send SMS and MMS messages, one at a time or up to 1000 in a single request.

Each message in a request is validated on its own. Valid messages are queued and returned in
`data.messages`; any that fail come back in `data.errors` with an `error_code` and an
`error_help` explaining the fix, so one bad number doesn't block the rest of a batch.

Messages can be scheduled with `date`, tagged with a `campaign` or `reference` for reporting,
and carry up to 10 `metadata` key/value pairs that are returned with delivery receipts and
replies. Every message is checked against an opt-out list before it is sent.

Use the dry-run endpoint to validate a request and see parts and cost without sending. See
[Sending messages](/guides/sending-messages/) for MMS rules, error codes and testing numbers.

## Operations

- [Send messages](/api/sms/send/)
- [Validate messages without sending](/api/sms/send-dry-run/)


Source: https://dev.touchsms.com.au/api/tags/sms/index.md
