Send your first SMS in 3 minutes

Drop a single POST request into your stack and you're live. Bearer-token auth, JSON responses, and the same endpoint scales from one OTP to a million-recipient campaign.

  • Single endpoint for OTPs, alerts and bulk campaigns
  • Works with any language: curl, PHP, Node, Python, Java, .NET
  • Webhook callbacks for real-time delivery reports
  • 99.9% uptime, redundant routes across all networks
~ send-sms.sh
# Send an OTP: one POST, that's it
curl -X POST "https://smshorizon.co.in/api/v2/sendsms.php" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d "user=acme&mobile=8870522522" \
  -d "senderid=HORIZN&message=Your OTP is 482910" \
  -d "tid=1107160521253456789&type=txt"

# 200 OK
{
  "msgid": "938471625",
  "status": "queued",
  "balance_after": "4999"
}
Capabilities

Built for production messaging

Everything you need to ship SMS into your app, from the first OTP to bulk campaigns at scale.

Sub-3s delivery

Priority routes across Airtel, Jio and Vodafone Idea. OTPs reach in seconds, not minutes.

1000 SMS/sec throughput

Burst-friendly architecture for high-volume events: flash sales, results day, peak campaigns.

DLT compliant

Entity, header and template registration assistance. Stay compliant with TRAI regulations.

Webhook callbacks

POST delivery reports to your endpoint the moment status changes. No polling, no cron jobs.

Unicode & regional

Send in Hindi, Tamil, Telugu, Bengali, Marathi and 15+ Indian languages. Single API flag.

Bulk & single send

Same endpoint handles one OTP or a comma-separated list of 50,000 recipients in one call.

REST API

Plain HTTP over JSON, works with any language or framework. No SDK to install, just an HTTPS request.

IP whitelisting

Lock API keys to specific source IPs for an extra layer of security on production keys.

Account & balance API

Programmatic access to balance, route, registered templates and sender IDs.

Technical specs

Base URL
https://smshorizon.co.in/api/v2
Methods
POST (recommended) and GET
Auth
Bearer token or user + apikey params
Response
JSON (minified by default, append prettyprint=1)
Throughput
Up to 1000 SMS/sec on enterprise plans
Uptime
99.9% SLA ยท redundant routes across operators

Use cases

  • Authentication
    OTPs for login, signup, 2FA, transactions
  • Banking & finance
    Transaction alerts, balance updates, EMI reminders
  • E-commerce
    Order confirmation, shipping updates, delivery alerts
  • Logistics & healthcare
    Dispatch alerts, appointment reminders, lab reports
  • Marketing
    Promotional campaigns, festival offers, re-engagement

Works with everything you already use

It's just HTTP. Drop it into any stack in any language.

PHP Node.js Python Java .NET / C# Ruby curl / Bash Postman WordPress WooCommerce Shopify Zapier / Make
FAQs

SMS API questions

How do I authenticate API requests?
Two ways: a Bearer token in the Authorization header, or your user + apikey as request parameters. You get the key the moment you sign up, from the dashboard.
Which languages and platforms are supported?
The API is plain HTTP, so it works with any language, PHP, Node.js, Python, Java, .NET, Ruby, Go, curl and Postman. We also have ready integrations for WordPress, WooCommerce, Shopify and Zapier / Make.
Do you support delivery webhooks?
Yes. Set a callback URL and we POST a JSON payload to it the moment a message changes state (sent, delivered, failed), with a timestamp. No DLR polling needed.
What throughput can the API handle?
100 SMS/sec on standard accounts, up to 1000 SMS/sec on enterprise plans. Burst capacity is available on request for high-volume OTP and alert traffic.
Is DLT registration required to use the API?
Yes, per TRAI rules, you register your entity, sender headers and message templates on the DLT portal. We assist with the entire process free of charge and typically have you live in 24 to 48 hours.
Can I send Unicode and regional-language SMS?
Yes. Send in Hindi, Tamil, Telugu, Bengali, Marathi and 15+ Indian languages. Set the API type to uni for Unicode messages.
What response format does the API return?
JSON, minified by default. Append prettyprint=1 for a human-readable response during development. Every send returns a message ID you can match against delivery webhooks.
Is there a sandbox or free trial?
Yes. Every new account gets 500 free credits to test on your own number, with live API keys from minute one, no card required.
How much does the SMS API cost?
API messages are billed per SMS, starting as low as 14 paise per SMS with good volume. See our pricing page for all plans, or talk to sales for a quote tailored to your usage.
4.6 60+ verified reviews
REST · JSON · Webhooks

Ready to integrate?

Spin up an API key in under 2 minutes. 500 free credits to test on your own number. No card required.

Across India

Bulk SMS in India's major cities

We serve businesses in every major metro, with the same panel, API and pricing everywhere.