Bulk sending on the web · SMS API · 227 countries

Send bulk SMS to 227 countries from $0.0021 per SMS

The TODAY SMS bulk SMS service is an online SMS sending service that delivers to 227 countries worldwide from the web or through the SMS API. Paste recipient numbers or upload a CSV, write your message, then send now or schedule it for the time you want. We show the cost up front at the price per SMS for each country, and failed messages are refunded to your balance.

Delivery report for each recipient
Message previewScheduled

Recipients 2,480 · United States

Your order shipped today. Track: shop.example/t/8K2Q

Characters
52 / 160
Encoding
GSM-7
Parts
1 parts
Estimated cost$10.42

Sends Oct 18 at 10:00

  • Top up with 12 crypto methods
  • Failed SMS refunded to balance
  • Public price per SMS for 227 countries
  • CSV upload · scheduled sending
  • Same balance as receiving codes

Sending verification codes (OTP)

Send sign-up, login and two-factor authentication codes for your own service through the SMS API. One code is one SMS, so costs are simple to work out, and delivery reports show right away whether the code arrived.

Order and booking alerts

Send alerts your customers need to see, such as order received, shipment sent and booking confirmed. For customers abroad, just change the country on the same screen.

Announcements and promotions

Upload a CSV of members who opted in and send announcements or promotions in one go. The number of parts and the total cost are worked out before you send.

SMS API for developers

Use the SMS sending API with the same API key and balance as the verification code API. Send to up to 1,000 recipients in a single request.

Cost estimate

Work out the cost at the price per SMS for each country, even before you sign up.

76 / 160

Your message fits in one SMS

Price per SMS$0.0114
EncodingGSM-7
Parts per message1
Total cost$11.40

Total cost = recipients x parts per message x price per SMS. Failed messages are refunded to your balance.

How to get started

  1. Step 1 Add recipients

    Paste one number per line or upload a CSV file. Numbers in international format with the country code (+1, +44 and so on) are sorted by country automatically, and duplicate numbers get only one message.

  2. Step 2 Write your message and check the cost

    As you type, the character count, parts and cost per country are worked out instantly. You can send a test to your own number first to see how it looks on the phone.

  3. Step 3 Send now or schedule

    Send right away or pick a date and time to schedule it. After sending, check sent, delivered and failed in the delivery report for each recipient.

TODAY SMS sending features

  • CSV upload and paste

    Add up to 10,000 recipients at once. We find the number column in your CSV automatically and flag invalid and duplicate numbers before you send.

  • Scheduled sending

    Pick the date and time in your device's time zone and it sends at that moment. You can cancel a scheduled send any time before it goes out, and the amount held for it stays in your balance.

  • Delivery reports per recipient

    See the status and time for each number: queued, sent, delivered or failed. For messages that end in failure, the amount for that part goes back to your balance.

  • Test send to one number

    Before sending to many people, send to your own number first to check line breaks, links and characters.

today-sms.com/api/v1
$ curl -X POST https://today-sms.com/api/v1/messages \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to":["+14155550100","+447700900123"],"text":"Your code is 482913"}'
{
  "id": "m_7Q2K9X",
  "status": "queued",
  "recipients": 2,
  "parts": 1,
  "encoding": "GSM-7",
  "cost": "0.0136"
}

227

Countries you can send to

10,000

Max recipients per web send

What is a bulk SMS service?

A bulk SMS service sends the same message, or a message with each recipient's name, to many people in a single job. What would take hours sending one by one from a phone takes minutes on the web or through the SMS API. The TODAY SMS bulk SMS service delivers to 227 countries over international carrier routes and publishes the price per SMS for each country.

The biggest strength of SMS is that it needs no app and opens right away on almost any phone. That is why it is still widely used for messages that must be read, such as verification codes, order and shipping alerts, booking confirmations and payment notices. It reaches customers who do not use messenger apps and works even where the internet is weak.

How does sending SMS online work?

Sending SMS online takes three steps. First, add recipient numbers. Paste numbers or upload a CSV file and we sort them by country code and show duplicates and badly formatted numbers separately. Next, write your message, and the character count, parts and cost per country are worked out instantly. Finally, send now or schedule it.

When you send, the total cost is held from your balance and messages are passed to the route for each country. When carriers report back, the delivery report shows sent, delivered or failed for each recipient. Parts that end in failure are refunded to your balance, so you never pay for messages that did not arrive.

You can do the same with the SMS API. Send up to 1,000 recipients and your message in a single request from your service, get back a message ID and check the status with it. The API key and balance are the same as for receiving verification codes, so one account runs both receiving and sending.

How many characters fit in one SMS?

The length of one SMS depends on the characters you use. With only English letters, numbers and basic symbols, GSM-7 encoding fits up to 160 characters in one SMS. If even one Korean, Japanese, Chinese or Arabic character or emoji is included, it switches to Unicode (UCS-2) and fits up to 70 characters in one SMS.

Longer messages are sent in several parts and joined back into one message on the receiving phone. Split messages carry joining information, so each part holds up to 153 GSM-7 or 67 Unicode characters. For example, 300 English characters count as 2 parts, and 100 Korean characters count as 2 parts. Enter your text in the calculator above to see the number of parts right away.

Keeping costs down is simple. For customers abroad, write in English within 160 characters, use short links and include only what is needed. Some symbols, such as curly and square brackets and the euro sign, count as two characters even in GSM-7.

How much does it cost to send SMS abroad?

The cost of sending SMS abroad depends on the destination country and the number of parts. TODAY SMS publishes the price per SMS for every country, and the cheapest country starts at $0.0021 per SMS. The US is $0.0042 per SMS, the UK $0.0066 and India $0.0131. You can see every country's price in a table on the SMS prices by country page.

Total cost is recipients x parts per message x price per SMS. Sending a one-part English SMS to 1,000 people in the US costs 1,000 x 1 x $0.0042, and if the same message in Korean becomes 2 parts, it doubles. There is no monthly fee, sign-up fee or sender number fee, and only what you send is taken from your balance.

Can I schedule bulk SMS?

Yes, you can schedule bulk SMS. Pick a date and time on the sending screen and it goes out at that moment in your device's time zone. When sending to countries in other time zones, it is best to schedule for hours when recipients are awake.

You can cancel a scheduled send from the list any time before it goes out. The amount held when you scheduled it stays in your balance if you cancel. When you send the same message to several countries, you can also schedule each country separately at a different time.

How do I upload recipients with a CSV?

Save the column with the numbers in Excel or Google Sheets as a CSV and upload it. A header row is fine, and we find the number column automatically. Numbers are most accurate in international format with the country code (+1 415 555 0100, +44 7700 900123). Spaces, brackets and hyphens are removed automatically.

After uploading, we first show the number of valid, duplicate and badly formatted numbers. Only valid numbers are sent, and you can download the invalid ones to fix them. You can upload up to 10,000 recipients at a time. For more, split them into several sends or use the API.

Can I pay for SMS with USDT?

Yes. Your TODAY SMS balance is topped up in a secure PayGate (paygate.cx) checkout with 12 crypto methods including USDT, USDC and BTC, from $25 to $5,000 per payment. Once the top-up is confirmed it is added to your balance, and a first top-up of $40 or more comes with a one-time bonus.

Your balance works for both receiving verification codes and sending SMS. Your balance never expires. Amounts for failed messages and cancelled scheduled sends also come back to this balance.

What rules should I follow when sending SMS?

Send SMS only to numbers whose owners have agreed to receive them, such as numbers collected at sign-up or checkout and lists of people who opted in. In promotional SMS, state who is sending and include a way to opt out. Each country has its own rules on when promotional SMS can be sent and how they must be labeled, so check the rules of the destination country first.

Voice phishing, messages that impersonate others, ads for illegal products and mass ads without consent cannot be sent. If such sending is found, we can stop the sending and close the account. Full details are in the Terms of Service.

See the price per SMS in SMS prices by country, API usage in SMS API and the API docs, and refund rules in the Refund Policy.

Receive verification codes and send SMS with one account

Sign up with a single account token and use one USDT-funded balance for both receiving verification codes and sending bulk SMS. Prices are published for every country.