# SMS units (/api/sms/units)

Your organisation's SMS wallet holds **units**. One unit pays for one SMS part. The API reports everything in units — it never shows prices.

You buy units in the app (**SMS → Wallet**). The price per unit depends on how many you buy; see [pricing](https://cloudmetis.com/pricing).

## How many parts is my message? [#how-many-parts-is-my-message]

| Message length | Parts (units per recipient) |
|---|---|
| Up to 160 characters | 1 |
| 161 – 306 characters | 2 |
| 307 – 459 characters | 3 |
| Longer | 1 part per 153 characters, rounded up |

Longer messages are split into 153-character parts because each part carries a few characters of joining information. The maximum message length is **1,600 characters**.

<Callout type="warn" title="Special characters">

Part counts assume the standard GSM character set (letters, numbers, common punctuation). Emoji and some special characters can make a network split a message into more, shorter parts. Keep messages to plain text where possible.

</Callout>

## Units in API responses [#units-in-api-responses]

| Field | Where | Meaning |
|---|---|---|
| `units_available` | balance, send, batch receipt | Units left in the wallet |
| `sms_parts` | send, status, batch | Parts (units) for that message |
| `units_used` | send (up to 50 numbers) | Units used by this request |
| `units_required` | batch receipt (51+ numbers) | Units the batch will use |

## When are units used? [#when-are-units-used]

- Units are used when a message is handed to the network.
- Numbers that have **opted out** are skipped and use no units.
- Before sending, CloudMetis checks you have enough units for the whole request. If not, nothing is sent and you get `402 insufficient_units`.
- Sandbox (test key) messages never use units.
