Skip to main content

Overview

Unosend SMS uses pre-approved templates to send messages. This ensures compliance with carrier regulations and high delivery rates. How it works:
  1. Create a template — Define your message with ##variable## placeholders
  2. Wait for approval — Templates are reviewed (usually within minutes)
  3. Send SMS — Use the approved template ID with variable values

Pricing

  • 10 free SMS per organization (lifetime)
  • After that: $0.006 per SMS (deducted from your wallet)
  • A standard SMS segment is 160 characters. Longer messages are split into 153-character segments.

Sending an SMS

curl -X POST https://api.unosend.co/v1/sms \
  -H "Authorization: Bearer un_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+919876543210",
    "template_id": "your_approved_template_id",
    "variables": {
      "error_count": "15",
      "account_name": "Acme Corp"
    }
  }'

Response

{
  "success": true,
  "data": {
    "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "status": "sent"
  }
}

Batch Send

Send up to 100 SMS messages in a single API call:
curl -X POST https://api.unosend.co/v1/sms/batch \
  -H "Authorization: Bearer un_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      {
        "to": "+919876543210",
        "template_id": "your_template_id",
        "variables": {"name": "Alice"}
      },
      {
        "to": "+14155551234",
        "template_id": "your_template_id",
        "variables": {"name": "Bob"}
      }
    ]
  }'

Templates

SMS templates use ##variable## syntax for dynamic content. Templates must be approved before use.

Creating a Template

From the SMS > Templates page in the dashboard:
  1. Click Create Template
  2. Enter a name and message body using ##variable## for placeholders
  3. Submit — the template is sent for approval
  4. Click Sync Status to check approval

Template Variables

Variables are wrapped in double hashes: ##variable_name## Example template:
Alert: We detected ##error_count## errors on ##account_name## in the last ##interval_minutes## minutes.
When sending, pass variables as a key-value map:
{
  "variables": {
    "error_count": "15",
    "account_name": "Acme Corp",
    "interval_minutes": "30"
  }
}

Phone Number Format

Always include the country code with a + prefix:
CountryFormatExample
India+91XXXXXXXXXX+919876543210
US/Canada+1XXXXXXXXXX+14155551234
UK+44XXXXXXXXXX+447911123456

SMS Contacts

Manage SMS contacts from the dashboard (SMS > Contacts):
  • Add contacts manually or import from CSV
  • CSV must have name and phone columns
  • Export all contacts as CSV
  • Bulk delete selected contacts

Billing

SMS costs are deducted from your wallet balance:
  • First 10 SMS are free (lifetime per organization)
  • After that: $0.006 per SMS
  • Top up your wallet at Settings > Wallet
  • Enterprise accounts have custom pricing
SMS segments are counted by character length. Messages up to 160 characters = 1 segment. Longer messages use 153 characters per segment.