Skip to main content
curl -X POST "<SMS_SERVICE_URL>/api/web/send/" \
  --data-urlencode "apikey=YOUR_API_KEY" \
  --data-urlencode "sender=SEDEMO" \
  --data-urlencode "to=9900XXXXXX" \
  --data-urlencode "message=Your OTP is 4829" \
  --data-urlencode "format=json"

// Response
{
  "groupID": 61,
  "MessageIDs": "61-1",
  "status": "AWAITED-DLR"
}

API Documentation

Step-by-step references with endpoints, parameters, sample code, responses and error codes. Your service URL and API key are shared with you after you sign up.

SMS API Documentation

Send transactional, promotional and Unicode SMS over HTTP, and track every message.

  • Send SMS, Unicode and promotional messages
  • Real-time delivery reports on your webhook
  • Delivery status and credit balance APIs

Prerequisite: DLT registration of your business, sender ID and message templates. Check DLT requirements

WhatsApp API Documentation

Send session and template messages on the official WhatsApp Business API.

  • Text, media, interactive, catalogue and payment messages
  • Create and manage message templates
  • Media upload and delivery status webhooks

Prerequisite: a Meta-verified business with an approved phone number and display name. Check Meta approval steps

SpringEdge offers simple HTTP APIs for SMS, WhatsApp Business, Voice, and RCS messaging in India. Send a request with your API key over HTTPS and get a message ID back, with a sub-5ms response time and 99.99% uptime backed by direct connectivity to Indian telecom operators (Jio, Airtel, Vodafone Idea, BSNL).

Any HTTP client works out of the box, with ready-made integration code for PHP, Python, Java, Node.js, Ruby, C# and more, and an official Node.js package on npm. Your messages go out on your DLT-registered sender IDs and templates, so they are delivered compliantly.

Simple HTTP API

GET or POST requests, with responses in plain text, JSON or XML

API Key Authentication

One API key per account, with optional IP whitelisting for extra security

Webhook Callbacks

Real-time delivery reports pushed to a callback URL on your server

Available APIs

Each API handles a specific communication channel, and all of them authenticate with your SpringEdge API key.

SMS API

Send transactional SMS, OTP codes, and promotional bulk campaigns. Supports Unicode, scheduled delivery, DLT templates, and DND filtering.

RCS API

Send rich cards, image carousels, suggested replies, and action buttons. Includes automatic SMS fallback for non-RCS devices.

Voice API

Automated voice broadcasting with text-to-speech in 15+ languages. Build IVR menus, collect DTMF input, and schedule calls.

WhatsApp API

Official WhatsApp Business API for template messages, rich media, interactive buttons, and automated chatbot conversations.

// Send SMS — cURL example
curl -X POST "<SMS_SERVICE_URL>/api/web/send/" \
  --data-urlencode "apikey=YOUR_API_KEY" \
  --data-urlencode "sender=SEDEMO" \
  --data-urlencode "to=9900XXXXXX" \
  --data-urlencode "message=Your OTP is 482910" \
  --data-urlencode "format=json"

// Response
{
  "groupID": 61,
  "MessageIDs": "61-1",
  "status": "AWAITED-DLR"
}

SMS API

Send an SMS with One API Call

The SMS API accepts a GET or POST request with your API key, sender ID, recipient number and message text. Add unicode=1 for regional languages or promo=1 for promotional messages. Each accepted message returns a message ID for tracking.

Delivery status is available by polling with the message ID, or pushed to your server in real time: pass a callbackurl and your own label with the message. Read the SMS API documentation →

WHATSAPP API

Send WhatsApp Messages via API

The WhatsApp API sends pre-approved template messages with dynamic parameters. Templates support text, images, documents, videos, and interactive buttons (quick reply, call-to-action, URL, copy code). Each template must be approved by Meta before use, and can be created and managed through the API.

Session messages (replies within 24 hours of the customer's last message) support free-form text, media, locations, contacts, lists, catalogues and payments. Read the WhatsApp API documentation →

// Send WhatsApp template message
curl -X POST "<WHATSAPP_SERVICE_URL>/v3/{{phone_number_id}}/messages" \
  -H "Content-Type: application/json" \
  -H "apikey: YOUR_API_KEY" \
  -d '{
    "messaging_product": "whatsapp",
    "to": "91XXXXXXXXXX",
    "type": "template",
    "template": {
      "name": "order_confirmation",
      "language": { "code": "en" },
      "components": [{
        "type": "body",
        "parameters": [
          { "type": "text", "text": "ORD-78542" },
          { "type": "text", "text": "2,499" }
        ]
      }]
    }
  }'

// Response
{
  "messaging_product": "whatsapp",
  "contacts": [{ "input": "91XXXXXXXXXX", "wa_id": "91XXXXXXXXXX" }],
  "messages": [{ "id": "wamid.HBgMOTE3OTcyODkyNzEy..." }]
}

Developer Tools & Infrastructure

Everything you need to integrate, test, and monitor messaging in production.

Code Samples & Libraries

Copy-paste integration code for PHP, Python, Java, Node.js, Ruby, C# and more, plus the official springedge Node.js package on npm.

Free Test Credits

Test your integration with free credits on the same endpoints you use in production, so nothing changes when you go live.

Webhooks & Events

Receive SMS delivery reports on your callback URL, and WhatsApp sent, delivered and read statuses on your webhook, in real time.

Analytics Dashboard

Track delivery rates, message latency, channel-wise usage, and credit consumption from a single dashboard with exportable reports.

Security & Rate Limits

HTTPS on every endpoint, optional IP whitelisting for your API key, and up to 10 SMS API requests per second per IP. Contact support for higher throughput.

Request Logging

Every API request and response is logged and accessible from your dashboard for debugging, auditing, and compliance purposes.

// npm install springedge
const springedge = require('springedge');

const params = {
  apikey: 'YOUR_API_KEY',
  sender: 'SEDEMO',
  to: ['919900XXXXXX'],
  message: 'Your OTP is 482910',
  format: 'json'
};

springedge.messages.send(params, 5000, (err, response) => {
  if (err) return console.log(err);
  console.log(response);
  // { groupID: 61, MessageIDs: "61-1", status: "AWAITED-DLR" }
});

LIBRARIES & CODE SAMPLES

Integration Code for Every Stack

The official springedge Node.js package on npm wraps the SMS API, so you can send messages with a single function call.

For other languages, use our ready-made integration code for PHP, Python, Java, Ruby on Rails, C# and Android, or call the HTTP API from any language.

Beyond REST — Enterprise SMPP & Reseller Options

The REST SMS API on this page covers 5-minute integration for typical business volumes. For high-throughput enterprise, aggregator, and reseller workloads, SpringEdge offers two additional access models on the same operator connectivity:

SMPP 3.4 Gateway

Direct SMPP 3.4 binding with up to 5,000 TPS per binding, full TLV parameter support, and TLS-encrypted transport. Suited for platforms sending > 1 million SMS/day where REST throughput or protocol overhead becomes a bottleneck.

SMPP SMS Gateway India →

SMS Reseller Program

White-label reseller platform with a branded admin panel, hierarchical sub-user management, wholesale INR pricing from ₹0.10 per SMS at scale, and managed DLT compliance. For agencies, integrators, and regional providers.

SMS Reseller Program India →

Sample Responses

The SMS API responds in plain text by default. Add format=json or format=xml to get a structured response. Every accepted message returns a groupID and message ID you can use to track delivery.

Success — JSON

{
  "groupID": 61,
  "MessageIDs": "61-1",
  "status": "AWAITED-DLR"
}

Success — XML

<xml>
  <groupID>62</groupID>
  <MessageIDs>62-1</MessageIDs>
  <status>AWAITED-DLR</status>
</xml>

AWAITED-DLR means the message was accepted and handed to the operator, and is waiting for a delivery report.

Error Codes

If a request can't be processed, the SMS API returns one of these messages instead of a message ID:

Response Cause Fix
Invalid Input DataA required parameter or its value is missingSend apikey, sender, to and message; parameter names are case-sensitive
Account Inactive. Please contact SupportYour SMS account is inactive or deactivatedContact support
Invalid Mobile NumbersThe mobile number is invalid or has fewer than 10 digitsSend a valid 10-digit mobile number, with or without 91
Invalid Sender IDThe sender ID is not applied for or not yet approvedUse an approved header; see the DLT Sender ID guide
Insufficient CreditsYour SMS account is out of creditsRecharge your account
Invalid Message GIDThe message group ID is invalidUse the groupID returned by the send API
Invalid Schedule Date and Time!The schedule time is invalidCorrect the time value
Invalid Schedule Date!The schedule date is invalidCorrect the date value

Delivery Report Webhook

To receive SMS delivery reports on your server in real time, add a callbackurl and your own reference label to the send request:

<SMS_SERVICE_URL>/api/web/send/?apikey=YOUR_API_KEY&sender=SEDEMO&to=9900XXXXXX&message=Test+message&format=json&callbackurl=https://yourdomain.com/receivestatus/&label=ORDER-10245

When the status is updated, SpringEdge calls your callback URL with these parameters:

https://yourdomain.com/receivestatus/?label=ORDER-10245&recipient=9900XXXXXX&status=DELIVRD

label is the reference you sent, recipient is the destination number, and status is DELIVRD, UNDLIVRD or FAILED. See the SMS API documentation for a sample handler, or the WhatsApp API documentation for WhatsApp status webhooks.

Test the API end-to-end before integrating — see the SpringEdge Postman collection.

Frequently Asked Questions

Common questions about SpringEdge API integration, authentication, and developer tools.

  • What programming languages does the SpringEdge API support?

    SpringEdge provides an HTTP API that works with any programming language capable of making HTTP requests. We offer ready-to-use code examples for PHP, Python, Java, Node.js, C#, Ruby, and cURL, plus an official Node.js package on npm. Since the API uses standard HTTP GET/POST requests with plain text, JSON or XML responses, it integrates seamlessly into any technology stack — whether you're building a web application, mobile app, or backend service.

  • Authentication is done using an API key that is generated from your SpringEdge account. For the SMS API you pass it as the apikey parameter, and for the WhatsApp API as an apikey header. Use HTTPS so your credentials and message data are encrypted in transit, and optionally restrict your key to specific IP addresses. Call the API only from your server, never from front-end code. No OAuth or complex authentication flows are required — simply sign up, get your API key, and start sending messages.

  • Yes. For SMS, add a callbackurl and your own reference label to the send request, and SpringEdge calls that URL with the label, recipient number and delivery status (DELIVRD, UNDLIVRD or FAILED) as soon as the status is updated. For WhatsApp, share your webhook URL with our support team to receive sent, delivered and read statuses and incoming messages. This lets your application track delivery in real time without polling. You can also fetch the status of any SMS by its message ID.

  • Yes, SpringEdge integrates with popular business software through pre-built plugins and the REST API. We offer ready-made add-ons and plugins for WooCommerce, Magento, OpenCart, WordPress, and other platforms. For CRM systems like Salesforce, HubSpot, Zoho, and Tally, you can use our API to trigger automated messages based on CRM events — new lead created, deal closed, payment received, support ticket updated, and more. Any software that can make HTTP requests can integrate with SpringEdge in minutes.

  • SpringEdge guarantees 99.99% API uptime backed by redundant, carrier-grade infrastructure. The average API response time is under 5 milliseconds for message submission requests. Our platform is built on a distributed architecture with automatic failover, so even during maintenance windows or infrastructure incidents, your API calls continue to work. We process billions of messages annually across SMS, Voice, and WhatsApp channels.

  • Yes, when you create a free SpringEdge account, you receive complimentary test credits that let you try all services — SMS, Voice, and WhatsApp — without any upfront payment or credit card. You can use these credits to test API integration, verify message delivery, and validate your application logic before going into production. The test environment uses the same API endpoints as production, so there is no code change needed when you switch to live messaging.

Choosing an SMS API Provider

How to Choose an SMS API Provider

What to evaluate before you commit — delivery routes, DLT handling, uptime guarantees, pricing models and support quality.

SpringEdge vs Twilio

A direct comparison of pricing, Indian operator routing and DLT compliance for teams weighing both platforms.

Twilio Alternatives in India

The leading India-focused alternatives to Twilio, with notes on where each one fits best.