SMS API for Iran: bulk SMS to +98 numbers
Iran
Calling code +98
- Per SMS segment
- $0.02117
- Messages for $100
- 4,723
- Local language
- Persian
- Encoding
- Unicode (UCS-2)
What a bulk SMS send to Iran costs
| Messages | 1 segment | 2 segments |
|---|---|---|
| 1 | $0.02117 | $0.04234 |
| 1,000 | $21.17 | $42.34 |
| 10,000 | $211.70 | $423.40 |
| 100,000 | $2,117.00 | $4,234.00 |
Number format in Iran
Mobile numbers in Iran have 10 digits after +98. Locally they are written with a leading 0 (0912 345 6789); in the API that 0 is dropped, so the same number goes in the to field as +98 912 345 6789.
Alphabet and segments
Text in Persian (Arabic script) is always Unicode, so a message to Iran written in Persian 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
Iran keeps UTC+3:30 all year with no clock change, so 09:00 in Tehran is always 05:30 UTC. send_at takes UTC or any ISO 8601 offset, and the console scheduler converts from your own time zone.
Send to Iran with one request
The answer comes back at once with the message id, the country the number was matched to (IR) 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": "+989123456789", "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: "+989123456789", text: "Your Northwind code is 482913. It expires in 10 minutes." }),
});
console.log(await res.json()); // price: "0.02117", country: "IR"import json, os, urllib.request
req = urllib.request.Request(
"https://bulksmsapi.cc/v1/messages",
data=json.dumps({"to": "+989123456789", "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.02117"What developers send to Iran
OTP logins
Users in Isfahan receive a one-time password by SMS when logging into their mobile banking app for secure access.
Order confirmations
Customers in Mashhad get an SMS when their online purchase is confirmed, with details about delivery timelines.
Appointment reminders
Patients in Shiraz receive an SMS the day before their scheduled doctor's appointment to reduce no-shows.
Exam results
Students in Tabriz are notified by SMS when their university exam results are published online.
More countries in Middle East
SMS to Iran: questions
More answers on accounts, payments and the API are in the FAQ.
How much does it cost to send bulk SMS to Iran?
How many SMS to Iran does a $100 top-up send?
How do I write Iran numbers for the API?
What languages are used for SMS in Iran?
Are there seasonal peaks in SMS traffic in Iran?
Start sending to Iran
Create an account, top up from $40 and send to Iran at $0.02117 per segment, from the console or with one API call.