Mass Text Message Marketing by Club Texting
SMS Marketing Specialist: (212) 601-9383 | Pricing | FAQ | Contact | Login
  • Feature Tour
  • Products
    • Bulk SMS Marketing Service
    • Text Messaging API
    • Other Services
    • Carrier Lookup API
    • Dedicated Short Codes
    • Short Code Services
  • Solutions
    • Ad Agencies
    • Events
    • Higher Education
    • Media
    • Magazines
    • Nightlife
    • Political Campaigns
    • Radio
    • Real Estate
    • Religious Groups
    • Restaurants
    • Retail
    • Social & Non Profits
  • Try For Free
  • Developer Center
  • SMS API Home
  • REST API Docs
  • Incoming API Docs
  • Carrier Lookup API Docs
  • Legacy HTTP API Docs
  • Legacy HTTP API FAQs
  • REST API Code Samples
  • C#
  • Java
  • Perl
  • PHP
  • Python
  • Ruby
  • Legacy HTTP API Code Samples
  • C#
  • Java
  • Perl
  • PHP
  • Python
  • Ruby

REST API Code Samples - Perl

  • Text Messages
    • Sending SMS Messages
  • Inbox & Folders
    • Inbox Messages
    • Inbox Folders
  • Keywords
    • Check Keyword Availability
    • Rent a Keyword
    • Setup a Keyword
    • Cancel A Keyword
  • Credits
    • Check Credit Balance
    • Buy Credits
  • Contacts
    • Create A Contact
    • Update A Contact
    • Delete A Contact
    • Get All Contacts
    • Get One Contact
  • Groups
    • Create A Group
    • Update A Group
    • Delete A Group
    • Get All Groups
    • Get One Group
  • Carrier Lookup

Sending SMS Messages

Sends SMS text messages via the short code 25827 (212121 In Canada) to a single phone number or an array of phone numbers.

Code Samples

Perl - XML
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use XML::Simple;

$ua = new LWP::UserAgent(keep_alive=>1);

$params = "";
$params.= "User=winnie&Password=the-pooh";
$params.= "&Subject=From Winnie";
$params.= "&Message=I am a Bear of Very Little Brain, and long words bother me";
$params.= "&PhoneNumbers[]=2123456785&PhoneNumbers[]=2123456786";
$params.= "&MessageTypeID=1&StampToSend=1305582245";

my $responde = HTTP::Request->new(POST => "https://app.clubtexting.com/sending/messages?format=xml");
$responde->content_type("application/x-www-form-urlencoded");
$responde->content($params);

$responseObj = $ua->request($responde);

print $responseObj->content."\n--------------------\n";

$responseCode = $responseObj->code;
print 'Response code: ' . $responseCode . "\n";
$isSuccesResponse = $responseCode < 400;

$response = XML::Simple->new->XMLin($responseObj->content);

print 'Status: ' . $response->{Status} . "\n" .
      'Code: ' . $response->{Code} . "\n";
if ($isSuccesResponse) {
    $PhoneNumbers = $response->{Entry}->{PhoneNumbers}->{PhoneNumber};
    $LocalOptOuts = $response->{Entry}->{LocalOptOuts}->{PhoneNumber};
    $GlobalOptOuts = $response->{Entry}->{GlobalOptOuts}->{PhoneNumber};
    print 'Message ID: ' . $response->{Entry}->{ID} . "\n" .
          'Subject: ' . $response->{Entry}->{Subject} . "\n" .
          'Message: ' . $response->{Entry}->{Message} . "\n" .
          'Message Type ID: ' . $response->{Entry}->{MessageTypeID} . "\n" .
          'Total Recipients: ' . $response->{Entry}->{RecipientsCount} . "\n" .
          'Credits Charged: ' . $response->{Entry}->{Credits} . "\n" .
          'Time To Send: ' . $response->{Entry}->{StampToSend} . "\n".
          'Phone Numbers: ' . (ref($PhoneNumbers) eq 'ARRAY' ? join(', ', @{$PhoneNumbers}) : $PhoneNumbers) . "\n" .
          'Locally Opted Out Numbers: ' . (ref($LocalOptOuts) eq 'ARRAY' ? join(', ', @{$LocalOptOuts}) : $LocalOptOuts) . "\n" .
          'Globally Opted Out Numbers: ' . (ref($GlobalOptOuts) eq 'ARRAY' ? join(', ', @{$GlobalOptOuts}) : $GlobalOptOuts) . "\n";
} else {
    $errors = $response->{Errors}->{Error};
    print 'Errors: ' .(ref($errors) eq 'ARRAY' ? join(', ', @{$errors}) : $errors) . "\n";
}
Perl - JSON
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use JSON::XS;

$ua = new LWP::UserAgent(keep_alive=>1);

$params = "";
$params.= "User=winnie&Password=the-pooh";
$params.= "&Subject=From Winnie";
$params.= "&Message=I am a Bear of Very Little Brain, and long words bother me";
$params.= "&PhoneNumbers[]=2123456785&PhoneNumbers[]=2123456786";
$params.= "&MessageTypeID=1&StampToSend=1305582245";

my $responde = HTTP::Request->new(POST => "https://app.clubtexting.com/sending/messages?format=json");
$responde->content_type("application/x-www-form-urlencoded");
$responde->content($params);

$responseObj = $ua->request($responde);

print $responseObj->content."\n--------------------\n";

$responseCode = $responseObj->code;
print 'Response code: ' . $responseCode . "\n";
$isSuccesResponse = $responseCode < 400;

$response = JSON::XS->new->decode ($responseObj->content);

print 'Status: ' . $response->{Response}->{Status} . "\n" .
      'Code: ' . $response->{Response}->{Code} . "\n";
if ($isSuccesResponse) {
    print 'Message ID: ' . $response->{Response}->{Entry}->{ID} . "\n".
          'Subject: ' . $response->{Response}->{Entry}->{Subject} . "\n" .
          'Message: ' . $response->{Response}->{Entry}->{Message} . "\n" .
          'Message Type ID: ' . $response->{Response}->{Entry}->{MessageTypeID} . "\n" .
          'Total Recipients: ' . $response->{Response}->{Entry}->{RecipientsCount} . "\n" .
          'Credits Charged: ' . $response->{Response}->{Entry}->{Credits} . "\n" .
          'Time To Send: ' . $response->{Response}->{Entry}->{StampToSend} . "\n".
          'Phone Numbers: ' . join(', ', @{$response->{Response}->{Entry}->{PhoneNumbers}}) . "\n" .
          'Locally Opted Out Numbers: ' . join(', ', @{$response->{Response}->{Entry}->{LocalOptOuts}}) . "\n" .
          'Globally Opted Out Numbers: ' . join(', ', @{$response->{Response}->{Entry}->{GlobalOptOuts}}) . "\n";
} else {
    foreach $err (@{$response->{Response}->{Errors}}) {
        print 'Error: ' . $err . "\n";
    }
}




Inbox & Folders

When working with the Inbox and Folder you can perform nine actions: Post (Add New Folder), Put (Update A Folder/Move A Message Between Folders), Delete (Delete A Message/Folder), Get (Get Inbox Message/Folder By ID), Index (Get All Messages/All Folders). The code samples below use the shared libraries:
· SMSTextingAPI.pm
· SmsTextingJsonDecoder.pm
· SmsTextingXmlDecoder.pm
You can download them, along with the code samples here: PerlLib.zip.

Code Samples - Inbox Messages

Perl - XML
#!/usr/bin/perl

use warnings;
use strict;
use SmsTextingAPI;
use Data::Dumper;
use feature qw(say);

say 'XML encoding.';
my $sms = new SmsTextingAPI("demouser", "password", SmsTextingAPI::XML, "https://app.clubtexting.com");


say 'Get incomingMessages';
my $response =  $sms->getAll(SmsTextingAPI::INCOMING_MESSAGE);
say Dumper($response);

my $incomingMessageId = $response->{Entries}[0]->{ID};
my $incomingMessageId2 = $response->{Entries}[1]->{ID};
my $incomingMessageIdsArray = [$incomingMessageId, $incomingMessageId2];

say 'Move incomingMessages';
$response = $sms->moveMessagesToFolder('88', $incomingMessageIdsArray );
say Dumper($response);


say 'Get incomingMessage';
$response =  $sms->get(SmsTextingAPI::INCOMING_MESSAGE, $incomingMessageId2);
say Dumper($response);


say 'Delete incomingMessage';
$response =  $sms->delete(SmsTextingAPI::INCOMING_MESSAGE, $incomingMessageId);
say Dumper($response);


say 'Second delete. try to get error';
$response =  $sms->delete(SmsTextingAPI::INCOMING_MESSAGE, $incomingMessageId);
say Dumper($response);
Perl - JSON
#!/usr/bin/perl

use warnings;
use strict;
use SmsTextingAPI;
use Data::Dumper;
use feature qw(say);

say 'JSON encoding.';
$sms = new SmsTextingAPI("demouser", "password", SmsTextingAPI::JSON, "https://app.clubtexting.com");

say 'Get incomingMessages';
$response =  $sms->getAll(SmsTextingAPI::INCOMING_MESSAGE);
say Dumper($response);

$incomingMessageId = $response->{Entries}[0]->{ID};


say 'Move incomingMessage';
$response = $sms->moveMessagesToFolder('75', $incomingMessageId);
say Dumper($response);

say 'Get incomingMessage';
$response =  $sms->get(SmsTextingAPI::INCOMING_MESSAGE, $incomingMessageId);
say Dumper($response);


say 'Delete incomingMessage';
$response =  $sms->delete(SmsTextingAPI::INCOMING_MESSAGE, $incomingMessageId);
say Dumper($response);


say 'Second delete. try to get error';
$response =  $sms->delete(SmsTextingAPI::INCOMING_MESSAGE, $incomingMessageId);
say Dumper($response);


Code Samples - Inbox Folders

Perl - XML
#!/usr/bin/perl

use warnings;
use strict;
use SmsTextingAPI;
use Data::Dumper;
use feature qw(say);

say 'XML encoding.';
my $sms = new SmsTextingAPI("demouser", "password", SmsTextingAPI::XML, "https://app.clubtexting.com");

say 'Get folders';
my $response =  $sms->getAll(SmsTextingAPI::FOLDER);
say Dumper($response);


say 'Create folder';
$response = $sms->put(SmsTextingAPI::FOLDER,
    'Name'        => 'Customers');
say Dumper($response);


say 'Get folder';
my $folderId = $response->{Entry}->{ID};
$response =  $sms->get(SmsTextingAPI::FOLDER, $folderId);
say Dumper($response);


say 'Update folder';
my $folder = $response->{Entry};
$folder->{'Name'} = 'Customers2';
$folder->{ID} = $folderId;
$response = $sms->put(SmsTextingAPI::FOLDER, %$folder);
say Dumper($response);


say 'Delete folder';
$response =  $sms->delete(SmsTextingAPI::FOLDER, $folderId);
say Dumper($response);


say 'Second delete. try to get error';
$response =  $sms->delete(SmsTextingAPI::FOLDER, $folderId);
say Dumper($response);
Perl - JSON
#!/usr/bin/perl

use warnings;
use strict;
use SmsTextingAPI;
use Data::Dumper;
use feature qw(say);

say 'JSON encoding.';
$sms = new SmsTextingAPI("demouser", "password", SmsTextingAPI::JSON, "https://app.clubtexting.com");

say 'Get folders';
$response =  $sms->getAll(SmsTextingAPI::FOLDER);
say Dumper($response);


say 'Create folder';
$response = $sms->put(SmsTextingAPI::FOLDER,
    'Name'        => 'Customers');
say Dumper($response);


say 'Get folder';
$folderId = $response->{Entry}->{ID};
$response =  $sms->get(SmsTextingAPI::FOLDER, $folderId);
say Dumper($response);


say 'Update folder';
$folder = $response->{Entry};
$folder->{'Name'} = 'Customers2';
$folder->{ID} = $folderId;
$response = $sms->put(SmsTextingAPI::FOLDER, %$folder);
say Dumper($response);


say 'Delete folder';
$response =  $sms->delete(SmsTextingAPI::FOLDER, $folderId);
say Dumper($response);


say 'Second delete. try to get error';
$response =  $sms->delete(SmsTextingAPI::FOLDER, $folderId);
say Dumper($response);




Check Keyword Availability

Check whether a Keyword is available to rent on Club Texting's short code. Please note, we will check availability for the country your account is set to.

Code Samples

Perl - XML
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use XML::Simple;

$ua = new LWP::UserAgent(keep_alive=>1);

$params = "";
$params.= "User=winnie&Password=the-pooh";
$params.= "&Keyword=honey";

my $responde = HTTP::Request->new(GET => "https://app.clubtexting.com/keywords/new?format=xml&".$params);

$responseObj = $ua->request($responde);

print $responseObj->content."\n--------------------\n";

$responseCode = $responseObj->code;
print 'Response code: ' . $responseCode . "\n";
$isSuccesResponse = $responseCode < 400;


$response = XML::Simple->new->XMLin($responseObj->content);

print 'Status: ' . $response->{Status} . "\n" .
      'Code: ' . $response->{Code} . "\n";
if ($isSuccesResponse) {
    print 'Keyword: ' . $response->{Entry}->{Keyword} . "\n".
          'Availability: ' . $response->{Entry}->{Available} . "\n";
} else {
    $errors = $response->{Errors}->{Error};
    print 'Errors: ' .(ref($errors) eq 'ARRAY' ? join(', ', @{$errors}) : $errors) . "\n";
}
Perl - JSON
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use JSON::XS;

$ua = new LWP::UserAgent(keep_alive=>1);

$params = "";
$params.= "User=winnie&Password=the-pooh";
$params.= "&Keyword=honey";

my $responde = HTTP::Request->new(GET => "https://app.clubtexting.com/keywords/new?format=json&".$params);

$responseObj = $ua->request($responde);

print $responseObj->content."\n--------------------\n";

$responseCode = $responseObj->code;
print 'Response code: ' . $responseCode . "\n";
$isSuccesResponse = $responseCode < 400;

$response = JSON::XS->new->decode ($responseObj->content);

print 'Status: ' . $response->{Response}->{Status} . "\n" .
      'Code: ' . $response->{Response}->{Code} . "\n";
if ($isSuccesResponse) {
    print 'Keyword: ' . $response->{Response}->{Entry}->{Keyword} . "\n".
          'Availability: ' . $response->{Response}->{Entry}->{Available} . "\n";
} else {
    foreach $err (@{$response->{Response}->{Errors}}) {
        print 'Error: ' . $err . "\n";
    }
}




Rent Keyword

Rents a Keyword for use on Club Texting's short code in the country your account is set to send messages to. You may rent a Keyword using a credit card you have stored in your Club Texting account, or you may pass credit card details when you call the API.

Code Samples - Stored Card

Perl - XML
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use XML::Simple;

$ua = new LWP::UserAgent(keep_alive=>1);

$params = "";
$params.= "User=demo&Password=texting121212";
$params.= "&Subject=From Winnie";
$params.= "&Keyword=honey";
$params.= "&StoredCreditCard=1111";


my $responde = HTTP::Request->new(POST => "https://app.clubtexting.com/keywords?format=xml");
$responde->content_type("application/x-www-form-urlencoded");
$responde->content($params);

$responseObj = $ua->request($responde);

print $responseObj->content."\n--------------------\n";

$responseCode = $responseObj->code;
print 'Response code: ' . $responseCode . "\n";
$isSuccesResponse = $responseCode < 400;

$response = XML::Simple->new->XMLin($responseObj->content);

print 'Status: ' . $response->{Status} . "\n" .
      'Code: ' . $response->{Code} . "\n";
if ($isSuccesResponse) {
    $groups = $response->{Entry}->{ContactGroupIDs}->{Group};
    print 'Keyword ID: ' . $response->{Entry}->{ID} . "\n".
          'Keyword: ' . $response->{Entry}->{Keyword} . "\n" .
          'Is double opt-in enabled: ' .  $response->{Entry}->{EnableDoubleOptIn} . "\n" .
          'Confirm message: ' . $response->{Entry}->{ConfirmMessage} . "\n" .
          'Join message: ' . $response->{Entry}->{JoinMessage} . "\n" .
          'Forward email: ' . $response->{Entry}->{ForwardEmail} . "\n" .
          'Forward url: ' . $response->{Entry}->{ForwardUrl} . "\n" .
          'Groups: ' . (ref($groups) eq 'ARRAY' ? join(', ', @{$groups}) : $groups)."\n";
} else {
    $errors = $response->{Errors}->{Error};
    print 'Errors: ' .(ref($errors) eq 'ARRAY' ? join(', ', @{$errors}) : $errors) . "\n";
}
Perl - JSON
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use JSON::XS;

$ua = new LWP::UserAgent(keep_alive=>1);

$params = "";
$params.= "User=demo&Password=texting121212";
$params.= "&Subject=From Winnie";
$params.= "&Keyword=honey";
$params.= "&StoredCreditCard=1111";


my $responde = HTTP::Request->new(POST => "https://app.clubtexting.com/keywords?format=json");
$responde->content_type("application/x-www-form-urlencoded");
$responde->content($params);

$responseObj = $ua->request($responde);

print $responseObj->content."\n--------------------\n";

$responseCode = $responseObj->code;
print 'Response code: ' . $responseCode . "\n";
$isSuccesResponse = $responseCode < 400;

$response = JSON::XS->new->decode ($responseObj->content);

print 'Status: ' . $response->{Response}->{Status} . "\n" .
      'Code: ' . $response->{Response}->{Code} . "\n";
if ($isSuccesResponse) {
    print 'Keyword ID: ' . $response->{Response}->{Entry}->{ID} . "\n".
          'Keyword: ' . $response->{Response}->{Entry}->{Keyword} . "\n" .
          'Is double opt-in enabled: ' . $response->{Response}->{Entry}->{EnableDoubleOptIn} . "\n" .
          'Confirm message: ' . $response->{Response}->{Entry}->{ConfirmMessage} . "\n" .
          'Join message: ' . $response->{Response}->{Entry}->{JoinMessage} . "\n" .
          'Forward email: ' . $response->{Response}->{Entry}->{ForwardEmail} . "\n" .
          'Forward url: ' . $response->{Response}->{Entry}->{ForwardUrl} . "\n" .
          'Groups: ' . join(', ' , @{$response->{Response}->{Entry}->{ContactGroupIDs}}) . "\n";
} else {
    foreach $err (@{$response->{Response}->{Errors}}) {
        print 'Error: ' . $err . "\n";
    }
}

Code Samples - Non-Stored Card

Perl - XML
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use XML::Simple;

$ua = new LWP::UserAgent(keep_alive=>1);

$params = "";
$params.= "User=winnie&Password=the-pooh";
$params.= "&Subject=From Winnie";
$params.= "&Keyword=honey";
$params.= "&FirstName=Winnie";
$params.= "&LastName=The Pooh";
$params.= "&Street=Hollow tree, under the name of Mr. Sanders";
$params.= "&City=Hundred Acre Woods";
$params.= "&State=New York";
$params.= "&Zip=12345";
$params.= "&Country=US";
$params.= "&CreditCardTypeID=Visa";
$params.= "&Number=4111111111111111";
$params.= "&SecurityCode=123";
$params.= "&ExpirationMonth=10";
$params.= "&ExpirationYear=2017";


my $responde = HTTP::Request->new(POST => "https://app.clubtexting.com/keywords?format=xml");
$responde->content_type("application/x-www-form-urlencoded");
$responde->content($params);

$responseObj = $ua->request($responde);

print $responseObj->content."\n--------------------\n";

$responseCode = $responseObj->code;
print 'Response code: ' . $responseCode . "\n";
$isSuccesResponse = $responseCode < 400;

$response = XML::Simple->new->XMLin($responseObj->content);

print 'Status: ' . $response->{Status} . "\n" .
      'Code: ' . $response->{Code} . "\n";
if ($isSuccesResponse) {
    $groups = $response->{Entry}->{ContactGroupIDs}->{Group};
    print 'Keyword ID: ' . $response->{Entry}->{ID} . "\n".
          'Keyword: ' . $response->{Entry}->{Keyword} . "\n" .
          'Is double opt-in enabled: ' .  $response->{Entry}->{EnableDoubleOptIn} . "\n" .
          'Confirm message: ' . $response->{Entry}->{ConfirmMessage} . "\n" .
          'Join message: ' . $response->{Entry}->{JoinMessage} . "\n" .
          'Forward email: ' . $response->{Entry}->{ForwardEmail} . "\n" .
          'Forward url: ' . $response->{Entry}->{ForwardUrl} . "\n" .
          'Groups: ' . (ref($groups) eq 'ARRAY' ? join(', ', @{$groups}) : $groups)."\n";
} else {
    $errors = $response->{Errors}->{Error};
    print 'Errors: ' .(ref($errors) eq 'ARRAY' ? join(', ', @{$errors}) : $errors) . "\n";
}
Perl - JSON
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use JSON::XS;

$ua = new LWP::UserAgent(keep_alive=>1);

$params = "";
$params.= "User=winnie&Password=the-pooh";
$params.= "&Subject=From Winnie";
$params.= "&Keyword=honey";
$params.= "&FirstName=Winnie";
$params.= "&LastName=The Pooh";
$params.= "&Street=Hollow tree, under the name of Mr. Sanders";
$params.= "&City=Hundred Acre Woods";
$params.= "&State=New York";
$params.= "&Zip=12345";
$params.= "&Country=US";
$params.= "&CreditCardTypeID=Visa";
$params.= "&Number=4111111111111111";
$params.= "&SecurityCode=123";
$params.= "&ExpirationMonth=10";
$params.= "&ExpirationYear=2017";


my $responde = HTTP::Request->new(POST => "https://app.clubtexting.com/keywords?format=json");
$responde->content_type("application/x-www-form-urlencoded");
$responde->content($params);

$responseObj = $ua->request($responde);

print $responseObj->content."\n--------------------\n";

$responseCode = $responseObj->code;
print 'Response code: ' . $responseCode . "\n";
$isSuccesResponse = $responseCode < 400;

$response = JSON::XS->new->decode ($responseObj->content);

print 'Status: ' . $response->{Response}->{Status} . "\n" .
      'Code: ' . $response->{Response}->{Code} . "\n";
if ($isSuccesResponse) {
    print 'Keyword ID: ' . $response->{Response}->{Entry}->{ID} . "\n".
          'Keyword: ' . $response->{Response}->{Entry}->{Keyword} . "\n" .
          'Is double opt-in enabled: ' . $response->{Response}->{Entry}->{EnableDoubleOptIn} . "\n" .
          'Confirm message: ' . $response->{Response}->{Entry}->{ConfirmMessage} . "\n" .
          'Join message: ' . $response->{Response}->{Entry}->{JoinMessage} . "\n" .
          'Forward email: ' . $response->{Response}->{Entry}->{ForwardEmail} . "\n" .
          'Forward url: ' . $response->{Response}->{Entry}->{ForwardUrl} . "\n" .
          'Groups: ' . join(', ' , @{$response->{Response}->{Entry}->{ContactGroupIDs}}) . "\n";
} else {
    foreach $err (@{$response->{Response}->{Errors}}) {
        print 'Error: ' . $err . "\n";
    }
}




Setup A Keyword

Configures an active Keyword for use on Club Texting's short code in the country your account is set to send messages to.

Code Samples

Perl - XML
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use XML::Simple;

$ua = new LWP::UserAgent(keep_alive=>1);

$params = "";
$params.= "User=winnie&Password=the-pooh";
$params.= "&EnableDoubleOptIn=1";
$params.= "&ConfirmMessage=Reply Y to join our sweetest list";
$params.= "&JoinMessage=The only reason for being a bee that I know of, is to make honey. And the only reason for making honey, is so as I can eat it.";
$params.= '&ForwardEmail=honey@bear-alliance.co.uk';
$params.= "&ForwardUrl=http://bear-alliance.co.uk/honey-donations/";
$params.= "&ContactGroupIDs[]=honey";
$params.= "&ContactGroupIDs[]=lovers";

my $responde = HTTP::Request->new(POST => "https://app.clubtexting.com/keywords/honey?format=xml");
$responde->content_type("application/x-www-form-urlencoded");
$responde->content($params);

$responseObj = $ua->request($responde);

print $responseObj->content."\n--------------------\n";

$responseCode = $responseObj->code;
print 'Response code: ' . $responseCode . "\n";
$isSuccesResponse = $responseCode < 400;

$response = XML::Simple->new->XMLin($responseObj->content);#(ForceArray => 1)

print 'Status: ' . $response->{Status} . "\n" .
      'Code: ' . $response->{Code} . "\n";
if ($isSuccesResponse) {
    $groups = $response->{Entry}->{ContactGroupIDs}->{Group};
    print 'Keyword ID: ' . $response->{Entry}->{ID} . "\n".
          'Keyword: ' . $response->{Entry}->{Keyword} . "\n" .
          'Is double opt-in enabled: ' .  $response->{Entry}->{EnableDoubleOptIn} . "\n" .
          'Confirm message: ' . $response->{Entry}->{ConfirmMessage} . "\n" .
          'Join message: ' . $response->{Entry}->{JoinMessage} . "\n" .
          'Forward email: ' . $response->{Entry}->{ForwardEmail} . "\n" .
          'Forward url: ' . $response->{Entry}->{ForwardUrl} . "\n" .
          'Groups: ' . (ref($groups) eq 'ARRAY' ? join(', ', @{$groups}) : $groups)."\n";
} else {
    $errors = $response->{Errors}->{Error};
    print 'Errors: ' .(ref($errors) eq 'ARRAY' ? join(', ', @{$errors}) : $errors) . "\n";
}
Perl - JSON
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use JSON::XS;

$ua = new LWP::UserAgent(keep_alive=>1);

$params = "";
$params.= "User=winnie&Password=the-pooh";
$params.= "&EnableDoubleOptIn=1";
$params.= "&ConfirmMessage=Reply Y to join our sweetest list";
$params.= "&JoinMessage=The only reason for being a bee that I know of, is to make honey. And the only reason for making honey, is so as I can eat it.";
$params.= '&ForwardEmail=honey@bear-alliance.co.uk';
$params.= "&ForwardUrl=http://bear-alliance.co.uk/honey-donations/";
$params.= "&ContactGroupIDs[]=honey";
$params.= "&ContactGroupIDs[]=lovers";

my $responde = HTTP::Request->new(POST => "https://app.clubtexting.com/keywords/honey?format=json");
$responde->content_type("application/x-www-form-urlencoded");
$responde->content($params);

$responseObj = $ua->request($responde);

print $responseObj->content."\n--------------------\n";

$responseCode = $responseObj->code;
print 'Response code: ' . $responseCode . "\n";
$isSuccesResponse = $responseCode < 400;

$response = JSON::XS->new->decode ($responseObj->content);

print 'Status: ' . $response->{Response}->{Status} . "\n" .
      'Code: ' . $response->{Response}->{Code} . "\n";
if ($isSuccesResponse) {
    print 'Keyword ID: ' . $response->{Response}->{Entry}->{ID} . "\n".
          'Keyword: ' . $response->{Response}->{Entry}->{Keyword} . "\n" .
          'Is double opt-in enabled: ' .  $response->{Response}->{Entry}->{EnableDoubleOptIn} . "\n" .
          'Confirm message: ' . $response->{Response}->{Entry}->{ConfirmMessage} . "\n" .
          'Join message: ' . $response->{Response}->{Entry}->{JoinMessage} . "\n" .
          'Forward email: ' . $response->{Response}->{Entry}->{ForwardEmail} . "\n" .
          'Forward url: ' . $response->{Response}->{Entry}->{ForwardUrl} . "\n" .
          'Groups: ' . join(', ', @{$response->{Response}->{Entry}->{ContactGroupIDs}})."\n";
} else {
    foreach $err (@{$response->{Response}->{Errors}}) {
        print 'Error: ' . $err . "\n";
    }
}




Cancel A Keyword

Cancels an active Keyword on Club Texting's short code in the country your account is set to send messages to.

Code Samples

Perl - XML
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use XML::Simple;

$ua = new LWP::UserAgent(keep_alive=>1);

$params = "";
$params.= "User=winnie&Password=the-pooh";

my $responde = HTTP::Request->new(POST => "https://app.clubtexting.com/keywords/honey?format=xml&_method=DELETE");
$responde->content_type("application/x-www-form-urlencoded");
$responde->content($params);

$responseObj = $ua->request($responde);

print $responseObj->content."\n--------------------\n";

$responseCode = $responseObj->code;
print 'Response code: ' . $responseCode . "\n";
$isSuccesResponse = $responseCode < 400;


if (!$isSuccesResponse) {
    $response = XML::Simple->new->XMLin($responseObj->content);
    print 'Status: ' . $response->{Status} . "\n" .
          'Code: ' . $response->{Code} . "\n";
    $errors = $response->{Errors}->{Error};
    print 'Errors: ' .(ref($errors) eq 'ARRAY' ? join(', ', @{$errors}) : $errors) . "\n";
}
Perl - JSON
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use JSON::XS;

$ua = new LWP::UserAgent(keep_alive=>1);

$params = "";
$params.= "User=winnie&Password=the-pooh";

my $responde = HTTP::Request->new(POST => "https://app.clubtexting.com/keywords/honey?format=json&_method=DELETE");
$responde->content_type("application/x-www-form-urlencoded");
$responde->content($params);

$responseObj = $ua->request($responde);

print $responseObj->content."\n--------------------\n";


$responseCode = $responseObj->code;
print 'Response code: ' . $responseCode . "\n";
$isSuccesResponse = $responseCode < 400;

if (!$isSuccesResponse) {
    $response = JSON::XS->new->decode ($responseObj->content);
    print 'Status: ' . $response->{Response}->{Status} . "\n" .
          'Code: ' . $response->{Response}->{Code} . "\n";
    foreach $err (@{$response->{Response}->{Errors}}) {
        print 'Error: ' . $err . "\n";
    }
}




Check Credit Balance

Checks credit balances on your account.

Code Samples

Perl - XML
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use XML::Simple;

$ua = new LWP::UserAgent(keep_alive=>1);

$params = "";
$params.= "User=winnie&Password=the-pooh";

my $responde = HTTP::Request->new(GET => "https://app.clubtexting.com/billing/credits/get?format=xml&".$params);

$responseObj = $ua->request($responde);

print $responseObj->content."\n--------------------\n";

$responseCode = $responseObj->code;
print 'Response code: ' . $responseCode . "\n";
$isSuccesResponse = $responseCode < 400;

$response = XML::Simple->new->XMLin($responseObj->content);

print 'Status: ' . $response->{Status} . "\n" .
      'Code: ' . $response->{Code} . "\n";
if ($isSuccesResponse) {
    print 'Plan credits: ' . $response->{Entry}->{PlanCredits} . "\n" .
          'Anytime credits: ' . $response->{Entry}->{AnytimeCredits} . "\n" .
          'Total: ' . $response->{Entry}->{TotalCredits} . "\n";
} else {
    $errors = $response->{Errors}->{Error};
    print 'Errors: ' .(ref($errors) eq 'ARRAY' ? join(', ', @{$errors}) : $errors) . "\n";
}
Perl - JSON
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use JSON::XS;

$ua = new LWP::UserAgent(keep_alive=>1);

$params = "";
$params.= "User=winnie&Password=the-pooh";

my $responde = HTTP::Request->new(GET => "https://app.clubtexting.com/billing/credits/get?format=json&".$params);

$responseObj = $ua->request($responde);

print $responseObj->content."\n--------------------\n";

$responseCode = $responseObj->code;
print 'Response code: ' . $responseCode . "\n";
$isSuccesResponse = $responseCode < 400;

$response = JSON::XS->new->decode ($responseObj->content);

print 'Status: ' . $response->{Response}->{Status} . "\n" .
      'Code: ' . $response->{Response}->{Code} . "\n";
if ($isSuccesResponse) {
    print 'Plan credits: ' . $response->{Response}->{Entry}->{PlanCredits} . "\n" .
          'Anytime credits: ' . $response->{Response}->{Entry}->{AnytimeCredits} . "\n" .
          'Total: ' . $response->{Response}->{Entry}->{TotalCredits} . "\n";
} else {
    foreach $err (@{$response->{Response}->{Errors}}) {
        print 'Error: ' . $err . "\n";
    }
}




Buy Credits

Buys more credits for your account. You may purchase credits using a credit card you have stored in your Club Texting account, or you may pass credit card details when you call the API.

Code Samples - Stored Card

Perl - XML
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use XML::Simple;

$ua = new LWP::UserAgent(keep_alive=>1);

$params = "";
$params.= "User=demo&Password=texting121212";
$params.= "&NumberOfCredits=1000";
$params.= "&CouponCode=honey2011";
$params.= "&StoredCreditCard=1111";


my $responde = HTTP::Request->new(POST => "https://app.clubtexting.com/billing/credits?format=xml");
$responde->content_type("application/x-www-form-urlencoded");
$responde->content($params);

$responseObj = $ua->request($responde);

print $responseObj->content."\n--------------------\n";

$responseCode = $responseObj->code;
print 'Response code: ' . $responseCode . "\n";
$isSuccesResponse = $responseCode < 400;

$response = XML::Simple->new->XMLin($responseObj->content);

print 'Status: ' . $response->{Status} . "\n" .
      'Code: ' . $response->{Code} . "\n";
if ($isSuccesResponse) {
    print 'Credits purchased: ' . $response->{Entry}->{BoughtCredits} . "\n" .
          'Amount charged, $: ' . $response->{Entry}->{Amount} . "\n" .
          'Discount, $: ' . $response->{Entry}->{Discount} . "\n" .
          'Plan credits: ' . $response->{Entry}->{PlanCredits} . "\n" .
          'Anytime credits: ' . $response->{Entry}->{AnytimeCredits} . "\n" .
          'Total: ' . $response->{Entry}->{TotalCredits} . "\n";
} else {
    $errors = $response->{Errors}->{Error};
    print 'Errors: ' .(ref($errors) eq 'ARRAY' ? join(', ', @{$errors}) : $errors) . "\n";
}
Perl - JSON
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use JSON::XS;

$ua = new LWP::UserAgent(keep_alive=>1);

$params = "";
$params.= "User=demo&Password=texting121212";
$params.= "&NumberOfCredits=1000";
$params.= "&CouponCode=honey2011";
$params.= "&StoredCreditCard=1111";


my $responde = HTTP::Request->new(POST => "https://app.clubtexting.com/billing/credits?format=json");
$responde->content_type("application/x-www-form-urlencoded");
$responde->content($params);

$responseObj = $ua->request($responde);

print $responseObj->content."\n--------------------\n";

$responseCode = $responseObj->code;
print 'Response code: ' . $responseCode . "\n";
$isSuccesResponse = $responseCode < 400;

$response = JSON::XS->new->decode ($responseObj->content);

print 'Status: ' . $response->{Response}->{Status} . "\n" .
      'Code: ' . $response->{Response}->{Code} . "\n";
if ($isSuccesResponse) {
    print 'Credits purchased: ' . $response->{Response}->{Entry}->{BoughtCredits} . "\n" .
          'Amount charged, $: ' . $response->{Response}->{Entry}->{Amount} . "\n" .
          'Discount, $: ' . $response->{Response}->{Entry}->{Discount} . "\n" .
          'Plan credits: ' . $response->{Response}->{Entry}->{PlanCredits} . "\n" .
          'Anytime credits: ' . $response->{Response}->{Entry}->{AnytimeCredits} . "\n" .
          'Total: ' . $response->{Response}->{Entry}->{TotalCredits} . "\n";
} else {
    foreach $err (@{$response->{Response}->{Errors}}) {
        print 'Error: ' . $err . "\n";
    }
}

Code Samples - Non-Stored Card

Perl - XML
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use XML::Simple;

$ua = new LWP::UserAgent(keep_alive=>1);

$params = "";
$params.= "User=winnie&Password=the-pooh";
$params.= "&NumberOfCredits=1000";
$params.= "&CouponCode=honey2011";
$params.= "&FirstName=Winnie";
$params.= "&LastName=The Pooh";
$params.= "&Street=Hollow tree, under the name of Mr. Sanders";
$params.= "&City=Hundred Acre Woods";
$params.= "&State=New York";
$params.= "&Zip=12345";
$params.= "&Country=US";
$params.= "&CreditCardTypeID=Visa";
$params.= "&Number=4111111111111111";
$params.= "&SecurityCode=123";
$params.= "&ExpirationMonth=10";
$params.= "&ExpirationYear=2017";


my $responde = HTTP::Request->new(POST => "https://app.clubtexting.com/billing/credits?format=xml");
$responde->content_type("application/x-www-form-urlencoded");
$responde->content($params);

$responseObj = $ua->request($responde);

print $responseObj->content."\n--------------------\n";

$responseCode = $responseObj->code;
print 'Response code: ' . $responseCode . "\n";
$isSuccesResponse = $responseCode < 400;

$response = XML::Simple->new->XMLin($responseObj->content);

print 'Status: ' . $response->{Status} . "\n" .
      'Code: ' . $response->{Code} . "\n";
if ($isSuccesResponse) {
    print 'Credits purchased: ' . $response->{Entry}->{BoughtCredits} . "\n" .
          'Amount charged, $: ' . $response->{Entry}->{Amount} . "\n" .
          'Discount, $: ' . $response->{Entry}->{Discount} . "\n" .
          'Plan credits: ' . $response->{Entry}->{PlanCredits} . "\n" .
          'Anytime credits: ' . $response->{Entry}->{AnytimeCredits} . "\n" .
          'Total: ' . $response->{Entry}->{TotalCredits} . "\n";
} else {
    $errors = $response->{Errors}->{Error};
    print 'Errors: ' .(ref($errors) eq 'ARRAY' ? join(', ', @{$errors}) : $errors) . "\n";
}
Perl - JSON
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use JSON::XS;

$ua = new LWP::UserAgent(keep_alive=>1);

$params = "";
$params.= "User=winnie&Password=the-pooh";
$params.= "&NumberOfCredits=1000";
$params.= "&CouponCode=honey2011";
$params.= "&FirstName=Winnie";
$params.= "&LastName=The Pooh";
$params.= "&Street=Hollow tree, under the name of Mr. Sanders";
$params.= "&City=Hundred Acre Woods";
$params.= "&State=New York";
$params.= "&Zip=12345";
$params.= "&Country=US";
$params.= "&CreditCardTypeID=Visa";
$params.= "&Number=4111111111111111";
$params.= "&SecurityCode=123";
$params.= "&ExpirationMonth=10";
$params.= "&ExpirationYear=2017";


my $responde = HTTP::Request->new(POST => "https://app.clubtexting.com/billing/credits?format=json");
$responde->content_type("application/x-www-form-urlencoded");
$responde->content($params);

$responseObj = $ua->request($responde);

print $responseObj->content."\n--------------------\n";

$responseCode = $responseObj->code;
print 'Response code: ' . $responseCode . "\n";
$isSuccesResponse = $responseCode < 400;

$response = JSON::XS->new->decode ($responseObj->content);

print 'Status: ' . $response->{Response}->{Status} . "\n" .
      'Code: ' . $response->{Response}->{Code} . "\n";
if ($isSuccesResponse) {
    print 'Credits purchased: ' . $response->{Response}->{Entry}->{BoughtCredits} . "\n" .
          'Amount charged, $: ' . $response->{Response}->{Entry}->{Amount} . "\n" .
          'Discount, $: ' . $response->{Response}->{Entry}->{Discount} . "\n" .
          'Plan credits: ' . $response->{Response}->{Entry}->{PlanCredits} . "\n" .
          'Anytime credits: ' . $response->{Response}->{Entry}->{AnytimeCredits} . "\n" .
          'Total: ' . $response->{Response}->{Entry}->{TotalCredits} . "\n";
} else {
    foreach $err (@{$response->{Response}->{Errors}}) {
        print 'Error: ' . $err . "\n";
    }
}




Carrier Lookup

Returns the wireless carrier of a valid mobile phone number (US & Canada)

Code Samples

Perl - XML
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use XML::Simple;

$ua = new LWP::UserAgent(keep_alive=>1);

$params = "";
$params.= "User=winnielkup&Password=winnielkup";

my $responde = HTTP::Request->new(GET => "https://app.clubtexting.com/sending/phone-numbers/2345678910?format=xml&".$params);

$responseObj = $ua->request($responde);

print $responseObj->content."\n--------------------\n";

$responseCode = $responseObj->code;
print 'Response code: ' . $responseCode . "\n";
$isSuccesResponse = $responseCode < 400;

$response = XML::Simple->new->XMLin($responseObj->content);

print 'Status: ' . $response->{Status} . "\n" .
      'Code: ' . $response->{Code} . "\n";
if ($isSuccesResponse) {
    print 'Phone number: ' . $response->{Entry}->{PhoneNumber} . "\n" .
          'CarrierName: ' . $response->{Entry}->{CarrierName} . "\n";
} else {
    $errors = $response->{Errors}->{Error};
    print 'Errors: ' .(ref($errors) eq 'ARRAY' ? join(', ', @{$errors}) : $errors) . "\n";
}
Perl - JSON
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use JSON::XS;

$ua = new LWP::UserAgent(keep_alive=>1);

$params = "";
$params.= "User=winnielkup&Password=winnielkup";

my $responde = HTTP::Request->new(GET => "https://app.clubtexting.com/sending/phone-numbers/2345678910?format=json&".$params);

$responseObj = $ua->request($responde);

print $responseObj->content."\n--------------------\n";

$responseCode = $responseObj->code;
print 'Response code: ' . $responseCode . "\n";
$isSuccesResponse = $responseCode < 400;

$response = JSON::XS->new->decode ($responseObj->content);

print 'Status: ' . $response->{Response}->{Status} . "\n" .
      'Code: ' . $response->{Response}->{Code} . "\n";
if ($isSuccesResponse) {
    print 'Phone number: ' . $response->{Response}->{Entry}->{PhoneNumber} . "\n" .
          'CarrierName: ' . $response->{Response}->{Entry}->{CarrierName} . "\n";
} else {
    foreach $err (@{$response->{Response}->{Errors}}) {
        print 'Error: ' . $err . "\n";
    }
}




Contacts

When working with Contacts you can perform five actions: Post (Add New Contact), Put (Update/Edit A Contact), Delete (Delete A Contact), Get (Get Contact By ID), Index (Get All Contacts). The code samples below use shared libraries:
· SMSTextingAPI.pm
· SmsTextingJsonDecoder.pm
· SmsTextingXmlDecoder.pm
You can download them, along with the code samples here: PerlLib.zip.

Code Samples

Perl - XML
#!/usr/bin/perl

use warnings;
use strict;
use SmsTextingAPI;
use Data::Dumper;
use feature qw(say);

say 'XML encoding.';
my $sms = new SmsTextingAPI("demouser", "password", SmsTextingAPI::XML, "https://app.clubtexting.com");

say 'Get contacts';
my $response =  $sms->getAll(SmsTextingAPI::CONTACT, 
    'source'        => 'upload',
    'optout'        => 'false',
    'group'         => 'Honey Lovers',
    'sortBy'        => 'PhoneNumber',
    'sortDir'       => 'asc',
    'itemsPerPage'  => '10',
    'page'          => '3');
say Dumper($response);


say 'Create contact';
$response = $sms->put(SmsTextingAPI::CONTACT,
    'PhoneNumber' => '2123456945',
    'FirstName'   => 'Piglet',
    'LastName'    => 'P.',
    'Email'       => 'piglet@small-animals-alliance.org',
    'Note'        => 'It is hard to be brave, when you are only a Very Small Animal.',
    'Groups'   => ['Friends', 'Neighbors']);
say Dumper($response);


say 'Get contact';
my $contactId = $response->{Entry}->{ID};
$response =  $sms->get(SmsTextingAPI::CONTACT, $contactId);
say Dumper($response);


say 'Update contact';
my $contact = $response->{Entry};
$contact->{'LastName'} = 'test';
$response = $sms->put(SmsTextingAPI::CONTACT, %$contact);
say Dumper($response);


say 'Delete contact';
$response =  $sms->delete(SmsTextingAPI::CONTACT, $contactId);
say Dumper($response);


say 'Second delete. try to get error';
$response =  $sms->delete(SmsTextingAPI::CONTACT, $contactId);
say Dumper($response);
Perl - JSON
#!/usr/bin/perl

use warnings;
use strict;
use SmsTextingAPI;
use Data::Dumper;
use feature qw(say);

say 'JSON encoding.';
$sms = new SmsTextingAPI("demouser", "password", SmsTextingAPI::JSON, "https://app.clubtexting.com");

say 'Get contacts';
$response =  $sms->getAll(SmsTextingAPI::CONTACT, 
    'source'        => 'upload',
    'optout'        => 'false',
    'group'         => 'Honey Lovers',
    'sortBy'        => 'PhoneNumber',
    'sortDir'       => 'asc',
    'itemsPerPage'  => '10',
    'page'          => '3');
say Dumper($response);


say 'Create contact';
$response = $sms->put(SmsTextingAPI::CONTACT,
    'PhoneNumber' => '2123456945',
    'FirstName'   => 'Piglet',
    'LastName'    => 'P.',
    'Email'       => 'piglet@small-animals-alliance.org',
    'Note'        => 'It is hard to be brave, when you are only a Very Small Animal.',
    'Groups'   => ['Friends', 'Neighbors']);
say Dumper($response);


say 'Get contact';
$contactId = $response->{Entry}->{ID};
$response =  $sms->get(SmsTextingAPI::CONTACT, $contactId);
say Dumper($response);


say 'Update contact';
$contact = $response->{Entry};
$contact->{'LastName'} = 'test';
$response = $sms->put(SmsTextingAPI::CONTACT, %$contact);
say Dumper($response);


say 'Delete contact';
$response =  $sms->delete(SmsTextingAPI::CONTACT, $contactId);
say Dumper($response);


say 'Second delete. try to get error';
$response =  $sms->delete(SmsTextingAPI::CONTACT, $contactId);
say Dumper($response);




Groups

When working with Groups you can perform five actions: Post (Add New Group), Put (Update/Edit A Group), Delete (Delete A Group), Get (Get Group By ID), Index (Get All Groups). The code samples below use shared libraries:
· SMSTextingAPI.pm
· SmsTextingJsonDecoder.pm
· SmsTextingXmlDecoder.pm
You can download them, along with the code samples here: PerlLib.zip.

Code Samples

Perl - XML
#!/usr/bin/perl

use warnings;
use strict;
use SmsTextingAPI;
use Data::Dumper;
use feature qw(say);

say 'XML encoding.';
my $sms = new SmsTextingAPI("demouser", "password", SmsTextingAPI::XML, "https://app.clubtexting.com");

say 'Get groups';
my $response =  $sms->getAll(SmsTextingAPI::GROUP, 'sortBy' => 'Name');
say Dumper($response);


say 'Create group';
$response = $sms->put(SmsTextingAPI::GROUP,
    'Name'        => 'Tubby Bears',
    'Note'        => 'A bear, however hard he tries, grows tubby without exercise');
say Dumper($response);


say 'Get group';
my $groupId = $response->{Entry}->{ID};
$response =  $sms->get(SmsTextingAPI::GROUP, $groupId);
say Dumper($response);


say 'Update group';
my $group = $response->{Entry};
$group->{'Note'} = 'test';
$response = $sms->put(SmsTextingAPI::GROUP, %$group);
say Dumper($response);


say 'Delete group';
$response =  $sms->delete(SmsTextingAPI::GROUP, $groupId);
say Dumper($response);


say 'Second delete. try to get error';
$response =  $sms->delete(SmsTextingAPI::GROUP, $groupId);
say Dumper($response);
Perl - JSON
#!/usr/bin/perl

use warnings;
use strict;
use SmsTextingAPI;
use Data::Dumper;
use feature qw(say);


say 'JSON encoding.';
$sms = new SmsTextingAPI("demouser", "password", SmsTextingAPI::JSON, "https://app.clubtexting.com");

say 'Get groups';
$response =  $sms->getAll(SmsTextingAPI::GROUP, 'sortBy' => 'Name');
say Dumper($response);


say 'Create group';
$response = $sms->put(SmsTextingAPI::GROUP,
    'Name'        => 'Tubby Bears',
    'Note'        => 'A bear, however hard he tries, grows tubby without exercise');
say Dumper($response);


say 'Get group';
$groupId = $response->{Entry}->{ID};
$response =  $sms->get(SmsTextingAPI::GROUP, $groupId);
say Dumper($response);


say 'Update group';
$group = $response->{Entry};
$group->{'Note'} = 'test';
$response = $sms->put(SmsTextingAPI::GROUP, %$group);
say Dumper($response);


say 'Delete group';
$response =  $sms->delete(SmsTextingAPI::GROUP, $groupId);
say Dumper($response);


say 'Second delete. try to get error';
$response =  $sms->delete(SmsTextingAPI::GROUP, $groupId);
say Dumper($response);

Find Club Texting On Facebook Follow Club Texting On Twitter Find Club Texting On Google Plus The Latest Club Texting TweetFrom The Blog: Mobile Marketing That's Mobile - Engage With Brands In A Taxi http://t.co/mOaNo2pOrf1:47 PM May 15th

  • About Club Texting
  • Carrier Coverage
  • Case Studies
  • Client Testimonials
  • Getting Started Guides
  • Text Marketing FAQs
  • Text Messaging Software
  • Contact Us Now
  • Video Tours
  • Text Message Marketing Blog
  • Partner With Us
  • Privacy Policy / Terms Of Use
  • Anti-Spam Policy

Msg&data rates may apply in the US. Standard message and data rates apply in Canada. To unsubscribe from any Club Texting ® list simply send 'STOP' to 25827 (212121 in Canada) or contact Support.

Club Texting neither provides lists of phone numbers nor do we access our clients' contact lists. Club Texting is a 100% opt-in service.
Please see our Terms Of Use, Privacy Policy, & Anti-Spam Policy to learn about our stance on SPAM and your data privacy.