Scalable SMS API's for Developers

Programmable and scalable SMS API's in your language of choice. Quickly send instant notifications
for OTP, 2FA, Marketing and integrate with your apps. SMS.to API's are redundant, scalable, and
allow you to send a large number of messages to every country in the world in minutes.

Create an account with SMS.to for free, get an API key and get started with our API gateway in 5 minutes or less.


Read Docs Get The SDKs

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 →
curl -L -X POST "https://api.sms.to/sms/send" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <YOUR_API_KEY_OR_ACCESS_TOKEN>" \
-d "{
		\"message\": \"This is a test message\",
		\"to\": \"+355692179931\",
		\"sender_id\": \"SMS.to\",
		\"callback_url\": \"https://sms.to/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 =>"{\n    \"message\": \"This is a test message\",\n    \"to\": \"+355692179931\",\n    \"sender_id\": \"SMS.to\",\n    \"callback_url\": \"https://sms.to/callback/handler\"\n}",
	CURLOPT_HTTPHEADER => array(
			"Content-Type: application/json",
			"Accept: application/json",
			"Authorization: Bearer <YOUR_API_KEY_OR_ACCESS_TOKEN>"
		),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
var https = require('follow-redirects').https;

var options = {
	'method': 'POST',
	'hostname': 'https://api.sms.to',
	'path': '/sms/send',
	'headers': {
		'Content-Type': 'application/json',
		'Authorization': 'Bearer <YOUR_API_KEY_OR_ACCESS_TOKEN>'
	},
	'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 =  "{\n    \"message\": \"This is a test message\",\n    \"to\": \"+355692179931\",\n    \"sender_id\": \"SMS.to\",\n    \"callback_url\": \"https://sms.to/callback/handler\"\n}";

req.write(postData);

req.end();
require "uri"
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["Content-Type"] = "application/json"
request["Authorization"] = "Bearer <YOUR_API_KEY_OR_ACCESS_TOKEN>"
request.body = "{\n    \"message\": \"This is a test message\",\n    \"to\": \"+355692179931\",\n    \"sender_id\": \"SMS.to\",\n    \"callback_url\": \"https://sms.to/callback/handler\"\n}"

response = https.request(request)
puts response.read_body
import http.client
conn = http.client.HTTPSConnection("https://api.sms.to")
payload = "{\n    \"message\": \"This is a test message\",\n    \"to\": \"+355692179931\",\n    \"sender_id\": \"SMS.to\",\n    \"callback_url\": \"https://sms.to/callback/handler\"\n}"
headers = {
	'Content-Type': 'application/json',
	'Authorization': 'Bearer <YOUR_API_KEY_OR_ACCESS_TOKEN>'
}
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, "{\n    \"message\": \"This is a test message\",\n    \"to\": \"+355692179931\",\n    \"sender_id\": \"SMS.to\",\n    \"callback_url\": \"https://sms.to/callback/handler\"\n}");
Request request = new Request.Builder()
	.url("https://api.sms.to/sms/send")
	.method("POST", body)
	.addHeader("Content-Type", "application/json")
	.addHeader("Authorization", "Bearer <YOUR_API_KEY_OR_ACCESS_TOKEN>")
	.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("{\n    \"message\": \"This is a test message\",\n    \"to\": \"+355692179931\",\n    \"sender_id\": \"SMS.to\",\n    \"callback_url\": \"https://sms.to/callback/handler\"\n}")

	client := &http.Client {
	}
	req, err := http.NewRequest(method, url, payload)

	if err != nil {
		fmt.Println(err)
	}
	req.Header.Add("Content-Type", "application/json")
	req.Header.Add("Authorization", "Bearer <YOUR_API_KEY_OR_ACCESS_TOKEN>")

	res, err := client.Do(req)
	defer res.Body.Close()
	body, err := ioutil.ReadAll(res.Body)

	fmt.Println(string(body))
}
Secure Payments