Or build it with our APIs

Create a scalable messaging solution in minutes.


											
using System.Net.Http.Headers;
using System.Text;

public class Program
{
    public static async Task Main()
    {
        var apiKey = "";
        var apiSecret = "";

      
        var apiCredentials = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{apiKey}:{apiSecret}"));

        
        var jsonSendRequest =
            "{ \"messages\" : [ { \"content\" : \"Hello SMS World from C#\", \"destination\" : \">>Your test phone number<<\" } ] }";

        using var httpClient = new HttpClient();

        var request = new HttpRequestMessage(HttpMethod.Post, "https://rest.beera.dev/BulkMessages")
        {
            Content = new StringContent(jsonSendRequest, Encoding.UTF8, "application/json"),
            Headers =
            {
                Authorization = new AuthenticationHeaderValue("Basic", apiCredentials),
            }
        };

        try
        {
            var response = await httpClient.SendAsync(request);


            if (response.IsSuccessStatusCode)
            {
                Console.WriteLine("Success:");
                Console.WriteLine(await response.Content.ReadAsStringAsync());
            }
            else
            {
                Console.WriteLine("Failure:");
                Console.WriteLine(await response.Content.ReadAsStringAsync());
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("Something went wrong during the network request.");
            Console.WriteLine(e);
        }
    }
}
												
											

											
import java.util.Base64;
import java.util.Base64.Encoder;
import java.nio.charset.StandardCharsets;
import java.io.IOException;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.net.URISyntaxException;

public class JavaExample {
    public static void main(String[] args) throws URISyntaxException {

        String apiKey = "";
        String apiSecret = "";
        String accountApiCredentials = apiKey + ":" + apiSecret;

        Encoder base64Encoder = Base64.getUrlEncoder();
        byte[] credentialBytes = accountApiCredentials.getBytes(StandardCharsets.UTF_8);
        String base64Credentials = base64Encoder.encodeToString(credentialBytes);

        HttpClient client = HttpClient.newHttpClient();
        String requestBody = "{ \"messages\" : [ { \"content\" : \"Hello SMS World from Java\", \"destination\" : \">>Your test phone number<<\" } ] }";
        HttpRequest request = HttpRequest.newBuilder()
            .uri(new URI("https://rest.beera.dev/BulkMessages"))
            .header("Authorization", String.format("Basic %s", base64Credentials))
            .header("Accept", "application/json")
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(requestBody))
            .build();

        try {
            HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());

            if (response.statusCode() == 200) {
                System.out.println("Success:");
                System.out.println(response.body());
            } else {
                System.out.println("Failure:");
                System.out.println(response.body());
            }
        } catch (Exception e) {
            System.out.println("Something went wrong during the network request.");
            e.printStackTrace();
        }
    }
}												
											

											
$apiKey = '';
$apiSecret = '';
$accountApiCredentials = $apiKey . ':' . $apiSecret;

$base64Credentials = base64_encode($accountApiCredentials);
$authHeader = 'Authorization: Basic ' . $base64Credentials;

$sendData = '{ "messages" : [ { "content" : "Hello SMS World from PHP", "destination" : ">>Your test phone number<<" } ] }';

$options = array(
    'http' => array(
        'header' => array("Content-Type: application/json", $authHeader),
        'method' => 'POST',
        'content' => $sendData,
        'ignore_errors' => true
    )
);

$sendResult = file_get_contents('https://rest.beera.dev/bulkmessages', false, stream_context_create($options));

$status_line = $http_response_header[0];
preg_match('{HTTP\/\S*\s(\d{3})}', $status_line, $match);
$status = $match[1];

if ($status === '200') {
    echo "Success:\n";
    var_dump($sendResult);
} else {
    echo "Failure:\n";
    var_dump($sendResult);
}												
											

											
import requests
from requests.auth import HTTPBasicAuth

apiKey = ''
apiSecret = ''

basic = HTTPBasicAuth(apiKey, apiSecret)

sendRequest = {
    "messages": [{"content": "Hello SMS World from Python", "destination": ">>Your test phone number<<"}]
}

try:
    sendResponse = requests.post("https://rest.beera.dev/bulkmessages",
                                 auth=basic,
                                 json=sendRequest)

    if sendResponse.status_code == 200:
        print("Success:")
        print(sendResponse.json())
    else:
        print("Failure:")
        print(sendResponse.json())
except Exception as e:
    print(e)												
											

											
package main

import (
	"bytes"
	b64 "encoding/base64"
	"fmt"
	"io/ioutil"
	"net/http"
)

func main() {

	var apiKey string = ""
	var apiSecret string = ""

	accountApiCredentials := b64.StdEncoding.EncodeToString([]byte(apiKey + ":" + apiSecret))

    client := &http.Client{}

    jsonSendRequest := "{ \"messages\" : [ { \"content\" : \"Hello SMS World\", \"destination\" : \">>Your test phone number<<\" } ] }"

	sendReq, _ := http.NewRequest("POST", "https://rest.beera.dev/bulkmessages", bytes.NewBuffer([]byte(jsonSendRequest)))
	sendReq.Header.Add("Content-Type", "application/json")
	sendReq.Header.Add("Authorization", fmt.Sprintf("Basic %s", accountApiCredentials))

	sendResp, err := client.Do(sendReq)

	if err == nil {
		defer sendResp.Body.Close()
		sendRespBody, _ := ioutil.ReadAll(sendResp.Body)

		if sendResp.StatusCode == 200 {
			fmt.Println("Success:")
			fmt.Println(string(sendRespBody))
		} else {
			fmt.Println("Failure:")
			fmt.Println(string(sendRespBody))
		}
	} else {
		fmt.Println("Something went wrong during the network request.")
		fmt.Println(err)
	}
}												
											

											
const axios = require('axios');

let apiKey = '';
let apiSecret = '';
let accountApiCredentials = apiKey + ':' + apiSecret;

let buff = new Buffer.from(accountApiCredentials);
let base64Credentials = buff.toString('base64');

let requestHeaders = {
    headers: {
        'Authorization': `Basic ${base64Credentials}`,
        'Content-Type': 'application/json'
    }
};

let requestData = JSON.stringify({
    messages: [{
        content: "Hello SMS World from NodeJS",
        destination: ">>Your test phone number<<"
    }]
});

axios.post('https://rest.beera.dev/bulkmessages', requestData, requestHeaders)

    .then(response => {
        if (response.data) {
            console.log("Success:");
            console.log(response.data);
        }
    })
    .catch(error => {
        if (error.response) {
            console.log("Failure:");
            console.log(error.response.data);
        } else {
            console.log("Something went wrong during the network request.");
        }
    });												
											

											
require 'net/https'
require 'uri'

apiKey = ''
apiSecret = ''

uri = URI.parse("https://rest.beera.dev/bulkmessages")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

sendRequestBody = '{"messages": [{"content": "Hello SMS World from Ruby", "destination": ">>Your test phone number<<"}}]'

request = Net::HTTP::Post.new(uri.request_uri)
request.basic_auth(apiKey, apiSecret)
request.body = sendRequestBody
request.content_type = 'application/json'

sendResponse = http.request(request)

if sendResponse.code == '200'
    puts 'Success:'
    puts sendResponse.body
else
    puts 'Failure:'
    puts sendResponse.body
end												
											

											
$apiKey = "";
$apiSecret = "";
$accountApiCredentials = "$($apiKey):$($apiSecret)";

$credentialBytes = [System.Text.Encoding]::UTF8.GetBytes($accountApiCredentials)
$base64Credentials =[Convert]::ToBase64String($credentialBytes)

$body = '{ "messages" : [ { "content" : "Hello SMS World from Powershell", "destination" : ">>Your test phone number<<" } ] }'

$sendEndpoint = "https://rest.beera.dev/bulkmessages";
$sendHeaders = @{
    'Authorization' = "Basic $($base64Credentials)"
    'Content-Type' = 'application/json'
}

try
{
    $sendresponse = Invoke-WebRequest -Uri $sendEndpoint -Method Post -Headers $sendHeaders -Body $body -ErrorAction Stop;

    $sendResponseBody = $sendresponse.Content | ConvertFrom-Json
    $sendResponseBody
}
catch
{
    $reader = New-Object System.IO.StreamReader($_.Exception.Response.GetResponseStream())
    $reader.BaseStream.Position = 0
    $reader.DiscardBufferedData()
    $errorResponse = $reader.ReadToEnd() | ConvertFrom-Json

    $errorResponse
}												
											

Integrate with an API built for simplicity.

Build the perfect messaging solution with our easy integration APIs and optimise for scale.

Choose your plan

Choose your SMS plan and sending location

TO

Free

Try our Free plan and start testing. Ideal for getting started and exploring all of the beera.dev products & functionality.

 

$0

100 Free SMS

Recommended

Standard

Choose your ideal plan or bundle size and Pay-as-you-Go. No Subscriptions, No Contracts and pay only for what you need.

From

$0.08

per message

Enterprise

High volume senders can enjoy the Enterprise plan and receive account feature benefits, pricing and VIP support.

 

Get in touch

per SMS volume