Viber Messaging

Reach over 900 Million users with Viber. Viber Messaging allows you to send messages of up to 1000 characters without any symbol and encoding restrictions.

You may add to your text to an image, a button to a personal page, a link, stickers, emoticons, video and voice, delivered to every country of the world.

Exceed SMS limitations for length and interactivity. Deliver messages with fallback to SMS if your customers dont support Viber.

Pay only for a delivered message. At a fixed price.

Free Trial - No Credit Card Required

Our Prices


Destination

Bulk Rates

No contracts, no commitments, pay only for what you use. In case of high volume SMS API usage, our sales team is prepared to give out additional discounts. Contact us to for more details.


Contact Sales →

SMS

Fast, reliable message delivery through our globally connected API

Receive

Viber

Feature Rich messages with Images and SMS Fallback service

Receive

WhatsApp

WhatsApp Business messaging service

Viber Messaging API

Integrate with SMS.to powerful Viber Messaging API


GET API KEY →
curl --location 'https://api.sms.to/viber/send' \
--header 'Authorization: Bearer <api_key>' \
--header 'Content-Type: application/json' \
--data '{
    "message": "This is a test message",
    "to": "+35799999999999",
    "callback_url": "https://example.com/callback/handler",
    "viber_image_url": "https://example.com/callback/handler",
    "viber_target_url": "https://example.com/callback/handler",
    "viber_caption": "Test"
}'
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.sms.to/viber/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 a test message",
    "to": "+35799999999999",
    "callback_url": "https://example.com/callback/handler",
    "viber_image_url": "https://example.com/callback/handler",
    "viber_target_url": "https://example.com/callback/handler",
    "viber_caption": "Test"
}',
  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': '/viber/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 a test message",
  "to": "+35799999999999",
  "callback_url": "https://example.com/callback/handler",
  "viber_image_url": "https://example.com/callback/handler",
  "viber_target_url": "https://example.com/callback/handler",
  "viber_caption": "Test"
});

req.write(postData);

req.end();
require "uri"
require "json"
require "net/http"

url = URI("https://api.sms.to/viber/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 a test message",
  "to": "+35799999999999",
  "callback_url": "https://example.com/callback/handler",
  "viber_image_url": "https://example.com/callback/handler",
  "viber_target_url": "https://example.com/callback/handler",
  "viber_caption": "Test"
})

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 a test message",
  "to": "+35799999999999",
  "callback_url": "https://example.com/callback/handler",
  "viber_image_url": "https://example.com/callback/handler",
  "viber_target_url": "https://example.com/callback/handler",
  "viber_caption": "Test"
})
headers = {
  'Authorization': 'Bearer <api_key>',
  'Content-Type': 'application/json'
}
conn.request("POST", "/viber/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 a test message\",\r\n    \"to\": \"+35799999999999\",\r\n    \"callback_url\": \"https://example.com/callback/handler\",\r\n    \"viber_image_url\": \"https://example.com/callback/handler\",\r\n    \"viber_target_url\": \"https://example.com/callback/handler\",\r\n    \"viber_caption\": \"Test\"\r\n}");
Request request = new Request.Builder()
  .url("https://api.sms.to/viber/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/viber/send"
  method := "POST"

  payload := strings.NewReader(`{`+"
"+`
    "message": "This is a test message",`+"
"+`
    "to": "+35799999999999",`+"
"+`
    "callback_url": "https://example.com/callback/handler",`+"
"+`
    "viber_image_url": "https://example.com/callback/handler",`+"
"+`
    "viber_target_url": "https://example.com/callback/handler",`+"
"+`
    "viber_caption": "Test"`+"
"+`
}`)

  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))
}

Ready to start with Viber Messaging?


Secure Payments