Overview
Unosend provides a simple API for sending SMS messages. Perfect for:OTP & Verification
Two-factor authentication and phone verification
Transactional Alerts
Order confirmations, shipping updates, appointments
Notifications
Account alerts, reminders, status updates
Marketing
Promotional messages (with consent)
Pricing
| Item | Price |
|---|---|
| First 10 SMS | Free |
| Additional SMS | $0.01 per segment |
SMS messages are charged per segment. A segment is 160 characters for GSM-7 encoding (standard text) or 70 characters for Unicode (emojis, special characters).
Quick Start
Send Your First SMS
cURL
Response
SDK Examples
Phone Number Format
Always use E.164 format for phone numbers:| Country | Format | Example |
|---|---|---|
| USA/Canada | +1XXXXXXXXXX | +14155551234 |
| UK | +44XXXXXXXXXX | +447700900123 |
| Germany | +49XXXXXXXXXXX | +4915123456789 |
| India | +91XXXXXXXXXX | +919876543210 |
| Australia | +61XXXXXXXXX | +61412345678 |
Segment Calculation
SMS messages are split into segments based on character encoding:| Encoding | Single SMS | Multi-part SMS |
|---|---|---|
| GSM-7 (standard text) | 160 chars | 153 chars/segment |
| Unicode (emojis, etc.) | 70 chars | 67 chars/segment |
Examples
| Message | Characters | Encoding | Segments |
|---|---|---|---|
| ”Your code is 123456” | 19 | GSM-7 | 1 |
| ”Hello! 👋 Welcome” | 16 | Unicode | 1 |
| 200-char text message | 200 | GSM-7 | 2 |
| 150-char with emoji | 150 | Unicode | 3 |
Batch Sending
Send to multiple recipients in a single API call (max 100 per request):cURL
Response
OTP Verification
Unosend provides a built-in OTP verification flow:Step 1: Send OTP
Step 2: Verify OTP
Response
Sender ID
You can customize the sender name that appears on recipients’ phones:Country-Specific Requirements
India (DLT Registration)
Sending SMS to India requires DLT registration:- Register with a DLT portal (JioTrueConnect, Vodafone DLT, etc.)
- Register your sender ID (header)
- Register message templates
- Provide your DLT Entity ID and Template ID
United States (10DLC)
For high-volume SMS to US numbers, register for 10DLC:- Required for sending at scale
- Improves deliverability
- Contact support to register your brand and campaigns
Wallet & Billing
SMS is billed from your wallet balance:- First 10 SMS are free
- After that, each segment costs $0.01
- Balance is deducted after successful sends
- Add funds at Settings → Wallet
Check Balance Before Sending
The API returns a402 Payment Required error if balance is insufficient:
Message Status
Track SMS delivery status:| Status | Description |
|---|---|
queued | Message accepted, pending send |
sent | Sent to carrier |
delivered | Confirmed delivered to device |
failed | Delivery failed |
undelivered | Carrier could not deliver |
Get SMS Status
Best Practices
Use E.164 format
Use E.164 format
Always include country code with
+ prefix. Validate phone numbers before sending.Keep messages concise
Keep messages concise
Shorter messages = fewer segments = lower costs. Aim for under 160 characters.
Avoid Unicode when possible
Avoid Unicode when possible
Emojis and special characters reduce segment capacity from 160 to 70 characters.
Handle opt-outs
Handle opt-outs
Respect STOP requests. We automatically handle opt-outs for compliant messaging.
Include opt-out instructions
Include opt-out instructions
For marketing messages, include “Reply STOP to unsubscribe” as required by regulations.
Rate limit your sends
Rate limit your sends
Spread large sends over time to avoid carrier throttling.
Rate Limits
| Plan | SMS per minute |
|---|---|
| Free | 10 |
| Pro | 100 |
| Scale | 500 |
| Enterprise | Custom |
Error Codes
| Code | Meaning |
|---|---|
| 400 | Invalid phone number or request |
| 401 | Invalid API key |
| 402 | Insufficient wallet balance |
| 429 | Rate limit exceeded |
| 500 | Internal error |