TellMyCell Mass Text Message Marketing

REST API Docs (Via XML/JSON)

The Developer Center @ TellMyCell

API Documentation

Code Samples

Sending SMS Messages

Sends SMS text messages via the short code 88202 to a single phone number or an array of phone numbers.

URL

https://app.tellmycell.com/sending/messages?format=format

Format & Method

Format can be either XML or JSON
HTTP Method must be POST

Parameters

User
(Required) Your TellMyCell username
Password
(Required) Your TellMyCell password
PhoneNumbers (Required) Array of 10 digit phone number to send message to
Subject
(Optional) The subject of your message up to 13 characters
Message
(Required) The body of your message
StampToSend
(Optional) Time to send a scheduled message (should be a Unix timestamp)
Note: Values must be properly URL encoded

Return Values

ID
Unique ID referencing the message
Subject
Subject of the message
Message
Body of the message
RecipientsCount
Number of intended recipients. Please note: This includes globally opted out numbers.
Credits
Number of credits charged for the message
StampToSend
Date and time message will be sent
PhoneNumbers
Array of phone numbers to receive the message
LocalOptOuts
Array of locally opted-out phone numbers
GlobalOptOuts
Array of globally opted-out phone numbers
Note: The list of allowed characters for messages and subjects is: a-z, A-Z, 0-9 and these special characters: .,:;!?()~=+-_\/@$#&%'"
Note: The following characters count as two characters when used: \r \n
Note: To opt back in a globally opted out number please text Your Keyword to 88202 using that phone.

HTTP Status Codes

201
Success - A new message has been scheduled for delivery
401
Unauthorized - Authentication credentials are missing or incorrect
403
Forbidden - Request is not valid. An accompanying error message explains why.
500
Internal Server Error - Something is broken. Please create a support ticket.

Sample Error Responses

  <?xml version="1.0" encoding="UTF-8"?>
  <Response>
      <Status>Failure</Status>
      <Code>401</Code>
      <Errors>
          <Error>Authorization Required</Error>
      </Errors>
  </Response>
                    
  <?xml version="1.0" encoding="UTF-8"?>
  <Response>
      <Status>Failure</Status>
      <Code>403</Code>
      <Errors>
          <Error>PhoneNumbers: '(123)45-67' contains characters which are not digits</Error>
          <Error>Subject: Your subject must be under 13 characters.</Error>
          <Error>Message: Your message contains characters that are not supported.</Error>
      </Errors>
  </Response>
                    

Successful Call & Response Samples

XML Example And Response:

curl -d   'user=winnie&password=the-pooh&PhoneNumbers[]=2123456785&PhoneNumbers[]=2123456786&PhoneNumbers[]=2123456787&PhoneNumbers[]=2123456788&Subject=From   Winnie&Message=I am a Bear of Very Little Brain, and long words  bother me&StampToSend=1305582245' https://app.tellmycell.com/sending/messages?format=xml
                  		
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Status>Success</Status>
    <Code>201</Code>
    <Entry>
        <ID>6419</ID>
        <Subject>From Winnie</Subject>
        <Message>I am a Bear of Very Little Brain, and long words bother me</Message>
        <RecipientsCount>3</RecipientsCount>
        <Credits>6</Credits>
        <StampToSend>05-16-2011 5:44 PM</StampToSend>
        <PhoneNumbers>
            <PhoneNumber>2123456787</PhoneNumber>
            <PhoneNumber>2123456788</PhoneNumber>
        </PhoneNumbers>
        <LocalOptOuts>
            <PhoneNumber>2123456786</PhoneNumber>
        </LocalOptOuts>
        <GlobalOptOuts>
            <PhoneNumber>2123456785</PhoneNumber>
        </GlobalOptOuts>
    </Entry>
</Response>
                    

JSON Example And Response:

curl -d   'User=winnie&Password=the-pooh&PhoneNumbers[]=2123456785&PhoneNumbers[]=2123456786&PhoneNumbers[]=2123456787&PhoneNumbers[]=2123456788&Subject=From   Winnie&Message=I am a Bear of Very Little Brain, and long words   bother me&StampToSend=1305582245' https://app.tellmycell.com/sending/messages?format=json
						
{
    "Response":{
        "Status":"Success",
        "Code":201,
        "Entry":{
            "ID":6417853,
            "Subject":"From Winnie",
            "Message":"I am a Bear of Very Little Brain, and long words bother me.",
            "RecipientsCount":3,
            "Credits":6,
            "StampToSend":"05-16-2011 5:44 PM",
            "PhoneNumbers":[
                "2123456787",
                "2123456788" 
            ],
            "LocalOptOuts":[
                "2123456786" 
            ],
            "GlobalOptOuts":[
                "2123456785" 
            ]
        }
    }
}
                    




Check Keyword Availability

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

URL

https://app.tellmycell.com/keywords/new?Keyword=keyword&format=format

Format & Method

Format can be either XML or JSON
HTTP Method must be GET

Parameters

User
(Required) Your TellMyCell username
Password
(Required) Your TellMyCell password
Keyword
(Required) The keyword to be checked

Return Values

Keyword
Keyword that was checked
Available
Indicates if the Keyword is available

HTTP Status Codes

200
Success - The Keyword is available
401
Unauthorized - Authentication credentials are missing or incorrect
403
Forbidden - Request is not valid. An accompanying error message explains why.
500
Internal Server Error - Something is broken. Please create a support ticket.

Sample Error Responses

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Status>Failure</Status>
    <Code>401</Code>
    <Errors>
        <Error>Authorization Required</Error>
    </Errors>
</Response>
                    
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Status>Failure</Status>
    <Code>403</Code>
    <Errors>
        <Error>Keyword: Keywords can not contain spaces or the following characters: ?, @, ., !, [, ], {, }, -, +, #, $, %, &amp;, &apos;, (, ), *, /, \, :, ;, &lt;, &gt;, =, ^, `, |, ~</Error>
    </Errors>
</Response>
                    

Successful Call & Response Samples

XML Example And Response:

curl "https://app.tellmycell.com/keywords/new?Keyword=honey&User=winnie&Password=the-pooh&format=xml"
                  		
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Status>Success</Status>
    <Code>200</Code>
    <Entry>
        <Keyword>honey</Keyword>
        <Available>1</Available>
    </Entry>
</Response>
                    

JSON Example And Response:

curl "https://app.tellmycell.com/keywords/new?Keyword=honey&User=winnie&Password=the-pooh&format=json"
						
{
    "Response":{
        "Status":"Success",
        "Code":200,
        "Entry":{
            "Keyword":"honey",
            "Available":true
        }
    }
}
                    




Rent Keyword

Rents a Keyword for use on TellMyCell's short code. You may rent a Keyword using a credit card you have stored in your TellMyCell account, or you may pass credit card details when you call the API.

URL

https://app.tellmycell.com/keywords?format=format

Format & Method

Format can be either XML or JSON
HTTP Method must be POST

Parameters (Stored Credit Card)

User
(Required) Your TellMyCell username
Password
(Required) Your TellMyCell password
Keyword
(Required) The keyword to rent
StoredCreditCard (Required) Last four digits of any card stored in your TellMyCell account.

Parameters (Non-Stored Credit Card)

User
(Required) Your TellMyCell username
Password
(Required) Your TellMyCell password
Keyword
(Required) The keyword to rent
FirstName (Required) The first name on the credit card
LastName (Required) The last name on the credit card
Street (Required) The billing street address
City (Required) The billing address city
State (Required) The billing address state/province
ZIP (Required) The billing address zip code
Country (Required) The billing address country
CreditCardTypeID (Required) Credit card type: Amex, Discover, MasterCard, Visa
Number (Required) Credit card number
SecurityCode (Required) Credit card security code (CV2)
ExpirationMonth (Required) Credit card's expiration month, two digits
ExpirationYear (Required) Credit card's expiration year, four digits

Return Values

ID
Unique ID referencing the keyword
Keyword
Keyword
EnableDoubleOptIn
Is double opt-in feature enabled for your keyword
ConfirmMessage Confirmation message
JoinMessage Auto-Reply
ForwardEmail Email address to forward incoming messages for your keyword
ForwardUrl URL to forward incoming messages for your keyword
ContactGroupIDs Groups to add customers who text in your keyword

HTTP Status Codes

201
Created - A new keyword was created
401
Unauthorized - Authentication credentials are missing or incorrect
403
Forbidden - Request is not valid. An accompanying error message explains why.
500
Internal Server Error - Something is broken. Please create a support ticket.

Sample Error Responses

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Status>Failure</Status>
    <Code>401</Code>
    <Errors>
        <Error>Authorization Required</Error>
    </Errors>
</Response>
                    
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Status>Failure</Status>
    <Code>403</Code>
    <Errors>
        <Error>Keyword: Keywords can not contain spaces or the following characters: ?, @, ., !, [, ], {, }, -, +, #, $, %, &amp;, &apos;, (, ), *, /, \, :, ;, &lt;, &gt;, =, ^, `, |, ~</Error>
        <Error>FirstName: Value is required and can't be empty</Error>
        <Error>LastName: Value is required and can't be empty</Error>
        <Error>Number: '123456' contains an invalid amount of digits</Error>
    </Errors>
</Response>
                    

Successful Call & Response Samples

XML Example
(Stored Credit Card)

curl -d 'User=winnie&Password=the-pooh&Keyword=honey&StoredCreditCard=1111' https://app.tellmycell.com/keywords?format=xml
						

XML Example
(Non-Stored Credit Card)

curl -d 'User=winnie&Password=the-pooh&Keyword=honey&FirstName=Winnie&LastName=The Pooh&Street=Hollow tree, under the name of Mr. Sanders&City=Hundred Acre Woods&State=New York&Zip=12345&Country=US&CreditCardTypeID=Visa&Number=4111111111111111&SecurityCode=123&ExpirationMonth=10&ExpirationYear=2017' https://app.tellmycell.com/keywords?format=xml
						
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Status>Success</Status>
    <Code>201</Code>
    <Entry>
        <ID>147258369</ID>
        <Keyword>honey</Keyword>
        <EnableDoubleOptIn>0</EnableDoubleOptIn>
        <ConfirmMessage>Reply Y to join</ConfirmMessage>
        <JoinMessage>Thank you for joining our list</JoinMessage>
        <ForwardEmail />
        <ForwardUrl />
        <ContactGroupIDs />
    </Entry>
</Response>
                    

JSON Example
(Stored Card):

curl -d 'User=winnie&Password=the-pooh&Keyword=honey&StoredCreditCard=1111' https://app.tellmycell.com/keywords?format=json
						

JSON Example
(Non-Stored Card):

curl -d 'User=winnie&Password=the-pooh&Keyword=honey&FirstName=Winnie&LastName=The Pooh&Street=Hollow tree, under the name of Mr. Sanders&City=Hundred Acre Woods&State=New York&Zip=12345&Country=US&CreditCardTypeID=Visa&Number=4111111111111111&SecurityCode=123&ExpirationMonth=10&ExpirationYear=2017' https://app.tellmycell.com/keywords?format=json
						
{
    "Response":{
        "Status":"Success",
        "Code":201,
        "Entry":{
            "ID":147258369,
            "Keyword":"honey",
            "EnableDoubleOptIn":false,
            "ConfirmMessage":"Reply Y to join",
            "JoinMessage":"Thank you for joining our list",
            "ForwardEmail":"",
            "ForwardUrl":"",
            "ContactGroupIDs":[]
        }
    }
}
                    




Setup A Keyword

Configures an active Keyword for use on TellMyCell's short code.

URL

https://app.tellmycell.com/keywords/keyword?format=format

Format & Method

Format can be either XML or JSON
HTTP Method must be POST

Parameters

User
(Required) Your TellMyCell username
Password
(Required) Your TellMyCell password
Keyword
(Required) Keyword
EnableDoubleOptIn
Is double opt-in feature enabled for your keyword
ConfirmMessage Confirmation message
JoinMessage Auto-Reply
ForwardEmail Email address to forward incoming messages for your keyword
ForwardUrl URL to forward incoming messages for your keyword
ContactGroupIDs Groups to add customers who text in your keyword

Return Values

ID
Unique ID referencing the keyword
Keyword
Keyword
EnableDoubleOptIn
Is double opt-in feature enabled for your keyword
ConfirmMessage Confirmation message
JoinMessage Auto-Reply
ForwardEmail Email address to forward incoming messages for your keyword
ForwardUrl URL to forward incoming messages for your keyword
ContactGroupIDs Groups to add customers who text in your keyword

HTTP Status Codes

200
Success - Your keyword was configured
401
Unauthorized - Authentication credentials are missing or incorrect
403
Forbidden - Request is not valid. An accompanying error message explains why.
500
Internal Server Error - Something is broken. Please create a support ticket.

Sample Error Responses

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Status>Failure</Status>
    <Code>401</Code>
    <Errors>
        <Error>Authorization Required</Error>
    </Errors>
</Response>
                    
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Status>Failure</Status>
    <Code>403</Code>
    <Errors>
        <Error>JoinMessage: Value is required and can't be empty</Error>
        <Error>ForwardEmail: 'honey@bear-alliance' is not a valid email address</Error>
        <Error>ForwardUrl: 'bear-alliance.co.uk/honey-donations' is not a valid URI</Error>
    </Errors>
</Response>
                    

Successful Call & Response Samples

XML Example And Response:

curl -d 'User=winnie&Password=the-pooh&EnableDoubleOptIn=1&ConfirmMessage=Reply Y to join our sweetest list&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.&ForwardEmail=honey@bear-alliance.co.uk &ForwardUrl=http://bear-alliance.co.uk/honey-donations/&ContactGroupIDs[]=honey lovers' https://app.tellmycell.com/keywords/honey?format=xml
		              
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Status>Success</Status>
    <Code>200</Code>
    <Entry>
        <ID>147258369</ID>
        <Keyword>honey</Keyword>
        <EnableDoubleOptIn>1</EnableDoubleOptIn>
        <ConfirmMessage>Reply Y to join our sweetest list</ConfirmMessage>
        <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.</JoinMessage>
        <ForwardEmail>honey@bear-alliance.co.uk</ForwardEmail>
        <ForwardUrl>http://bear-alliance.co.uk/honey-donations/</ForwardUrl>
        <ContactGroupIDs>
            <Group>honey lovers</Group>
        </ContactGroupIDs>
    </Entry>
</Response>
                    

JSON Example And Response:

curl -d 'User=winnie&Password=the-pooh&EnableDoubleOptIn=1&ConfirmMessage=Reply Y to join our sweetest list&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.&ForwardEmail=honey@bear-alliance.co.uk &ForwardUrl=http://bear-alliance.co.uk/honey-donations/&ContactGroupIDs[]=honey lovers' https://app.tellmycell.com/keywords/honey?format=json
						
{
    "Response":{
        "Status":"Success",
        "Code":200,
        "Entry":{
            "ID":147258369,
            "Keyword":"honey",
            "EnableDoubleOptIn":true,
            "ConfirmMessage":"Reply Y to join our sweetest list",
            "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.",
            "ForwardEmail":"honey@bear-alliance.co.uk",
            "ForwardUrl":"http://bear-alliance.co.uk/honey-donations/",
            "ContactGroupIDs":[
                "honey lovers" 
            ]
        }
    }
}
                    




Cancel A Keyword

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

URL

https://app.tellmycell.com/keywords/keyword?format=format

Format & Method

Format can be either XML or JSON
DELETE (or POST with the added parameter _method=DELETE)

Parameters

User
(Required) Your TellMyCell username
Password
(Required) Your TellMyCell password
Keyword
(Required) Keyword

Return Values

Note: There are no return values for this API!

HTTP Status Codes

204
No Content - Your keyword was deleted
401
Unauthorized - Authentication credentials are missing or incorrect
403
Forbidden - Request is not valid. An accompanying error message explains why.
500
Internal Server Error - Something is broken. Please create a support ticket.

Sample Error Responses

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Status>Failure</Status>
    <Code>401</Code>
    <Errors>
        <Error>Authorization Required</Error>
    </Errors>
</Response>
                    
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Status>Failure</Status>
    <Code>403</Code>
    <Errors>
        <Error>Sorry, nothing was found</Error>
    </Errors>
</Response>
                    

Successful Call & Response Samples

XML Example And Response:

curl -X DELETE "https://app.tellmycell.com/keywords/honey?format=xml&User=winnie&Password=the-pooh"
		              
HTTP/1.1 204 No Content
Date: Fri, 10 Jun 2011 17:03:19 GMT
Content-Length: 0
Connection: close
Content-Type: application/xml
                    

JSON Example And Response:

curl -X DELETE "https://app.tellmycell.com/keywords/honey?format=json&User=winnie&Password=the-pooh"
		              
HTTP/1.1 204 No Content
Date: Fri, 10 Jun 2011 17:05:14 GMT
Content-Length: 0
Connection: close
Content-Type: application/json
                    




Check Credit Balance

Checks credit balances on your account.

URL

https://app.tellmycell.com/billing/credits/get?format=format

Format & Method

Format can be either XML or JSON
HTTP Method must be GET

Parameters

User
(Required) Your TellMyCell username
Password
(Required) Your TellMyCell password

Return Values

PlanCredits
Number of plan credits
AnytimeCredits
Number of Anytime credits
TotalCredits Total number of credits

HTTP Status Codes

200
Success
401
Unauthorized - Authentication credentials are missing or incorrect
403
Forbidden - Request is not valid. An accompanying error message explains why.
500
Internal Server Error - Something is broken. Please create a support ticket.

Sample Error Responses

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Status>Failure</Status>
    <Code>401</Code>
    <Errors>
        <Error>Authorization Required</Error>
    </Errors>
</Response>
                    

Successful Call & Response Samples

XML Example And Response:

curl "https://app.tellmycell.com/billing/credits/get?User=winnie&Password=the-pooh&format=xml"
			          
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Status>Success</Status>
    <Code>200</Code>
    <Entry>
        <PlanCredits>15</PlanCredits>
        <AnytimeCredits>138</AnytimeCredits>
        <TotalCredits>153</TotalCredits>
    </Entry>
</Response>
                    

JSON Example And Response:

curl "https://app.tellmycell.com/billing/credits/get?User=winnie&Password=the-pooh&format=json"					
				      
{
    "Response":{
        "Status":"Success",
        "Code":200,
        "Entry":{
            "PlanCredits":15,
            "AnytimeCredits":138,
            "TotalCredits":153
        }
    }
}
                    




Buy Credits

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

URL

https://app.tellmycell.com/billing/credits?format=format

Format & Method

Format can be either XML or JSON
HTTP Method must be POST

Parameters (Stored Credit Card)

User
(Required) Your TellMyCell username
Password
(Required) Your TellMyCell password
NumberOfCredits
(Required) Number of credits to purchase
CouponCode
Coupon or Promotional Code
StoredCreditCard (Required) Last four digits of any card stored in your TellMyCell account.

Parameters (Non-Stored Credit Card)

User
(Required) Your TellMyCell username
Password
(Required) Your TellMyCell password
NumberOfCredits
(Required) Number of credits to purchase
CouponCode
Coupon or Promotional Code
FirstName (Required) The first name on the credit card
LastName (Required) The last name on the credit card
Street (Required) The billing street address
City (Required) The billing address city
State (Required) The billing address state/province
ZIP (Required) The billing address zip code
Country (Required) The billing address country
CreditCardTypeID (Required) Credit card type: Amex, Discover, MasterCard, Visa
Number (Required) Credit card number
SecurityCode (Required) Credit card security code (CV2)
ExpirationMonth (Required) Credit card's expiration month, two digits
ExpirationYear (Required) Credit card's expiration year, four digits

Return Values

BoughtCredits
Number of credits purchased
Amount
Total amount charged
Discount
Discount applied (if any)
AnytimeCredits Number of anytime credits in account after purchase
TotalCredits Total number of credits in account after purchase

HTTP Status Codes

201
Success - Credits were successfully purchased
401
Unauthorized - Authentication credentials are missing or incorrect
403
Forbidden - Request is not valid. An accompanying error message explains why.
500
Internal Server Error - Something is broken. Please create a support ticket.

Sample Error Responses

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Status>Failure</Status>
    <Code>401</Code>
    <Errors>
        <Error>Authorization Required</Error>
    </Errors>
</Response>
                    
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Status>Failure</Status>
    <Code>403</Code>
    <Errors>
        <Error>NumberOfCredits: '10,000' contains characters which are not digits</Error>
        <Error>FirstName: Value is required and can't be empty</Error>
        <Error>LastName: Value is required and can't be empty</Error>
        <Error>Number: '123456' contains an invalid amount of digits</Error>
    </Errors>
</Response>
                    

Successful Call & Response Samples

XML Example
(Stored Credit Card):

curl -d 'User=winnie&Password=the-pooh&NumberOfCredits=1000&StoredCreditCard=1111' https://app.tellmycell.com/billing/credits?format=xml
						

XML Example
(Non-Stored Credit Card):

curl -d 'User=winnie&Password=the-pooh&NumberOfCredits=1000&FirstName=Winnie&LastName=The Pooh&Street=Hollow tree, under the name of Mr. Sanders&City=Hundred Acre Woods&State=New York&Zip=12345&Country=US&CreditCardTypeID=Visa&Number=4111111111111111&SecurityCode=123&ExpirationMonth=10&ExpirationYear=2017' https://app.tellmycell.com/billing/credits?format=xml
						
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Status>Success</Status>
    <Code>201</Code>
    <Entry>
        <BoughtCredits>1000</BoughtCredits>
        <Amount>9.45</Amount>
        <Discount>0.55</Discount>
        <PlanCredits>10</PlanCredits>
        <AnytimeCredits>1200</AnytimeCredits>
        <TotalCredits>1210</TotalCredits>
    </Entry>
</Response>
                    

JSON Example
(Stored Credit Card):

curl -d 'User=winnie&Password=the-pooh&NumberOfCredits=1000&StoredCreditCard=1111' https://app.tellmycell.com/billing/credits?format=json
						

JSON Example
(Non-Stored Credit Card):

curl -d 'User=winnie&Password=the-pooh&NumberOfCredits=1000&FirstName=Winnie&LastName=The Pooh&Street=Hollow tree, under the name of Mr. Sanders&City=Hundred Acre Woods&State=New York&Zip=12345&Country=US&CreditCardTypeID=Visa&Number=4111111111111111&SecurityCode=123&ExpirationMonth=10&ExpirationYear=2017' https://app.tellmycell.com/billing/credits?format=json
						
{
    "Response":{
        "Status":"Success",
        "Code":201,
        "Entry":{
            "BoughtCredits":1000,
            "Amount":9.45,
            "Discount":0.55,
            "PlanCredits":10,
            "AnytimeCredits":1200,
            "TotalCredits":1210
        }
    }
}