Text CALL to 88440
info@voodooSMS.com

+44 (0)1484 599 311

Login Free Account

Developer Tools

Free Account

getDLR

This provides the delivery status for any SMS sent either today, or for a specified period using the optional date, sh and eh parameters.

Definition

http:// or https:// www.voodooSMS.com/vapi/server/getDLR

METHODS

GET

POST

Parameters

Required Fields

uid:

System allocated username for API user configured within the VoodooSMS.com Portal in 'Send SMS>API Management'

pass:

System password for API user configured within the VoodooSMS.com Portal in 'Send SMS>API Management'

format:

Return format requested: XML, JSON or PHP data.

Optional Parameters

date:

Specify the date you wish to get delivery reports for - format yyyy-mm-dd

sh:

specify the start hour - format hh

eh:

specify the end hour format hh

Getting reports without any query parameter

Request


<?php
switch($_SERVER["REQUEST_METHOD"]) {
     case "GET":
          $uid = htmlspecialchars($_GET["uid"]);
          $pass = htmlspecialchars($_GET["pass"]);
          $format = htmlspecialchars($_GET["format"]);
     break;
     case "POST":
         $uid = htmlspecialchars($_POST["uid"]);
         $pass = htmlspecialchars($_POST["pass"]);
         $format = htmlspecialchars($_POST["format"]);
     break;
}

$url = 'https://www.voodoosms.com/vapi/server/getDLR?uid='.$uid.'&pass='.$pass."&format=".$format;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
// Download the given URL, and return output
$output = curl_exec($ch);
echo $output."   ".curl_error($ch);
 // Close the cURL resource, and free system resources
curl_close($ch);
?>

import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class Servlet extends HttpServlet {
     public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

          if (request.getAttribute("uid") != null && request.getAttribute("pass") != null
            && request.getAttribute("format") != null) {
                String charset = "UTF-8";
                String query = String.format("uid=%s&pass=%s&format=%s",
                  URLEncoder.encode(request.getAttribute("uid").toString(), charset),
                  URLEncoder.encode(request.getAttribute("pass").toString(), charset),
                  URLEncoder.encode(request.getAttribute("format").toString(), charset);
                  String url = "www.voodoosms.com/vapi/server/getDLR";
                  URLConnection connection = new URL(url + "?" + query).openConnection();
                  connection.setRequestProperty("Accept-Charset", charset);
                  InputStream reqres = connection.getInputStream();
                 // reqres contains the request output
          }
          else {
                       // Wrong parameters
          }
      }
      public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
           // Same as GET
      }
 }

var http = require('http');
var https = require('https');
var querystring = require('querystring');
var url = require('url');

var server = http.createServer(function(req, res) {

    var url_parts = url.parse(req.url, true);
    var query = url_parts.query;
    var uid = query.uid;
    var pass = query.pass;
    var format = query.format;

    if (uid && pass && format) {
           var get_data = querystring.stringify({
             "uid": uid, "pass": pass, "format": format
           });

           var options = {
               host: 'www.voodoosms.com',
               path: '/vapi/server/getDLR?' + get_data
           }

           https.get(options, function(reqres) {
              reqres.on('data', function(chunk) {
                res.end(chunk);
              })
           });

    }
    else
       res.end("Wrong parameters");
});

server.listen(8080);

require 'net/http'
require 'json'

class Controller < ApplicationController
     def index
     uid = params[: uid]
     pass = params[: pass]
     format = params[: format]

     if uid and pass and format
          uri = "?uid=" + uid + "&pass=" + pass + "&format=" + format
     else
          uri = 0
     end

     if uri != 0
          url = URI.parse('http://www.voodoosms.com/vapi/server/getDLR' + uri)
          uri = URI(url)
          response = Net::HTTP.get(uri)
          @res = response
     else
          @res = "Wrong parameters"
     end
   end
end

from django.http
import HttpResponse, HttpRequest
import urllib2

def index(request):

    if request.method == 'GET':
         uid = request.GET.get('uid', '')
         pass = request.GET.get('pass', '')
         format = request.GET.get('format', '')
    elif request.method == 'POST':
         uid = request.POST.get('uid', '')
         pass = request.POST.get('pass', '')
         format = request.POST.get('format', '')

    if uid and pass and format:
         u = "?uid=%s&pass=%s&format=%s" % (uid, pass, format)
    else :
         u = 0

    if u:
        res = urllib2.urlopen("https://voodoosms.com/vapi/server/getDLR" + u).read()
        return HttpResponse(res)
    else :
        return HttpResponse("Wrong parameters")

using System;
using System.Net.Http;
using System.Web;

var client = new HttpClient();

//Get the parameters, either GET or POST request
    string uid = HttpContext.Current.Server.HtmlEncode(Request["uid"]);
    string pass = HttpContext.Current.Server.HtmlEncode(Request["pass"]);
    string format = HttpContext.Current.Server.HtmlEncode(Request["format"]);

//Exit if one or more parameters is missing
    if(String.IsNullOrEmpty(uid) || String.IsNullOrEmpty(pass) || String.IsNullOrEmpty(format))
    System.Environment.Exit(1)

// Send the async request
    HttpResponseMessage response = await client.GetAsync(
    "https://www.voodoosms.com/vapi/server/getDlr?uid=" + uid + "&pass=" + pass
    + "&format=" + format);

// Get the response content
    HttpContent responseContent = response.Content;

// Get the stream of the content and write the output
using (var reader = new StreamReader(await responseContent.ReadAsStreamAsync()))
{
Console.WriteLine(await reader.ReadToEndAsync());
}
...
...
...

Response


<xml>
   <item>
      <destination_number>447700900600</destination_number>
      <delivery_status />
      <delivery_datetime />
      <reference_id>1501051855auto_booking294</reference_id>
   </item>
   <item>
      <destination_number>447700900600</destination_number>
      <delivery_status />
      <delivery_datetime />
      <reference_id>1501051856auto_booking295</reference_id>
   </item>
</xml>
...
...
{
    "requestError": {
        "serviceException": {
            "messageId": "UNAUTHORIZED",
            "text": "Invalid login details"
        }
    }
}
METHOD POST
Request Headers
Accept: */*
Referer: http:// or https:// www.voodoosms.com/vapi/server
authorization: Basic ZGZkZjpzZGZkZg==
accept-encoding: gzip, deflate
content-type: application/json
content-length: 64
URL http:// or https:// www.voodoosms.com/vapi/server/sendSMS
Request Data
{
    "from": "447711112244",
    "to": [
        "447788112233"
    ],
    "text": "tsdsdsd"
}
Status
Response Headers
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE, COPY, HEAD, OPTIONS, LINK, UNLINK,
PURGE access-control-allow-headers: Authorization, Content-Type, X-Enrollment-Token
content-type: application/json;charset=UTF-8
content-length: 97
date: Tue, 27 Dec 2016 08:17:07 GMT
connection: close
server: SMS API
strict-transport-security: max-age=16000000; includeSubDomains; preload;