Bulk SMS service at the cheapest price per message.
Send one text to thousands of phones in 227 countries from your browser or the REST API. Every country has its own price per message, shown to five decimals before you confirm, paid from prepaid credit with no monthly fee.
From one test message to 25,000 numbers per campaign.
Or if you are a developer, read the API docs.
Northwind Outlet
Text Message
Flash sale ends Sunday: 30% off all trainers in store and online. Show this text at the till.
Your order 48213 left our Leeds depot and arrives tomorrow between 10:00 and 12:00.
Campaign estimate
$58.20
$0.00485 per message, before you send
Cheap bulk SMS at one price per message, for every size of list
SMSBulk is a bulk SMS service with per-message prices for 227 countries: upload a list in the browser or call the REST API, see the exact cost per country before you send, and pay only for the messages you send from prepaid credit that never expires. Prices are set per destination and stay the same whether you send fifty messages or half a million: no plans, no tiers to qualify for and no monthly minimum. Long and Unicode texts use more segments and each segment is billed at the country price; messages that fail are refunded to your credit automatically.
Send bulk SMS campaigns from the browser
Paste numbers or upload a CSV, write one message with merge fields, and read the cost of every country on the list before you press send. A campaign holds up to 25,000 recipients and leaves at up to 600 messages a minute.
- CSV upload with automatic column mapping and named merge fields
- Duplicates, bad formats and do-not-send numbers left out, with the reason per line
- Cost per country, segments and credit after, before you confirm
- Send now or schedule up to 90 days ahead; cancel a scheduled send for a full refund
| Destination | Recipients | Subtotal |
|---|---|---|
| 5,200 | $25.22 | |
| 2,400 | $18.12 | |
| 1,900 | $4.46500 | |
| 1,650 | $24.66750 | |
| 820 | $11.43900 | |
| 640 | $12.25600 |
12,610 recipients, 1 segment each$96.16750
Send bulk SMS through the REST API
One JSON request sends to up to 8,000 numbers with their own merge values. Ask for a quote first and the answer carries the same per-country lines the console shows, so your software knows the cost before it commits.
- POST /quote and POST /send with the same body
- Signed delivery webhooks, 8 attempts over 12 hours
- Campaign and message status by id, filters by number and client reference
- 300 requests a minute per key, keys made and revoked in the console
POST /rest/v1/quote
{
"recipients": 3,
"messages": 3,
"encoding": "GSM-7",
"total": "0.02495",
"countries": [
{ "country": "US", "recipients": 1, "rate": "0.00485" },
{ "country": "GB", "recipients": 1, "rate": "0.00755" },
{ "country": "MX", "recipients": 1, "rate": "0.01255" }
],
"left_out": []
}Schedule, test and repeat without rebuilding a list
Send a test to your own phone at the country price, pick a start time in your own time zone, and reuse what worked: saved lists, templates, a copy of an earlier campaign or a resend to only the numbers that failed.
- Test to one number with the first recipient's merge values
- Schedules from 5 minutes to 90 days ahead, shown in local time and UTC
- 50 saved lists and 50 templates per account
- Do-not-send list that the console and the API both respect
Schedule this campaign?
- Starts
- Mon 09:00 (UTC 08:00)
- Recipients
- 4,320
- Countries
- Total
- $58.10
Credit is reserved now and refunded in full if you cancel before it starts.
Check the bulk SMS price for any country
Per message
$0.00485
$40 buys
8,247
One segment of up to 160 plain characters. United States price details
Every destination carries one price per SMS segment. The same figure appears on its country page, in the console composer, in the API rates endpoint and on your ledger when you send.
- Lowest today: Brazil at $0.00235 per SMS
- Failed messages are refunded to your credit
- Top-ups from $40, +10% on a first top-up; credit never expires
Recipients
+1 415 555 0142, Maria
+44 7400 123456, Tom
+52 55 1234 5678, Ana
11,000 will receive it
Message
Hi {{first_name}}, your table at Harbour Grill is booked for Friday 19:30. Show this message at the door.
105 characters, 1 segment, GSM-7
Cost by country
| 6,420 | $31.13700 | |
| 1,880 | $9.68200 | |
| 1,215 | $9.17325 | |
| 940 | $11.79700 | |
| 545 | $7.60275 |
Text Message
Hi Maria, your table at Harbour Grill is booked for Friday 19:30. Show this message at the door.
1 of 11,000
One console for every campaign
Recipients on the left, the live cost of each country in the middle, the message as the phone shows it on the right. Change a word and the segments and total update before you send.
Create your accountOr send through the bulk SMS API
Five endpoints cover the whole job
Quote, send, read a campaign, read a message, cancel a scheduled send. Bearer keys, JSON in and out, plain error codes, and webhooks signed with your own secret.
Read the API docscurl https://smsbulk.cc/rest/v1/send \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"recipients": [
{ "to": "+14155550142", "fields": { "name": "Maria" } },
{ "to": "+447400123456", "fields": { "name": "Tom" } }
],
"text": "Hi {{name}}, your order ships today.",
"client_ref": "order-batch-17"
}'const res = await fetch("https://smsbulk.cc/rest/v1/send", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
recipients: [
{ to: "+14155550142", fields: { name: "Maria" } },
{ to: "+447400123456", fields: { name: "Tom" } },
],
text: "Hi {{name}}, your order ships today.",
client_ref: "order-batch-17",
}),
});
const data = await res.json();
console.log(res.status, data.campaign?.id, data.campaign?.cost);import requests
res = requests.post(
"https://smsbulk.cc/rest/v1/send",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"recipients": [
{"to": "+14155550142", "fields": {"name": "Maria"}},
{"to": "+447400123456", "fields": {"name": "Tom"}},
],
"text": "Hi {{name}}, your order ships today.",
"client_ref": "order-batch-17",
},
timeout=30,
)
data = res.json()
print(res.status_code, data.get("campaign", {}).get("id"))<?php
$body = json_encode([
"recipients" => [
["to" => "+14155550142", "fields" => ["name" => "Maria"]],
["to" => "+447400123456", "fields" => ["name" => "Tom"]],
],
"text" => "Hi {{name}}, your order ships today.",
"client_ref" => "order-batch-17",
]);
$ch = curl_init("https://smsbulk.cc/rest/v1/send");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer YOUR_API_KEY", "Content-Type: application/json"],
CURLOPT_POSTFIELDS => $body,
]);
$data = json_decode(curl_exec($ch), true);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), " ", $data["campaign"]["id"] ?? "", PHP_EOL;Bulk SMS cost calculator
Pick a destination, the number of messages and their length. The total uses the same price list the console charges, and the cards show how many messages each top-up buys there.
Estimate your volume and see the cost
10,000 messages to United States, 1 segment each
$48.50
$0.00485 per segment. Failed messages are refunded to credit.
Top up $40
8,247
messages to United States
First top-up: 9,072 with +10% bonus credit
Top up $100
20,618
messages to United States
First top-up: 24,742 with +20% bonus credit
Top up $500
103,092
messages to United States
First top-up: 139,175 with +35% bonus credit
Top up $1,000
206,185
messages to United States
First top-up: 288,659 with +40% bonus credit
Bulk SMS to 227 countries and territories from one credit balance
- North Americafrom $0.00485
- Central America and the Caribbeanfrom $0.00675
- South Americafrom $0.00235
- Western Europe and the British Islesfrom $0.00675
- The Nordics and the Balticsfrom $0.00655
- Southern Europefrom $0.00395
- Central and Eastern Europefrom $0.00485
- Russia, the Caucasus and Central Asiafrom $0.00705
- The Middle Eastfrom $0.00295
- North Africafrom $0.01725
- West and Central Africafrom $0.00595
- East and Southern Africafrom $0.00705
- South Asiafrom $0.00895
- East and Southeast Asiafrom $0.00265
- Oceania and the Pacificfrom $0.00485
Why high-volume senders choose SMSBulk
One price per message
Each of the 227 destinations has a single price per SMS segment. There are no plans or volume tiers to reach: the price you see at ten messages is the price at a hundred thousand.
Refunds for failed messages
When the network reports a message as failed, its price returns to your credit on its own ledger line. Canceling a scheduled campaign refunds it in full.
Cost before you send
The console prices every recipient with their own merged text, then shows the total, the segments, each country's subtotal and the credit left after sending.
Credit that never expires
Top up from $40 and spend it at your own pace, on campaigns, tests and API calls alike. Unused credit stays on the account.
Lists up to 25,000 per campaign
Upload CSV or TXT up to 5 MB, map the phone column and the merge fields, and keep the list for next time. The API takes larger volumes in batches.
Reports you can export
Delivered, sent and failed counts per campaign and country, a searchable message log, and CSV exports of messages, ledger and monthly statements.
What bulk SMS is and how SMSBulk prices it
Bulk SMS means sending the same text message, or the same template with personal values, to a large list of mobile numbers in one go. Shops announce sales and opening hours, couriers send delivery windows, schools and clubs send closures and fixtures, clinics send appointment reminders, and apps send sign-in codes and alerts. A text reaches every mobile phone without an app or a data connection, which is why it stays the channel for lists that must all get the message.
What counts as one message
Prices are per SMS segment. A plain text in the GSM-7 alphabet fits 160 characters in one segment; longer texts are split into parts of 153 characters each. Texts with emoji or letters outside GSM-7 use Unicode, with 70 characters in one segment and 67 per part when split. A 320-character plain text is three segments, so it costs three times the country price. The console shows the count while you type and points out any character that switched the text to Unicode.
How a campaign is billed
When you confirm, the exact total is taken from your credit in one ledger line. Messages that the network reports as failed come back to your credit automatically, and a scheduled campaign canceled before its start time is refunded in full. Nothing is charged for numbers the console left out, such as duplicates, invalid formats or numbers on your do-not-send list.
How to send bulk SMS in four steps
- Create an account with a single account key, then add funds from $40.
- Paste numbers or upload a CSV; pick a default country for numbers written without +.
- Write the message, add merge fields, and send a test to your own phone.
- Check the per-country total, then send now or schedule a start time.
Who sends bulk SMS with us
Retail and e-commerce teams, delivery and logistics firms, schools, universities and sports clubs, clinics and pharmacies, event organisers, property managers, and software teams that send alerts and codes from their own apps through the API. Most lists mix several countries, so each recipient is priced by their own number and the console groups the cost by destination.
Get sending with SMSBulk
Create an account in under a minute, try the console at no cost, and add funds when the total for your real list looks right.
Create your accountWhat $40 buys, plus +10% on a first top-up
United States8,247SMS
United Kingdom5,298SMS
India2,675SMS
Brazil17,021SMS
Nigeria2,088SMS