Text CALL to 88440

+44 (0)1484 599 311

Login Free Account

Spring Offer

50% Free

Purchase up to 25,000 credits and get 50% FREE!

*Terms and conditions apply

Developer Tools

Free Account
Our new API is live!

Our new API is now available to use. We have improved the methods that you are familiar with, offering you a clearer understanding of what each property can do and a more detailed response from each call.

The old API is still fully functioning and support for this will not end.

We are also introducing API Keys which are used to access the API methods and improve the security around using the API.

Click here to see the new Developer page.

Click here to read our new Developer Documentation.

Forget Request

When you call the forget API the number will be instantly added to your blacklist so that no further SMS is sent to the CLI (destination number) supplied. Then, within 24 hours of the time of the request the VoodooSMS platform will work through your contact lists, sent SMS, received SMS, Blacklist etc to either delete the CLI or mask the CLI from your records along with the content of the SMS. In the case of outbound SMS, we will have the CLI masked so that only the first 6 digits remain, making it impossible to identify the destination number, and the body of the SMS removed, e.g. API / Web SMS, this is purely from an accounting perspective so that the credit spend can be tracked.

Once the process is complete, the CLI / Destination number will not be stored anywhere on our platform, this includes your blacklist. If an SMS is sent via Web SMS / API etc via your account to the CLI the VoodooSMS platform will send it, even if you have made a forget request prior.


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





Required Fields


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


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


Format: 447700900000 (where 44 is country code e.g. 44 is UK).


Check & reformat destination number feature
If you choose to specify the country code in the sendSMS API Call, e.g. 44 and the API will check that the specified destination number Examples

  • If dest=447700900000 and cc=44 - no change will be made.
  • If dest=07700900000 and cc=44 - dest will be changed to 447700900000
  • If dest=7700900000 and cc=44 - dest will be changed to 447700900000


Return format requested: XML, JSON or PHP data.

Optional Parameters


You can keep or delete the number in the blacklist.

  • If bl = 0 - number will be deleted from blacklist
  • If bl = 1 or empty - number will stay in blacklist

Forget without any query parameter


    case "GET":
        $uid = htmlspecialchars($_GET["uid"]);
        $pass = htmlspecialchars($_GET["pass"]);
        $cc = htmlspecialchars($_GET["cc"]);
        $cli = htmlspecialchars($_GET["cli"]);
        $format = htmlspecialchars($_GET["format"]);
    case "POST":
        $uid = htmlspecialchars($_POST["uid"]);
        $pass = htmlspecialchars($_POST["pass"]);
        $cc = htmlspecialchars($_POST["cc"]);
        $cli = htmlspecialchars($_POST["cli"]);
        $format = htmlspecialchars($_POST["format"]);

$url = 'https://www.voodoosms.com/vapi/server/forget?uid='.$uid.'&pass='.$pass.

$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

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("cc") != null && request.getAttribute("cli") != null
            && request.getAttribute("format") != null)
            String charset = "UTF-8";
            String query = String.format("uid=%s&pass=%s&cc=%s&cli=%s&format=%s",
             URLEncoder.encode(request.getAttribute("uid").toString(), charset),
             URLEncoder.encode(request.getAttribute("pass").toString(), charset),
             URLEncoder.encode(request.getAttribute("cc").toString(), charset),
             URLEncoder.encode(request.getAttribute("cli").toString(), charset),
             URLEncoder.encode(request.getAttribute("format").toString(), charset));
            String url = "www.voodoosms.com/vapi/server/forget";

            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 cc = query.cc;
    var cli = query.cli;
    var format = query.format;

    if(uid && pass && cli && cc && msg && format) {
        var get_data = querystring.stringify({
          "uid" : uid, "pass": pass, "cc": cc, "cli": cli, "format" : format

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

        https.get(options, function(reqres) {
          reqres.on('data', function(chunk) {

      res.end("Wrong parameters");


require 'net/http'
require 'json'

class Controller < ApplicationController
    def index
    uid = params[:uid]
    pass = params[:pass]
    cc = params[:cc]
    cli = params[:cli]
    form = params[:form]

    if uid and pass and cc and cli and form
        uri = "?uid=" + uid + "&pass=" + pass + "&cc=" + cc + "&cli=" + cli + "&format=" + form
        uri = 0

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

from django.http
import HttpResponse, HttpRequest
import urllib2

def index(request):

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

    if uid and pas and form and msg and cli and cc :
        u = "?uid=%s&pass=%s&cc=%s&cli=%s&format=%s" % (uid, pas, cc, cli, form)
    else :
        u = 0

    if u :
        res = urllib2.urlopen("https://voodoosms.com/vapi/server/forget" + 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 cc = HttpContext.Current.Server.HtmlEncode(Request["cc"]);
    string cli = HttpContext.Current.Server.HtmlEncode(Request["cli"]);
    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(cc)
    || String.IsNullOrEmpty(cli) || String.IsNullOrEmpty(format))
// Send the async request
    HttpResponseMessage response = await client.GetAsync(
    "https://www.voodoosms.com/vapi/server/forget?uid=" + uid + "&pass=" + pass
    + "&cc=" + cc + "&cli=" + cli + "&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());


   <message>Your request has been accepted and is pending</message>
   <date>2018-05-02 10:33:37</date>
    "requestError": {
        "serviceException": {
            "messageId": "UNAUTHORIZED",
            "text": "Invalid login details"
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": [
    "text": "tsdsdsd"
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;