Send messages to your customers in their preferred channel through SMS, WhatsApp or Viber Messages. SMS.to offers a powerful web platform and API, providing a smarter way for businesses to communicate with customers in multiple channels. Integrate SMS.to rich messaging in your workflow with our OmniMessaging & SMS Gateway.
Fill details below to calculate your SMS campaign cost
High volume?
Contact Sales →
No contracts, no commitments, pay only for what you use. Additional discounts for high volume SMS API usage.
We will help you stay compliant to different privacy laws and regulations like GDPR with our built in features.
Gather meaningful analytics and activity metrics by tracking clicks on your links.
Improve Delivery rates by relying on our direct connections with global carriers for time sensitive delivery.
We invest in Security & Certifications and we are big believers in Transparency providing detailed reporting about any service you buy from us.
Our Powerful Message Editor offers up to 5 dynamic fields to personalise and engage your audience, send meaningful custom reminders and more.
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.
Implement SMS notifications, OTP, reminders etc. into your workflow and build apps that send SMS with our redundant SSL SMS API. *
curl --location 'https://api.sms.to/sms/send' \ --header 'Authorization: Bearer <api_key>' \ --header 'Content-Type: application/json' \ --data '{ "message": "This is test and \n this is a new line", "to": "+35799999999999", "bypass_optout": true, "sender_id": "SMSto", "callback_url": "https://example.com/callback/handler" }'
<?php $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://api.sms.to/sms/send', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS =>'{ "message": "This is test and \\n this is a new line", "to": "+35799999999999", "bypass_optout": true, "sender_id": "SMSto", "callback_url": "https://example.com/callback/handler" }', CURLOPT_HTTPHEADER => array( 'Authorization: Bearer <api_key>', 'Content-Type: application/json' ), )); $response = curl_exec($curl); curl_close($curl); echo $response;
var https = require('follow-redirects').https; var fs = require('fs'); var options = { 'method': 'POST', 'hostname': 'api.sms.to', 'path': '/sms/send', 'headers': { 'Authorization': 'Bearer <api_key>', 'Content-Type': 'application/json' }, 'maxRedirects': 20 }; var req = https.request(options, function (res) { var chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function (chunk) { var body = Buffer.concat(chunks); console.log(body.toString()); }); res.on("error", function (error) { console.error(error); }); }); var postData = JSON.stringify({ "message": "This is test and \n this is a new line", "to": "+35799999999999", "bypass_optout": true, "sender_id": "SMSto", "callback_url": "https://example.com/callback/handler" }); req.write(postData); req.end();
require "uri" require "json" require "net/http" url = URI("https://api.sms.to/sms/send") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = "Bearer <api_key>" request["Content-Type"] = "application/json" request.body = JSON.dump({ "message": "This is test and \n this is a new line", "to": "+35799999999999", "bypass_optout": true, "sender_id": "SMSto", "callback_url": "https://example.com/callback/handler" }) response = https.request(request) puts response.read_body
import http.client import json conn = http.client.HTTPSConnection("api.sms.to") payload = json.dumps({ "message": "This is test and \n this is a new line", "to": "+35799999999999", "bypass_optout": True, "sender_id": "SMSto", "callback_url": "https://example.com/callback/handler" }) headers = { 'Authorization': 'Bearer <api_key>', 'Content-Type': 'application/json' } conn.request("POST", "/sms/send", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
OkHttpClient client = new OkHttpClient().newBuilder() .build(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\r\n \"message\": \"This is test and \\n this is a new line\",\r\n \"to\": \"+35799999999999\",\r\n \"bypass_optout\": true,\r\n \"sender_id\": \"SMSto\",\r\n \"callback_url\": \"https://example.com/callback/handler\"\r\n}"); Request request = new Request.Builder() .url("https://api.sms.to/sms/send") .method("POST", body) .addHeader("Authorization", "Bearer <api_key>") .addHeader("Content-Type", "application/json") .build(); Response response = client.newCall(request).execute();
package main import ( "fmt" "strings" "net/http" "io/ioutil" ) func main() { url := "https://api.sms.to/sms/send" method := "POST" payload := strings.NewReader(`{`+" "+` "message": "This is test and \n this is a new line",`+" "+` "to": "+35799999999999",`+" "+` "bypass_optout": true,`+" "+` "sender_id": "SMSto",`+" "+` "callback_url": "https://example.com/callback/handler"`+" "+` }`) client := &http.Client { } req, err := http.NewRequest(method, url, payload) if err != nil { fmt.Println(err) return } req.Header.Add("Authorization", "Bearer <api_key>") req.Header.Add("Content-Type", "application/json") res, err := client.Do(req) if err != nil { fmt.Println(err) return } defer res.Body.Close() body, err := ioutil.ReadAll(res.Body) if err != nil { fmt.Println(err) return } fmt.Println(string(body)) }