Powerful Omni-Channel Communications

SMS.to offers a smarter way for businesses to communicate with customers through multiple channels.
Reach customers in their preferred channel through SMS, WhatsApp or Viber Messages.
Integrate SMS.to rich messaging in your workflow with our OmniMessaging & SMS API Gateway.

Get Started
The specified email address is not valid.

Free Trial - No Credit Card Required

Cost Calculator

Fill details below to calculate your
SMS campaign cost


${{costPerSMS}} price per sms

High volume?

Contact Us →

Simply Pay As You Go

No contracts, no commitments, pay only for
what you use.
Additional discounts for high volume SMS API usage.


BUY SMS CREDITS →

Trusted by businesses worldwide

Privacy Icon Privacy & Regulatory Compliance

We will help you stay compliant to different privacy laws and regulations like GDPR with our built in features.

Shortlink Icon ShortLink Tracking

Gather meaningful analytics and activity metrics by tracking clicks on your links.

Globe Picture Blue Global Delivery

Improve Delivery rates by relying on our direct connections with global carriers for time sensitive delivery.

Security Icon Security & Transparency

We invest in Security & Certifications and we are big believers in Transparency providing detailed reporting about any service you buy from us.

Arrow Personalisation & Dynamic Fields

Our Powerful Message Editor offers up to 5 dynamic fields to personalise and engage your audience, send meaningful custom reminders and more.

Fair Price Fair Price Promise

If you get a lower price elsewhere for an apple to apple comparison in features and service we will try to match it so that you never pay more than you should.

SMS API for Developers

Implement SMS notifications, OTP, reminders etc. into your workflow and build apps that send SMS with our redundant SSL SMS API. *


GET API KEY →
*some of features are still in development. Please refer to our API documentation for more info
#!/bin/bash
                
curl --location --request POST "https://api.sms.to/v1/sms/send" \ --header "Authorization: Bearer xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyz" \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --data "{ \"body\": \"A new post on your favourite forum. Check it out.\", \"to\": \"+355692179931\", \"sender_id\": \"SMS.to\", \"callback_url\": \"https://your-website.com/handle-notification\" }"
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.sms.to/v1/sms/send",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => false,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>'{"body": "A new post on your favourite forum. Check it out.","to": "+355692179931","sender_id": "SMS.to","callback_url": "https://your-website.com/handle-notification"}',
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyz",
"Accept: application/json",
"Content-Type: application/json"
),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

            
import http.client

conn = http.client.HTTPSConnection("api.sms.to")

payload = "{\"body\": \"A new post on your favourite forum. Check it out.\",\"to\": \"+355692179931\",\"sender_id\": \"SMS.to\",\"callback_url\": \"https://your-website.com/handle-notification\"}"

headers = {
'Authorization': "Bearer xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyz",
'Content-Type': "application/json",
'Accept': "application/json"
}

conn.request("POST", "/v1/sms/send", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
            
require 'uri'
require 'net/http'

url = URI("https://api.sms.to/v1/sms/send")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyz'
request["Content-Type"] = 'application/json'
request["Accept"] = 'application/json'
request.body = "{\"body\": \"A new post on your favourite forum. Check it out.\",\"to\": \"+355692179931\",\"sender_id\": \"SMS.to\",\"callback_url\": \"https://your-website.com/handle-notification\"}"

response = http.request(request)
puts response.read_body
            
var client = new RestClient("https://api.sms.to/v1/sms/send");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyz");
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Accept", "application/json");
request.AddParameter("application/json", "{\"body\": \"A new post on your favourite forum. Check it out.\",\"to\": \"+355692179931\",\"sender_id\": \"SMS.to\",\"callback_url\": \"https://your-website.com/handle-notification\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);