www.reach-interactive.com Open in urlscan Pro
62.7.174.71  Public Scan

URL: https://www.reach-interactive.com/sms-api/api/
Submission: On March 22 via api from US — Scanned from GB

Form analysis 1 forms found in the DOM

<form action="" onsubmit="LO.submit_chat(); return false;">
  <div id="lo_chat_input" style="position:relative; width: 100%; ">
    <div class="lo-fx-hr" style="height:0px; margin-bottom:0px; margin-top:0px; width:100%; border-top:1px solid #000000;border-bottom:1px solid #4f4f4f"></div>
    <div style="padding:10px;"><label for="lo_chat_textarea" style="display:none">Chat Input Box</label><textarea id="lo_chat_textarea" disabled="disabled" rows="2"
        style="color: black; background-color: rgb(255, 255, 255); border-radius: 5px; padding: 7px; height: auto; width: 100%; font-family: sans-serif; text-transform: none; resize: none;" dir="null" data-last-scroll-height="0"></textarea></div>
    <div id="lo_chat_sound_holder" style="position:absolute; right:0px; top:-25px; width:100%;">
      <div style="cursor: pointer; float:right; opacity:0.6; padding-right:10px; height:16px;" id="lo_chat_sound"><img alt="Click to mute chat sounds" src="https://d10lpsik1i8c69.cloudfront.net/graphics/sound-on-white.png"></div>
      <div id="lo_chat_status" style="padding-left:10px; font-size:11px; color:#6d6d6d"></div>
      <div style="clear:both;"></div>
    </div>
  </div>
</form>

Text Content

This website stores data such as cookies to enable necessary site functionality,
including analytics, targeting, and personalisation. You may change your
settings at any time or accept the default settings. Privacy Policy
   
   
   
 * Marketing
   
   
 * Personalisation
   
   
 * Analytics
   
   
   

Save Accept All


 * 
 * 

 * +44 (0) 3333 111 020
 * sales@reach-data.com
 * Contact Reach

 * 

 * FEATURES
   * WEB BASED SMS
   * SHORT CODES
   * EMAIL SMS
   * ATTACH DOCUMENTS
   * LANDING PAGES
   * LINK SHORTENING
   * INBOUND TEXT NUMBERS
 * PRICING
 * WHY REACH?
   * ABOUT REACH
   * WHY USE SMS?
   * BUSINESS BENEFITS
   * SUCCESS STORIES
   * RESOURCES & BLOG
   * OUR CHARITY PROGRAMME
   * THE REACH PODCAST
   * CONTACT REACH
 * SMS API
 * LOGIN
 * FREE TRIAL

 * Menu

 * FEATURES
   * WEB BASED SMS
   * SHORT CODES
   * EMAIL SMS
   * ATTACH DOCUMENTS
   * SMS API
   * LINK SHORTENING
   * INBOUND TEXT NUMBERS
 * PRICING
 * WHY REACH?
   * ABOUT REACH
   * WHY USE SMS
   * BULK SMS PROVIDER
   * BUSINESS BENEFITS
   * SUCCESS STORIES
   * RESOURCES & BLOG
   * OUR CHARITY PROGRAMME
   * THE REACH PODCAST
   * CONTACT REACH
 * SMS API
 * LOGIN
 * FREE TRIAL
 * 


FEATURES


API

GET YOUR API KEY

LOGIN

FREE TRIAL


FEATURES


API

ORDER 10K TEXTS GET 10K FREE

 * Introduction
 * SMPP
 * Authentication
 * HTTP Status Codes
 * DLR Codes
 * Messaging
 * Balance
 * Message Send
 * Message Details
 * Message Delete
 * Delivery Report
 * Inbound


SMS API DOCUMENTATION

Our API gateway lets you connect to our interfaces over HTTP/S and allows your
applications to integrate SMS over the internet. Our API uses a RESTful endpoint
and our request and response payloads are formatted as JSON but we also provide
GET as an alternative.

All you need to use our service is a free account and your authentication
details are accessible after you sign up.

SMPP

We support SMPP Version 3.4. If you require an SMPP bind, please contact
sales@reach-data.com and we will happy to set things up for you.

Authentication

All requests require your username and password being passed across in the
header. These can be found once you have logged in under Support > Developer >
API Details

Header Description username Your Reach Interactive API Username password Your
Reach Interactive API Password

HTTP Status Code

Code Description 200 Successful Request 400 Details not correct or missing
mandatory parameters 401 Invalid Account details 402 Out of Credits 403 Account
forbidden for this action. 500 Service error. 503 The Service is unavailable.

DLR Codes

DLR codes are the same for our API's and our SMPP binds.

Code Description 000 Delivered 600 No credits to send 601 No route 602
Blacklisted number detected 603 Bad destination number 604 Bad source number 605
Target SMSC message queue 606 Target SMSC submit fail 607 General error 608 Spam
message detected 609 Validity period expired 610 Unauthorised Source address 611
Unknown DLR code 612 Submit timeout

Messaging

The URI for this section is

                            
                                 https://api.reach-interactive.com/sms/[Action]
                            
                            

Balance Action

The URI for this section is

                            
                                GET/sms/balance
                            
                            

Required Parameters

There are no extra parameters for the Balance

 * C#
 * cURL
 * PHP

                                            
                                        using System;
                                        using System.IO;
                                        using System.Net;
                                        using System.Web.Script.Serialization;
                                        namespace Sms
                                        {
                                        class Program
                                        {
                                        static void Main(string[] args)
                                        {
                                        var serializer = new JavaScriptSerializer();
                                        try
                                        {
                                        var url = "http://api.reach-interactive.com/sms/balance";
                                        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                                        request.ContentType = "application/json";
                                        request.Method = "GET";
                                        request.Headers.Add("Username", "Your Reach Username");
                                        request.Headers.Add("Password", "Your Reach Password");
                                        using (var response = (HttpWebResponse)request.GetResponse())
                                        {
                                        using (var reader = new StreamReader(response.GetResponseStream()))
                                        {
                                            var jsonResponse = reader.ReadToEnd();
                                            dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                                            Console.WriteLine("Success: {0}, Balance: {1}, Description: {2}", 
                                                                data["Success"], 
                                                                data["Balance"], 
                                                                data["Description"]);
                                        }
                                        }
                                        }
                                        catch (WebException err)
                                        {
                                        using (var response = err.Response.GetResponseStream())
                                        using (var reader = new StreamReader(response))
                                        {
                                        var jsonResponse = reader.ReadToEnd();
                                        try
                                        {
                                            dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                                            Console.WriteLine("Success: {0}, Description: {1}, HTTP Status Code: {2}", 
                                                                data["Success"], 
                                                                data["Description"],
                                                                (int)((HttpWebResponse)err.Response).StatusCode);
                                        }
                                        catch (Exception)
                                        {
                                            Console.WriteLine(jsonResponse);
                                        }
                                        }
                                        }
                                        catch (Exception err)
                                        {
                                        Console.WriteLine(err.Message);
                                        }
                                        Console.ReadKey();
                                        }
                                        }
                                        }
                    
                

                                    
curl http://api.reach-interactive.com/sms/balance -H username: YourReachUserName' -H password: YourReachPassword'; 
                    
                

                                    
<?php
    $url = "http://api.reach-interactive.com/sms/balance"; 
    // The data to send to the API
    $header = array();
    $header[] = 'Accept: application/json';
    $header[] = 'username: Your Reach Username';
    $header[] = 'password: Your Reach Password';
    //cURL starts
    $crl = curl_init();
    curl_setopt($crl, CURLOPT_URL, $url);
    curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($crl, CURLOPT_HTTPGET, true);                                                                                                            
                                                                                                                     
    $json_response = curl_exec($crl);
    $status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
    if ( $status != 200 ) {
        die("Error: call to URL $url failed with status $status, response $json_response curl_error " . curl_error($crl) . " curl_errno " . curl_errno($crl));
    }
    else{
        $response = json_decode($json_response, true);
        print_r($response);
    }
    curl_close($crl); 
?>
                    
                

Message Send

Creates a new message object. We return an array of each Id generated. Per
request, a max of 50 recipients can be entered.

                            
                                POST/sms/message
                            
                            

Required Parameters

Parameter Description to The Number that you want to send to, can be multiple
numbers seperated by a ',' or ';' from Who the message will appear to be from
message The message to send to the phone, the first 160 characters will be a
single message, anything over will be split down into messages the size of 153
characters.
For Unicode, this is the text encoded in hexadecimal
For Binary messaging, this the User Data (140 octets max)

Optional Parameters

Parameter Description Default valid How many hours that you require us to try to
send the SMS for before it is expired, the minimum for this is 15 minutes (0.25)
72 reference A reference that you want saved against the message in our system
callbackUrl The URL that you want us to send the delivery report to. See below
in the Delivery Report for more information scheduled The Date and Time you want
the message to be sent (yyyy/MM/dd hh:mm) coding The type of message you would
like to send, 1 = Text, 2 = Unicode, 3 = Binary 1 udh User Data Header

Example JSON Payload

                               
{ 
    "to" : "447xxxxxxxxx", 
    "from" : "Reach", 
    "message" : "Test Json Send" 
}
            
        

 * C#
 * cURL
 * PHP

                                            
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
namespace Sms
{
    class Program
    {
        static void Main(string[] args)
        {
            var serializer = new JavaScriptSerializer();
            try
            {
                var url = "http://api.reach-interactive.com/sms/message";
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.ContentType = "application/json";
                request.Method = "POST";
                request.Headers.Add("Username", "Your Reach Username");
                request.Headers.Add("Password", "Your Reach Password");
                using (var streamWriter = new StreamWriter(request.GetRequestStream()))
                {
                    string json = "{ \"to\" : \"447xxxxxxxxx\", \"from\" : \"Reach\", \"message\" : \"Test API Message\"}";
                    streamWriter.Write(json);
                    streamWriter.Flush();
                    streamWriter.Close();
                }
                using (var response = (HttpWebResponse)request.GetResponse())
                {
                    using (var reader = new StreamReader(response.GetResponseStream()))
                    {
                        var jsonResponse = reader.ReadToEnd();
                        dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                        foreach (Dictionary<string, dynamic> item in data)
                        {
                            Console.WriteLine("Success: {0}, Id: {1}, Description: {2}", 
                                                item["Success"], 
                                                item["Id"], 
                                                item["Description"]);
                        }
                    }
                }
            }
            catch (WebException err)
            {
                using (var response = err.Response.GetResponseStream())
                using (var reader = new StreamReader(response))
                {
                    var jsonResponse = reader.ReadToEnd();
                    try
                    {
                        dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                        Console.WriteLine("Success: {0}, Description: {1}, HTTP Status Code: {2}",
                            data["Success"],
                            data["Description"],
                            (int) ((HttpWebResponse) err.Response).StatusCode);
                    }
                    catch (Exception)
                    {
                        Console.WriteLine(jsonResponse);
                    }
                }
            }
            catch (Exception err)
            {
                Console.WriteLine(err.Message);
            }
            Console.ReadKey();
        }
    }
}
                    
                

                                            
                                                curl -X "POST" http://api.reach-interactive.com/sms/message -H username: YourReachUsername -H password: YourReachPassword -H 
                                                "Content-Type: application/json -d "{\"to\":\"RecipientPhoneNumber\",\"from\":\"FromName\",\"message\":\"YourMessage\"}"
                    
                

                                    
<?php
    $url = "http://api.reach-interactive.com/sms/message"; 
    // The data to send to the API
    $header = array();
    $header[] = 'Accept: application/json';
    $header[] = 'Content-Type: application/json';
    $header[] = 'username: Your Reach Username';
    $header[] = 'password: Your Reach Password';
    $data = array("to" => "447xxxxxxxxx", "from" => "Reach", "message" => "Test API PHP send");                                                                    
    $data_string = json_encode($data); 
    //cURL starts
    $crl = curl_init();
    curl_setopt($crl, CURLOPT_URL, $url);
    curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);  
    curl_setopt($crl, CURLOPT_POSTFIELDS, $data_string); 
    curl_setopt($crl, CURLOPT_CUSTOMREQUEST, "POST");                                                                                                            
                                                                                                                     
    $json_response = curl_exec($crl);
    $status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
    if ( $status != 200 ) {
        die("Error: call to URL $url failed with status $status, response $json_response curl_error " . curl_error($crl) . " curl_errno " . curl_errno($crl));
    }
    else{
        $response = json_decode($json_response, true);
        print_r($response);
    }
    curl_close($crl); 
?>
                    
                

Message Details

This can be used to retreive the details of a message sent over our API or SMPP
binds.

                            
                            GET/sms/message/{Id}
                     
                 

 * C#
 * cURL
 * PHP

                                            
using System;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
namespace Sms
{
    class Program
    {
        static void Main(string[] args)
        {
            var serializer = new JavaScriptSerializer();
            try
            {
                var url = "http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa";
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.ContentType = "application/json";
                request.Method = "GET";
                request.Headers.Add("Username", "Your Reach Username");
                request.Headers.Add("Password", "Your Reach Password");
                using (var response = (HttpWebResponse)request.GetResponse())
                {
                    using (var reader = new StreamReader(response.GetResponseStream()))
                    {
                        var jsonResponse = reader.ReadToEnd();
                        dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                        Console.WriteLine("Success: {0}, To: {1}, From: {2}, Text: {3}, Sent: {4}, Status: {5}, Delivered: {6}, Code: {7}, Description: {8}",
                                            data[0]["Success"],
                                            data[0]["To"],
                                            data[0]["Originator"],
                                            data[0]["Text"],
                                            data[0]["Sent Date"],
                                            data[0]["Message Status"],
                                            data[0]["Delivered Date"],
                                            data[0]["DlrCode"],
                                            data[0]["Description"]);
                    }
                }
            }
            catch (WebException err)
            {
                using (var response = err.Response.GetResponseStream())
                using (var reader = new StreamReader(response))
                {
                    var jsonResponse = reader.ReadToEnd();
                    try
                    {
                        dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                        Console.WriteLine("Success: {0}, Description: {1}, HTTP Status Code: {2}", 
                                            data["Success"], 
                                            data["Description"],
                                            (int)((HttpWebResponse)err.Response).StatusCode);
                    }
                    catch (Exception)
                    {
                        Console.WriteLine(jsonResponse);
                    }
                }
            }
            catch (Exception err)
            {
                Console.WriteLine(err.Message);
            }
            Console.ReadKey();
        }
    }
}
                    
                

                                    
curl http://http-1-uat.reach-interactive.com/sms/message/{id} -H username: YourReachUsername -H password: YourReachPassword
                    
                

                                    
<?php
    $url = "http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"; 
    // The data to send to the API
    $header = array();
    $header[] = 'Accept: application/json';
    $header[] = 'username: Your Reach Username';
    $header[] = 'password: Your Reach Password';
    //cURL starts
    $crl = curl_init();
    curl_setopt($crl, CURLOPT_URL, $url);
    curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($crl, CURLOPT_HTTPGET, true);                                                                                                            
                                                                                                                     
    $json_response = curl_exec($crl);
    $status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
    if ( $status != 200 ) {
        die("Error: call to URL $url failed with status $status, response $json_response curl_error " . curl_error($crl) . " curl_errno " . curl_errno($crl));
    }
    else{
        $response = json_decode($json_response, true);
        print_r($response);
    }
    curl_close($crl); 
?>
                    
                

Returned Response

                            
[{
    "Method":"H",
    "To":"447xxxxxxxxx",
    "Originator":"Reach",
    "Text":"Your Message",
    "Sent Date":"2016-06-23T15:27:08.497",
    "Message Status":"Delivered",
    "Delivered Date":"2016-06-23T15:27:17.973",
    "DlrCode":"000",
    "Description":"Unknown Error Code",
    "Reference":"",
    "Success":true
}]
            
        

Message Delete

This can be used to delete a scheduled message that has not been sent.

                            
DELETE  /sms/message/{Id}
            
        

 * C#
 * cURL
 * PHP

                                            
using System;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
namespace Sms
{
    class Program
    {
        static void Main(string[] args)
        {
            var serializer = new JavaScriptSerializer();
            try
            {
                var url = "http://api.reach-interactive.com/sms/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa";
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.ContentType = "application/json";
                request.Method = "DELETE";
                request.Headers.Add("Username", "Your Reach Username");
                request.Headers.Add("Password", "Your Reach Password");
                using (var response = (HttpWebResponse)request.GetResponse())
                {
                    using (var reader = new StreamReader(response.GetResponseStream()))
                    {
                        var jsonResponse = reader.ReadToEnd();
                        dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                        Console.WriteLine("Success: {0}, Description: {1}", 
                                            data["Success"], 
                                            data["Description"]);
                    }
                }
            }
            catch (WebException err)
            {
                using (var response = err.Response.GetResponseStream())
                using (var reader = new StreamReader(response))
                {
                    var jsonResponse = reader.ReadToEnd();
                    try
                    {
                        dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                        Console.WriteLine("Success: {0}, Description: {1}, HTTP Status Code: {2}", 
                                            data["Success"], 
                                            data["Description"],
                                            (int)((HttpWebResponse)err.Response).StatusCode);
                    }
                    catch (Exception)
                    {
                        Console.WriteLine(jsonResponse);
                    }
                }
            }
            catch (Exception err)
            {
                Console.WriteLine(err.Message);
            }
            Console.ReadKey();
        }
    }
}
                    
                

                                            
curl -X "DELETE" http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa -H username: YourReachUsername -H password: YourReachPassword
                    
                

                                    
<?php
    $url = "http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"; 
    // The data to send to the API
    $header = array();
    $header[] = 'Accept: application/json';
    $header[] = 'username: Your Reach Username';
    $header[] = 'password: Your Reach Password';
    //cURL starts
    $crl = curl_init();
    curl_setopt($crl, CURLOPT_URL, $url);
    curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($crl, CURLOPT_CUSTOMREQUEST, "DELETE");	                                                                                                   
                                                                                                                     
    $json_response = curl_exec($crl);
    $status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
    if ( $status != 200 ) {
        die("Error: call to URL $url failed with status $status, response $json_response curl_error " . curl_error($crl) . " curl_errno " . curl_errno($crl));
    }
    else{
        $response = json_decode($json_response, true);
        print_r($response);
    }
    curl_close($crl); 
?>
                    
                

Returned Response

                            
{
    "Success":true,
    "Id":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
    "Description":"Id Removed"
}
            
        

Delivery Report

We can provide an HTTP GET response of the message
These are the parameters that will be passed back

Parameter Description msgid The Id that was originally supplied in the API call
msisdn The number that the delivery report is from timestamp The date and time
of the delivery report status The status of the delivery report code The DLR
code of the message

Extra Information

If you require any more information passed back in the call back, you can add
them to the URL that you supply.
For example if you supply https://www.yourdomain.com/?CustomerId=123 the call
back that then gets send back will be

                                    https://www.yourdomain.com/?CustomerId=123
                                        &MsgId=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
                                        &MSISDN=447xxxxxxxxx&Timestamp=dd/MM/yyyy 
                                        hh:mm:ss&Status=Delivered&Code=000
                                    
                                    

Status

Status Description delivered Delivered successfully rejected Message rejected
expired Message could not be delivered within valid time frame undelivered
Message has not been delivered

Inbound Messages

After purchasing an Inbound long number or Short code keyword. Please Go to
Inbox > Inbox in the menu to view / edit the settings for each Inbound


SMS API DOCUMENTATION

Our API gateway lets you connect to our interfaces over HTTP/S and allows your
applications to integrate SMS over the internet. Our API uses a RESTful endpoint
and our request and response payloads are formatted as JSON but we also provide
GET as an alternative.

All you need to use our service is a free account and your authentication
details are accessible after you sign up.

SMPP

We support SMPP Version 3.4. If you require an SMPP bind, please contact
sales@reach-data.com and we will happy to set things up for you.

Authentication

All requests require your username and password being passed across in the
header. These can be found once you have logged in under Support > Developer >
API Details

Header Description username Your Reach Interactive API Username password Your
Reach Interactive API Password

HTTP Status Code

Code Description 200 Successful Request 400 Details not correct or missing
mandatory parameters 401 Invalid Account details 402 Out of Credits 403 Account
forbidden for this action. 500 Service error. 503 The Service is unavailable.

DLR Codes

DLR codes are the same for our API's and our SMPP binds.

Code Description 000 Delivered 600 No credits to send 601 No route 602
Blacklisted number detected 603 Bad destination number 604 Bad source number 605
Target SMSC message queue 606 Target SMSC submit fail 607 General error 608 Spam
message detected 609 Validity period expired 610 Unauthorised Source address 611
Unknown DLR code 612 Submit timeout

Messaging

The URI for this section is

            
                                 https://api.reach-interactive.com/sms/[Action]
                            
                            

Balance Action

The URI for this section is

            
                                GET/sms/balance
                            
                            

Required Parameters

There are no extra parameters for the Balance

 * C#
 * cURL
 * PHP

                    
                                        using System;
                                        using System.IO;
                                        using System.Net;
                                        using System.Web.Script.Serialization;
                                        namespace Sms
                                        {
                                        class Program
                                        {
                                        static void Main(string[] args)
                                        {
                                        var serializer = new JavaScriptSerializer();
                                        try
                                        {
                                        var url = "http://api.reach-interactive.com/sms/balance";
                                        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                                        request.ContentType = "application/json";
                                        request.Method = "GET";
                                        request.Headers.Add("Username", "Your Reach Username");
                                        request.Headers.Add("Password", "Your Reach Password");
                                        using (var response = (HttpWebResponse)request.GetResponse())
                                        {
                                        using (var reader = new StreamReader(response.GetResponseStream()))
                                        {
                                            var jsonResponse = reader.ReadToEnd();
                                            dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                                            Console.WriteLine("Success: {0}, Balance: {1}, Description: {2}", 
                                                                data["Success"], 
                                                                data["Balance"], 
                                                                data["Description"]);
                                        }
                                        }
                                        }
                                        catch (WebException err)
                                        {
                                        using (var response = err.Response.GetResponseStream())
                                        using (var reader = new StreamReader(response))
                                        {
                                        var jsonResponse = reader.ReadToEnd();
                                        try
                                        {
                                            dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                                            Console.WriteLine("Success: {0}, Description: {1}, HTTP Status Code: {2}", 
                                                                data["Success"], 
                                                                data["Description"],
                                                                (int)((HttpWebResponse)err.Response).StatusCode);
                                        }
                                        catch (Exception)
                                        {
                                            Console.WriteLine(jsonResponse);
                                        }
                                        }
                                        }
                                        catch (Exception err)
                                        {
                                        Console.WriteLine(err.Message);
                                        }
                                        Console.ReadKey();
                                        }
                                        }
                                        }
                    
                

                    
curl http://api.reach-interactive.com/sms/balance -H username: YourReachUserName' -H password: YourReachPassword'; 
                    
                

                    
<?php
    $url = "http://api.reach-interactive.com/sms/balance"; 
    // The data to send to the API
    $header = array();
    $header[] = 'Accept: application/json';
    $header[] = 'username: Your Reach Username';
    $header[] = 'password: Your Reach Password';
    //cURL starts
    $crl = curl_init();
    curl_setopt($crl, CURLOPT_URL, $url);
    curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($crl, CURLOPT_HTTPGET, true);                                                                                                            
                                                                                                                     
    $json_response = curl_exec($crl);
    $status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
    if ( $status != 200 ) {
        die("Error: call to URL $url failed with status $status, response $json_response curl_error " . curl_error($crl) . " curl_errno " . curl_errno($crl));
    }
    else{
        $response = json_decode($json_response, true);
        print_r($response);
    }
    curl_close($crl); 
?>
                    
                

Message Send

Creates a new message object. We return an array of each Id generated. Per
request, a max of 50 recipients can be entered.

            
                                POST/sms/message
                            
                            

Required Parameters

Parameter Description to The Number that you want to send to, can be multiple
numbers seperated by a ',' or ';' from Who the message will appear to be from
message The message to send to the phone, the first 160 characters will be a
single message, anything over will be split down into messages the size of 153
characters.
For Unicode, this is the text encoded in hexadecimal
For Binary messaging, this the User Data (140 octets max)

Optional Parameters

Parameter Description Default valid How many hours that you require us to try to
send the SMS for before it is expired, the minimum for this is 15 minutes (0.25)
72 reference A reference that you want saved against the message in our system
callbackurl The URL that you want us to send the delivery report to. See below
in the Delivery Report for more information scheduled The Date and Time you want
the message to be sent (yyyy/MM/dd hh:mm) coding The type of message you would
like to send, 1 = Text, 2 = Unicode, 3 = Binary 1 udh User Data Header

Example JSON Payload

               
{ 
    "to" : "447xxxxxxxxx", 
    "from" : "Reach", 
    "message" : "Test Json Send" 
}
            
        

 * C#
 * cURL
 * PHP

                    
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
namespace Sms
{
    class Program
    {
        static void Main(string[] args)
        {
            var serializer = new JavaScriptSerializer();
            try
            {
                var url = "http://api.reach-interactive.com/sms/message";
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.ContentType = "application/json";
                request.Method = "POST";
                request.Headers.Add("Username", "Your Reach Username");
                request.Headers.Add("Password", "Your Reach Password");
                using (var streamWriter = new StreamWriter(request.GetRequestStream()))
                {
                    string json = "{ \"to\" : \"447xxxxxxxxx\", \"from\" : \"Reach\", \"message\" : \"Test API Message\"}";
                    streamWriter.Write(json);
                    streamWriter.Flush();
                    streamWriter.Close();
                }
                using (var response = (HttpWebResponse)request.GetResponse())
                {
                    using (var reader = new StreamReader(response.GetResponseStream()))
                    {
                        var jsonResponse = reader.ReadToEnd();
                        dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                        foreach (Dictionary<string, dynamic> item in data)
                        {
                            Console.WriteLine("Success: {0}, Id: {1}, Description: {2}", 
                                                item["Success"], 
                                                item["Id"], 
                                                item["Description"]);
                        }
                    }
                }
            }
            catch (WebException err)
            {
                using (var response = err.Response.GetResponseStream())
                using (var reader = new StreamReader(response))
                {
                    var jsonResponse = reader.ReadToEnd();
                    try
                    {
                        dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                        Console.WriteLine("Success: {0}, Description: {1}, HTTP Status Code: {2}",
                            data["Success"],
                            data["Description"],
                            (int) ((HttpWebResponse) err.Response).StatusCode);
                    }
                    catch (Exception)
                    {
                        Console.WriteLine(jsonResponse);
                    }
                }
            }
            catch (Exception err)
            {
                Console.WriteLine(err.Message);
            }
            Console.ReadKey();
        }
    }
}
                    
                

                            
                                                curl -X "POST" http://api.reach-interactive.com/sms/message -H username: YourReachUsername -H password: YourReachPassword -H 
                                                "Content-Type: application/json -d "{\"to\":\"RecipientPhoneNumber\",\"from\":\"FromName\",\"message\":\"YourMessage\"}"
                    
                

                    
<?php
    $url = "http://api.reach-interactive.com/sms/message"; 
    // The data to send to the API
    $header = array();
    $header[] = 'Accept: application/json';
    $header[] = 'Content-Type: application/json';
    $header[] = 'username: Your Reach Username';
    $header[] = 'password: Your Reach Password';
    $data = array("to" => "447xxxxxxxxx", "from" => "Reach", "message" => "Test API PHP send");                                                                    
    $data_string = json_encode($data); 
    //cURL starts
    $crl = curl_init();
    curl_setopt($crl, CURLOPT_URL, $url);
    curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);  
    curl_setopt($crl, CURLOPT_POSTFIELDS, $data_string); 
    curl_setopt($crl, CURLOPT_CUSTOMREQUEST, "POST");                                                                                                            
                                                                                                                     
    $json_response = curl_exec($crl);
    $status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
    if ( $status != 200 ) {
        die("Error: call to URL $url failed with status $status, response $json_response curl_error " . curl_error($crl) . " curl_errno " . curl_errno($crl));
    }
    else{
        $response = json_decode($json_response, true);
        print_r($response);
    }
    curl_close($crl); 
?>
                    
                

Message Details

This can be used to retreive the details of a message sent over our API or SMPP
binds.

            
                            GET/sms/message/{Id}
                     
                 

 * C#
 * cURL
 * PHP

                    
using System;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
namespace Sms
{
    class Program
    {
        static void Main(string[] args)
        {
            var serializer = new JavaScriptSerializer();
            try
            {
                var url = "http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa";
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.ContentType = "application/json";
                request.Method = "GET";
                request.Headers.Add("Username", "Your Reach Username");
                request.Headers.Add("Password", "Your Reach Password");
                using (var response = (HttpWebResponse)request.GetResponse())
                {
                    using (var reader = new StreamReader(response.GetResponseStream()))
                    {
                        var jsonResponse = reader.ReadToEnd();
                        dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                        Console.WriteLine("Success: {0}, To: {1}, From: {2}, Text: {3}, Sent: {4}, Status: {5}, Delivered: {6}, Code: {7}, Description: {8}",
                                            data[0]["Success"],
                                            data[0]["To"],
                                            data[0]["Originator"],
                                            data[0]["Text"],
                                            data[0]["Sent Date"],
                                            data[0]["Message Status"],
                                            data[0]["Delivered Date"],
                                            data[0]["DlrCode"],
                                            data[0]["Description"]);
                    }
                }
            }
            catch (WebException err)
            {
                using (var response = err.Response.GetResponseStream())
                using (var reader = new StreamReader(response))
                {
                    var jsonResponse = reader.ReadToEnd();
                    try
                    {
                        dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                        Console.WriteLine("Success: {0}, Description: {1}, HTTP Status Code: {2}", 
                                            data["Success"], 
                                            data["Description"],
                                            (int)((HttpWebResponse)err.Response).StatusCode);
                    }
                    catch (Exception)
                    {
                        Console.WriteLine(jsonResponse);
                    }
                }
            }
            catch (Exception err)
            {
                Console.WriteLine(err.Message);
            }
            Console.ReadKey();
        }
    }
}
                    
                

                    
curl http://http-1-uat.reach-interactive.com/sms/message/{id} -H username: YourReachUsername -H password: YourReachPassword
                    
                

                    
<?php
    $url = "http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"; 
    // The data to send to the API
    $header = array();
    $header[] = 'Accept: application/json';
    $header[] = 'username: Your Reach Username';
    $header[] = 'password: Your Reach Password';
    //cURL starts
    $crl = curl_init();
    curl_setopt($crl, CURLOPT_URL, $url);
    curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($crl, CURLOPT_HTTPGET, true);                                                                                                            
                                                                                                                     
    $json_response = curl_exec($crl);
    $status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
    if ( $status != 200 ) {
        die("Error: call to URL $url failed with status $status, response $json_response curl_error " . curl_error($crl) . " curl_errno " . curl_errno($crl));
    }
    else{
        $response = json_decode($json_response, true);
        print_r($response);
    }
    curl_close($crl); 
?>
                    
                

Returned Response

            
[{
    "Method":"H",
    "To":"447xxxxxxxxx",
    "Originator":"Reach",
    "Text":"Your Message",
    "Sent Date":"2016-06-23T15:27:08.497",
    "Message Status":"Delivered",
    "Delivered Date":"2016-06-23T15:27:17.973",
    "DlrCode":"000",
    "Description":"Unknown Error Code",
    "Reference":"",
    "Success":true
}]
            
        

Message Delete

This can be used to delete a scheduled message that has not been sent.

            
DELETE  /sms/message/{Id}
            
        

 * C#
 * cURL
 * PHP

                    
using System;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
namespace Sms
{
    class Program
    {
        static void Main(string[] args)
        {
            var serializer = new JavaScriptSerializer();
            try
            {
                var url = "http://api.reach-interactive.com/sms/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa";
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.ContentType = "application/json";
                request.Method = "DELETE";
                request.Headers.Add("Username", "Your Reach Username");
                request.Headers.Add("Password", "Your Reach Password");
                using (var response = (HttpWebResponse)request.GetResponse())
                {
                    using (var reader = new StreamReader(response.GetResponseStream()))
                    {
                        var jsonResponse = reader.ReadToEnd();
                        dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                        Console.WriteLine("Success: {0}, Description: {1}", 
                                            data["Success"], 
                                            data["Description"]);
                    }
                }
            }
            catch (WebException err)
            {
                using (var response = err.Response.GetResponseStream())
                using (var reader = new StreamReader(response))
                {
                    var jsonResponse = reader.ReadToEnd();
                    try
                    {
                        dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                        Console.WriteLine("Success: {0}, Description: {1}, HTTP Status Code: {2}", 
                                            data["Success"], 
                                            data["Description"],
                                            (int)((HttpWebResponse)err.Response).StatusCode);
                    }
                    catch (Exception)
                    {
                        Console.WriteLine(jsonResponse);
                    }
                }
            }
            catch (Exception err)
            {
                Console.WriteLine(err.Message);
            }
            Console.ReadKey();
        }
    }
}
                    
                

                            
curl -X "DELETE" http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa -H username: YourReachUsername -H password: YourReachPassword
                    
                

                    
<?php
    $url = "http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"; 
    // The data to send to the API
    $header = array();
    $header[] = 'Accept: application/json';
    $header[] = 'username: Your Reach Username';
    $header[] = 'password: Your Reach Password';
    //cURL starts
    $crl = curl_init();
    curl_setopt($crl, CURLOPT_URL, $url);
    curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($crl, CURLOPT_CUSTOMREQUEST, "DELETE");	                                                                                                   
                                                                                                                     
    $json_response = curl_exec($crl);
    $status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
    if ( $status != 200 ) {
        die("Error: call to URL $url failed with status $status, response $json_response curl_error " . curl_error($crl) . " curl_errno " . curl_errno($crl));
    }
    else{
        $response = json_decode($json_response, true);
        print_r($response);
    }
    curl_close($crl); 
?>
                    
                

Returned Response

            
{
    "Success":true,
    "Id":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
    "Description":"Id Removed"
}
            
        

Delivery Report

We can provide an HTTP GET response of the message
These are the parameters that will be passed back

Parameter Description msgid The Id that was originally supplied in the API call
msisdn The number that the delivery report is from timestamp The date and time
of the delivery report status The status of the delivery report code The DLR
code of the message

Extra Information

If you require any more information passed back in the call back, you can add
them to the URL that you supply.
For example if you supply https://www.yourdomain.com/?CustomerId=123 the call
back that then gets send back will be

            https://www.yourdomain.com/?CustomerId=123
                                        &MsgId=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
                                        &MSISDN=447xxxxxxxxx&Timestamp=dd/MM/yyyy 
                                        hh:mm:ss&Status=Delivered&Code=000
                                    
                                    

Status

Status Description delivered Delivered successfully rejected Message rejected
expired Message could not be delivered within valid time frame undelivered
Message has not been delivered

Inbound Messages

After purchasing an Inbound long number or Short code keyword. Please Go to
Inbox > Inbox in the menu to view / edit the settings for each Inbound

PARTNER SUCCESS


TEXT MESSAGE MARKETING HAS A 3X ROI FOR US ON THE COST OF THE TEXT!

PARTNER : SKINNY TAN

READ HOW SKINNY TAN USE REACH

HAVE A QUESTION? TALK TO TEAM REACH

 * 







SEND MESSAGE

FAQ AND SUPPORT ARTICLES

How to get started with bulk SMS. OPEN
How to increase your opt-in rates. OPEN
10 ways to connect with stakeholders via bulk text messaging. OPEN
How to write the perfect SMS offer. OPEN
The best time to send your SMS marketing messages. OPEN
A five-step guide to successfully uploading your contact list. OPEN
How does GDPR impact SMS marketing? OPEN
How to get started with bulk SMS.
How to increase your opt-in rates.
10 ways to connect with stakeholders via bulk text messaging.
How to write the perfect SMS offer.
The best time to send your SMS marketing messages.
A five-step guide to successfully uploading your contact list.
How does GDPR impact SMS marketing?

GET IN TOUCH
tech.support@reach-data.com
sales@reach-data.com
+44 (0) 0333 009 5117
Contact Reach
LONDON OFFICE
Reach-Data Ltd.
5 Beaumont Gate
Shenley Hill, Radlett
Hertfordshire
WD7 7AR
YORKSHIRE OFFICE
Reach-Data Ltd.
Atlas 4
Atlas Office Park
First Point, Doncaster
DN4 5JT
MADRID OFFICE
Reach-Data Ltd.
Paseo Castellana 136
28046
Madrid
Spain


OUR CHARITY PARTNER


FIND OUT ABOUT OUR CHARITY PROGRAMME

GET IN TOUCH

tech.support@reach-data.com
sales@reach-data.com
+44 (0) 0333 009 5117
Contact Reach

LONDON OFFICE

REACH-DATA LTD.

5 BEAUMONT GATE

SHENLEY HILL, RADLETT.

HERTFORDSHIRE

WD7 7AR

YORKSHIRE OFFICE

REACH-DATA LTD.

ATLAS 4

ATLAS OFFICE PARK

FIRST POINT, DONCASTER

DN4 5JT




©2002-2022 All rights Reserved. Reach Interactive© is a registered trademark of
Reach-Data Ltd is registered in the UK and Wales. Registration Number: 04602161.
Privacy Policy Terms and Conditions



×

Live Chat is Online 
Chatting
0
×
–

undefined



Chat Input Box

Chat
Powered by