SMS History API

This API is used to retrieve the SMS messages sending history.

Remember to provide the authentication HTTP headers as described in the Authenticate using a session key and the Authenticate using a user tokeny sections.
All the query string parameters in URL must be UTF-8 URL Encoded.

Get sent SMS messages history

Returns the user’s SMS messages history

HTTP Headers

user_key / Session_key

HTTP Method

GET

HTTP Request

https://app.gateway.smsend.it/API/v1.0/REST/smshistory?from={fromdate}&to={todate}&pageNumber={page}&pageSize={size}

Parameters

Parameter Type Description Required Default
from Date(yyyyMMddHHmmss) Return results from the given date Yes -
to Date(yyyyMMddHHmmss) Return results up to the given date No now
timezone Timezone(IANA time zone) Optional timezone applied to from or to dates No -
pageNumber Int Return the given results page No 1
pageSize Int The number of results in a page No 10

Returns

Code Description
200 A paginated list of the SMS history filtered as specified by the from and to dates.
400 from parameter not specified, or an error in the from, to or timezone date format. Other errors, details are in the body
401 [Unauthorized] User_key, Token or Session_key are invalid or not provided
404 [Not found] The User_key was not found
Copy code
# Session Key example
curl -XGET 'https://app.gateway.smsend.it/API/v1.0/REST/smshistory?from={date}' -H 'Content-Type: application/json' \
-H 'user_key: {USER_KEY}' -H 'Session_key: {SESSION_KEY}' 

# Access token example
curl -XGET 'https://app.gateway.smsend.it/API/v1.0/REST/smshistory?from={date}' -H 'Content-Type: application/json' \
 -H 'user_key: {USER_KEY}' -H 'Access_token: {ACCESS_TOKEN}' 
'
On success, the above command returns the following response:
{
    "total": 1,                                  "// The total number of results"
    "pageNumber": 1,                             "// The returned page number"
    "result": "OK",                              "// The status of the request"
    "pageSize": 10,                              "// The page size"
    "smshistory": [                              "// The SMS history"
        {   
            "order_id" : "XYZABCQWERTY",         "// The order ID"  
            "create_time" : "yyyyMMddHHmmss",    "// When the order was created"        
            "schedule_time" : "yyyyMMddHHmmss",  "// When the sending is scheduled"
            "message_type" : "GP",               "// The message type"
            "sender" : "MySender",               "// The sender's alias"
            "num_recipients" : 2                 "// The number of recipients"
        },      
        {       
            ...     
        }
    ]
}
Copy code
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.io.OutputStream;
import java.net.URL;

public class Main {
    public static void main(String[] args) {
        try {
            URL url = new URL("https://app.gateway.smsend.it/API/v1.0/REST/smshistory?from={date}");
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();

            conn.setRequestProperty("user_key", "{USER_KEY}");

            // Use this when using Session Key authentication
            conn.setRequestProperty("Session_key", "{SESSION_KEY}");                  
            // When using Access Token authentication, use this instead:
            // conn.setRequestProperty("Access_token", "{ACCESS_TOKEN}");

            conn.setRequestMethod("GET");

            if (conn.getResponseCode() != 200) {
                throw new RuntimeException("Failed : HTTP error code : "
                                           + conn.getResponseCode());
            }
            BufferedReader br =
                new BufferedReader(new InputStreamReader(conn.getInputStream()));

            String response = "";
            String output;
            while ((output = br.readLine()) != null) {
                response += output;
            }
            // You can parse the response using Google GSON or similar.
            // MyObject should be a class that reflect the JSON 
            // structure of the response

            GsonBuilder builder = new GsonBuilder();
            Gson gson = builder.create();
            MyObject responseObj = gson.fromJson(response, MyObject.class);
            conn.disconnect();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}
On success, the above command returns the following response:
{
    "total": 1,                                  "// The total number of results"
    "pageNumber": 1,                             "// The returned page number"
    "result": "OK",                              "// The status of the request"
    "pageSize": 10,                              "// The page size"
    "smshistory": [                              "// The SMS history"
        {   
            "order_id" : "XYZABCQWERTY",         "// The order ID"  
            "create_time" : "yyyyMMddHHmmss",    "// When the order was created"        
            "schedule_time" : "yyyyMMddHHmmss",  "// When the sending is scheduled"
            "message_type" : "GP",               "// The message type"
            "sender" : "MySender",               "// The sender's alias"
            "num_recipients" : 2                 "// The number of recipients"
        },      
        {       
            ...     
        }
    ]
}
Copy code
<?php

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.gateway.smsend.it/API/v1.0/REST/smshistory?from={date}');
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-type: application/json',
    'user_key: {USER_KEY}',
    // Use this when using session key authentication
    'Session_key: {SESSION_KEY}',
    // When using Access Token authentication, use this instead:
    // 'Access_token: {ACCESS_TOKEN}'
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);


$response = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);

if ($info['http_code'] != 200) {
    echo('Error!');
}
else {

    $obj = json_decode($response);
    print_r($obj);
}
?>
On success, the above command returns the following response:
{
    "total": 1,                                  "// The total number of results"
    "pageNumber": 1,                             "// The returned page number"
    "result": "OK",                              "// The status of the request"
    "pageSize": 10,                              "// The page size"
    "smshistory": [                              "// The SMS history"
        {   
            "order_id" : "XYZABCQWERTY",         "// The order ID"  
            "create_time" : "yyyyMMddHHmmss",    "// When the order was created"        
            "schedule_time" : "yyyyMMddHHmmss",  "// When the sending is scheduled"
            "message_type" : "GP",               "// The message type"
            "sender" : "MySender",               "// The sender's alias"
            "num_recipients" : 2                 "// The number of recipients"
        },      
        {       
            ...     
        }
    ]
}
Copy code
# pip install requests
import requests
import json
# Use this when using Session Key authentication
headers = { 'user_key': '{USER_KEY}', 'Session_key' : '{SESSION_KEY}', 'Content-type' : 'application/json' }
# When using Access Token authentication, use this instead:
# headers = { 'user_key': '{USER_KEY}', 'Access_token' : '{ACCESS_TOKEN}', 'Content-type' : 'application/json' }

r = requests.get("https://app.gateway.smsend.it/API/v1.0/REST/smshistory?from={date}", headers=headers)

if r.status_code != 200:
    print("An error occurred, return code is: " + str(r.status_code))
else:
    response = r.text

    obj = json.loads(response)
    print(unicode(obj))
On success, the above command returns the following response:
{
    "total": 1,                                  "// The total number of results"
    "pageNumber": 1,                             "// The returned page number"
    "result": "OK",                              "// The status of the request"
    "pageSize": 10,                              "// The page size"
    "smshistory": [                              "// The SMS history"
        {   
            "order_id" : "XYZABCQWERTY",         "// The order ID"  
            "create_time" : "yyyyMMddHHmmss",    "// When the order was created"        
            "schedule_time" : "yyyyMMddHHmmss",  "// When the sending is scheduled"
            "message_type" : "GP",               "// The message type"
            "sender" : "MySender",               "// The sender's alias"
            "num_recipients" : 2                 "// The number of recipients"
        },      
        {       
            ...     
        }
    ]
}
Copy code
// Uses https://github.com/request/request
// npm install [-g] request

var request = require('request');

request({
    url: 'https://app.gateway.smsend.it/API/v1.0/REST/smshistory?from={date}',
    method: 'GET',
    headers: { 'user_key' : '{USER_KEY}', 'Session_key' : '{SESSION_KEY}' },

    callback: function (error, responseMeta, response) {
        if (!error && responseMeta.statusCode == 200) {

        }
        else {
            console.log('An error occurred..');
        }
    }
});
On success, the above command returns the following response:
{
    "total": 1,                                  "// The total number of results"
    "pageNumber": 1,                             "// The returned page number"
    "result": "OK",                              "// The status of the request"
    "pageSize": 10,                              "// The page size"
    "smshistory": [                              "// The SMS history"
        {   
            "order_id" : "XYZABCQWERTY",         "// The order ID"  
            "create_time" : "yyyyMMddHHmmss",    "// When the order was created"        
            "schedule_time" : "yyyyMMddHHmmss",  "// When the sending is scheduled"
            "message_type" : "GP",               "// The message type"
            "sender" : "MySender",               "// The sender's alias"
            "num_recipients" : 2                 "// The number of recipients"
        },      
        {       
            ...     
        }
    ]
}
Copy code
require 'net/http'
require 'uri'
require 'json'

uri = URI.parse("https://app.gateway.smsend.it/API/v1.0/REST/smshistory?from={date}")

# Create the HTTP objects
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Get.new(uri.request_uri)
request['Content-type'] = 'application/json'
request['user_key'] = '{USER_KEY}'
request['Session_key'] = '{SESSION_KEY}'

# Send the request
responseData = http.request(request)
if responseData.code == "200"
  response = responseData.body

  obj = JSON.parse(response)
  puts obj
else
  puts "Error.."
end
On success, the above command returns the following response:
{
    "total": 1,                                  "// The total number of results"
    "pageNumber": 1,                             "// The returned page number"
    "result": "OK",                              "// The status of the request"
    "pageSize": 10,                              "// The page size"
    "smshistory": [                              "// The SMS history"
        {   
            "order_id" : "XYZABCQWERTY",         "// The order ID"  
            "create_time" : "yyyyMMddHHmmss",    "// When the order was created"        
            "schedule_time" : "yyyyMMddHHmmss",  "// When the sending is scheduled"
            "message_type" : "GP",               "// The message type"
            "sender" : "MySender",               "// The sender's alias"
            "num_recipients" : 2                 "// The number of recipients"
        },      
        {       
            ...     
        }
    ]
}
Copy code
using System;
using System.Text;
using System.Net;
using System.Collections.Specialized;

// We are using JSON.NET (http://www.newtonsoft.com/json)
using Newtonsoft.Json;

/*
 * The following code has been compiled and tested using the MONO
 * project.
 * 
 * To compile using MONO:
 * mcs -r:Newtonsoft.Json.dll example.cs
 */
namespace RestApplication
{
    class Program
    {        
        static void Main(string[] args)
        {
            using (var wb = new WebClient())
            {
                wb.Headers.Set(HttpRequestHeader.ContentType, "application/json");
                wb.Headers.Add("user_key", "{USER_KEY}");
                wb.Headers.Add("Session_key", "{SESSION_KEY}");

                String response = wb.DownloadString("https://app.gateway.smsend.it/API/v1.0/REST/smshistory?from={date}");

                dynamic obj = JsonConvert.DeserializeObject(response);
                Console.WriteLine(obj);
            }

        }
    }
}
On success, the above command returns the following response:
{
    "total": 1,                                  "// The total number of results"
    "pageNumber": 1,                             "// The returned page number"
    "result": "OK",                              "// The status of the request"
    "pageSize": 10,                              "// The page size"
    "smshistory": [                              "// The SMS history"
        {   
            "order_id" : "XYZABCQWERTY",         "// The order ID"  
            "create_time" : "yyyyMMddHHmmss",    "// When the order was created"        
            "schedule_time" : "yyyyMMddHHmmss",  "// When the sending is scheduled"
            "message_type" : "GP",               "// The message type"
            "sender" : "MySender",               "// The sender's alias"
            "num_recipients" : 2                 "// The number of recipients"
        },      
        {       
            ...     
        }
    ]
}
Copy code
#!/usr/bin/env perl

use warnings;
use strict;
use LWP::UserAgent;

# Install using Cpan: "cpan JSON"
use JSON;

my $ua = LWP::UserAgent->new;

my $server_endpoint = "https://app.gateway.smsend.it/API/v1.0/REST/smshistory?from={date}";

my $req = HTTP::Request->new(GET => $server_endpoint);

$req->header('Content_type' => 'application/json');

# IMPORTANT: Not adding the ':' before 'user_key' and
# 'Session_key' will result in perl to automatically rewrite the
# headers as 'User-Key' and 'Session-Key', which is not supported
# by our API.
$req->header(':user_key' => $auth->[0],
             ':Session_key' => $auth->[1]);
my $resp = $ua->request($req);
if ($resp->is_success && $resp->code == 200) {
  $response = $resp->decoded_content;
  my $obj = from_json($response);

}
On success, the above command returns the following response:
{
    "total": 1,                                  "// The total number of results"
    "pageNumber": 1,                             "// The returned page number"
    "result": "OK",                              "// The status of the request"
    "pageSize": 10,                              "// The page size"
    "smshistory": [                              "// The SMS history"
        {   
            "order_id" : "XYZABCQWERTY",         "// The order ID"  
            "create_time" : "yyyyMMddHHmmss",    "// When the order was created"        
            "schedule_time" : "yyyyMMddHHmmss",  "// When the sending is scheduled"
            "message_type" : "GP",               "// The message type"
            "sender" : "MySender",               "// The sender's alias"
            "num_recipients" : 2                 "// The number of recipients"
        },      
        {       
            ...     
        }
    ]
}