SMS API for Serbia: bulk SMS to +381 numbers
Serbia
Calling code +381
- Per SMS segment
- $0.02897
- Messages for $100
- 3,451
- Local language
- Serbian
- Encoding
- Unicode (UCS-2)
What a bulk SMS send to Serbia costs
| Messages | 1 segment | 2 segments |
|---|---|---|
| 1 | $0.02897 | $0.05794 |
| 1,000 | $28.97 | $57.94 |
| 10,000 | $289.70 | $579.40 |
| 100,000 | $2,897.00 | $5,794.00 |
Number format in Serbia
Mobile numbers in Serbia have 9 digits after +381. Locally they are written with a leading 0 (060 1234567); in the API that 0 is dropped, so the same number goes in the to field as +381 60 1234567.
Alphabet and segments
Text in Cyrillic is always Unicode, so a message to Serbia written in Serbian (Cyrillic 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
Serbia changes its clocks: Belgrade is on UTC+1 in January and UTC+2 in July. 09:00 in Belgrade is 08:00 UTC in January and an hour earlier in UTC while summer time runs, so give send_at with the local offset (for example +01:00 in winter) and the API does the conversion.
Send to Serbia with one request
The answer comes back at once with the message id, the country the number was matched to (RS) 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": "+381601234567", "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: "+381601234567", text: "Your Northwind code is 482913. It expires in 10 minutes." }),
});
console.log(await res.json()); // price: "0.02897", country: "RS"import json, os, urllib.request
req = urllib.request.Request(
"https://bulksmsapi.cc/v1/messages",
data=json.dumps({"to": "+381601234567", "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.02897"What developers send to Serbia
Order confirmations
E-commerce platforms in Belgrade send SMS to confirm orders and provide tracking details for deliveries.
Ride details
Ride-hailing apps in Novi Sad notify users via SMS about driver details and estimated arrival times.
Payment reminders
Utility companies in Niš send SMS reminders about upcoming bill payments to avoid service interruptions.
Appointment reminders
Clinics in Kragujevac send SMS reminders to patients about scheduled appointments, reducing no-shows.
More countries in Southern Europe
SMS to Serbia: questions
More answers on accounts, payments and the API are in the FAQ.
How much does it cost to send bulk SMS to Serbia?
How many SMS to Serbia does a $100 top-up send?
How do I write Serbia numbers for the API?
Which language should I use for SMS in Serbia?
How can I reach rural audiences effectively?
Start sending to Serbia
Create an account, top up from $40 and send to Serbia at $0.02897 per segment, from the console or with one API call.