SMS API

Getting Started with SMS API

Set up SMS messaging with StartMessaging. Send transactional and OTP messages at Rs 0.25 per message.

Overview

StartMessaging’s SMS API lets you send transactional and OTP messages across India at Rs 0.25 per SMS. We support both DLT-registered and DLT-free (pre-registered) messaging.


Prerequisites

  • A StartMessaging account with SMS service enabled.
  • An API Key generated from your dashboard (prefixed with sm_live_).

Step 1: Choose Your Route

| Feature | DLT Free OTP | DLT Route | |---------|---------------|-----------| | Setup time | Instant (< 5 minutes) | 3-7 business days | | DLT registration | Not required | Required by TRAI | | Sender ID | Shared ID | Custom branded ID | | Price | Rs 0.25/SMS | Rs 0.18/SMS | | Endpoint | POST /otp/send | POST /otp/send |


Step 2: Send Your First OTP

All API requests require your API key passed in the X-API-Key header.

Request

curl -X POST https://api.startmessaging.com/otp/send \
  -H "Content-Type: application/json" \
  -H "X-API-Key: sm_live_your_api_key_here" \
  -d '{
    "phoneNumber": "+919876543210",
    "templateId": "YOUR_TEMPLATE_ID",
    "variables": {
      "otp": "123456",
      "appName": "YourApp"
    }
  }'

Response

{
  "success": true,
  "statusCode": 201,
  "requestId": "req_abc123",
  "timestamp": "2026-02-15T10:30:00.000Z",
  "data": {
    "otpRequestId": "uuid-of-otp-request",
    "messageId": "uuid-of-message",
    "status": "queued"
  }
}

Step 3: Check Delivery Status

You can check the real-time delivery status of any message by polling the status endpoint with the messageId returned from the send request.

Request

curl https://api.startmessaging.com/messages/uuid-of-message \
  -H "X-API-Key: sm_live_your_api_key_here"

Response

{
  "success": true,
  "statusCode": 200,
  "data": {
    "messageId": "uuid-of-message",
    "status": "delivered",
    "deliveredAt": "2026-02-15T10:30:05.000Z",
    "error": null
  }
}