SMS API for India: bulk SMS to +91 numbers
India
Calling code +91
- Per SMS segment
- $0.01557
- Messages for $100
- 6,422
- Local language
- Hindi, English
- Encoding
- Unicode (UCS-2)
What a bulk SMS send to India costs
| Messages | 1 segment | 2 segments |
|---|---|---|
| 1 | $0.01557 | $0.03114 |
| 1,000 | $15.57 | $31.14 |
| 10,000 | $155.70 | $311.40 |
| 100,000 | $1,557.00 | $3,114.00 |
Number format in India
Mobile numbers in India have 10 digits after +91. Locally they are written with a leading 0 (081234 56789); in the API that 0 is dropped, so the same number goes in the to field as +91 81234 56789.
Alphabet and segments
Text in Devanagari and the other Indian scripts is always Unicode, so a message to India written in Hindi carries 70 characters in one segment and 67 in each part of a longer one. Codes and alerts written in English or plain Latin letters fit 160 characters, which halves the cost of a long notice.
Time zone and timing
India keeps UTC+5:30 all year with no clock change, so 09:00 in Kolkata is always 03:30 UTC. send_at takes UTC or any ISO 8601 offset, and the console scheduler converts from your own time zone.
Send to India with one request
The answer comes back at once with the message id, the country the number was matched to (IN) and the price. A delivered or failed event follows on your webhook, and a failed message is refunded.
For a list, send the same text to up to 10,000 numbers with POST /v1/batches, or a personal text per number in messages.
curl https://bulksmsapi.cc/v1/messages \
-H "Authorization: Bearer $BULKSMSAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"to": "+918123456789", "text": "Your Northwind code is 482913. It expires in 10 minutes."}'const res = await fetch("https://bulksmsapi.cc/v1/messages", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.BULKSMSAPI_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({ to: "+918123456789", text: "Your Northwind code is 482913. It expires in 10 minutes." }),
});
console.log(await res.json()); // price: "0.01557", country: "IN"import json, os, urllib.request
req = urllib.request.Request(
"https://bulksmsapi.cc/v1/messages",
data=json.dumps({"to": "+918123456789", "text": "Your Northwind code is 482913. It expires in 10 minutes."}).encode(),
headers={"Authorization": "Bearer " + os.environ["BULKSMSAPI_KEY"], "Content-Type": "application/json", "User-Agent": "northwind-app/1.0"},
method="POST",
)
with urllib.request.urlopen(req) as res:
print(json.load(res)["price"]) # "0.01557"What developers send to India
OTP logins
Users in Bangalore receive a one-time password by SMS when logging into their mobile banking app for secure access.
Order confirmations
Customers in Mumbai get an SMS when their online purchase is confirmed, with details about delivery timelines.
Ride updates
Passengers in Delhi receive SMS alerts about their ride-hailing driver's location and estimated arrival time.
Exam results
Students in Chennai are notified by SMS when their board exam results are published online.
More countries in South Asia
SMS to India: questions
More answers on accounts, payments and the API are in the FAQ.
How much does it cost to send bulk SMS to India?
How many SMS to India does a $100 top-up send?
How do I write India numbers for the API?
What languages are used for SMS in India?
Are there seasonal peaks in SMS traffic in India?
Start sending to India
Create an account, top up from $40 and send to India at $0.01557 per segment, from the console or with one API call.