The HTTP API enables you to send SMS quickly. To send an SMS, simply call the following URL with the relevant parameters appended to the URL, as shown below:
NB: Please remove the curly bracket in the URL when testing
Endpoint
GEThttps://sms.textcus.com/api/v2/send
Headers
Authorization: Bearer API_KEY
Request Parameters
Below is a list of parameters when issuing an HTTP Request.
Parameters
Type
Description
type
Required
It indicates the type of message.
Values for "type" include:
0 : Plain text (GSM 3.38 Character encoding)
1 : Flash (GSM 3.38 Character encoding)
2 : Unicode
3 : Reserved
5 : Plain text (ISO-8859-1 Character encoding)
6 : Unicode Flash
7 : Flash (ISO-8859-1 Character encoding)
source
Required
The source address that should appear in the message.
- Max Length of 18 if numeric.
- Max Length of 11 if alphanumeric.
To prefix the plus sign (+) to the sender’s address when the message is displayed on their mobile phone, please prefix the plus sign to your sender’s address while submitting the message.
Note: You need to URL encode the plus sign. The SMSC may enforce additional restrictions on this field.
destination
Required
Recipient phone number
Must be a valid MSIDSN
Must be in the international telephone number format (may or may not include a plus [+] sign) symbol. e.g. 233241234567 or +233241234567
Multiple mobile numbers need to be separated by a comma (,) (the comma should be URL encoded).
dlr
Required
Indicates whether the client wants a delivery report for this message.
The values for "dlr" include:
0 : No delivery report required
1 : Delivery report required
message
Required
The message to be sent. Must be URL encoded.
time
Optional
To schedule the message to be sent sometime or date in the future
Format: YYYY-MM-DD HH:MM:SS or UNIX TIMESTAMP
The Scheduled time must be at least 10 minutes ahead of the current time in UTC
constaxios=require('axios');constrecipient='RECIPIENT_NUMBER'; // Replace with the recipient's phone numberconstsender='SENDER_NAME'; // Replace with the sender nameconstmessage='YOUR_MESSAGE'; // Replace with the message to be sentconstdata= { destination: recipient, source: sender, dlr:0, type:0, message: message};consturl='https://sms.textcus.com/api/v2/send';axios({ method:'post', url: url, data: data, headers: {'Authorization':'Bearer API_KEY',// Replace 'API_KEY' with your actual API Key'Content-Type':'application/json' }, timeout:30000// Set timeout to 30 seconds}).then(response => {console.log(response.data); // Handle successful response }).catch(error => {console.error('Error:',error.response ?error.response.data :error.message); // Handle errors });
import requestsimport json# Replace with your actual valuesrecipient ='RECIPIENT_NUMBER'sender ='SENDER_NAME'message ='YOUR_MESSAGE'url ='https://sms.textcus.com/api/v2/send'data ={'destination': recipient,'source': sender,'dlr':0,'type':0,'message': message}headers ={'Authorization':'Bearer API_KEY',# Replace 'API_KEY' with your actual API Key'Content-Type':'application/json'}try: response = requests.post(url, data=json.dumps(data), headers=headers, timeout=30)if response.status_code ==200:print(response.json())# Handle successful responseelse:print(f"Failed to send message. Status code: {response.status_code}")print(response.text)# Print the error message from the responseexcept requests.exceptions.RequestException as e:print(f"An error occurred: {e}")
import'dart:convert';import'package:http/http.dart'as http;voidmain() async {String recipient ='RECIPIENT_NUMBER'; // Replace with the recipient's phone numberString sender ='SENDER_NAME'; // Replace with the sender nameString message ='YOUR_MESSAGE'; // Replace with the message to be sentString url ='https://sms.textcus.com/api/v2/send';Map<String, dynamic> data = {'destination': recipient,'source': sender,'dlr':0,'type':0,'message': message };try {final response =await http.post(Uri.parse(url), headers: {'Authorization':'Bearer API_KEY', // Replace 'API_KEY' with your actual API Key'Content-Type':'application/json', }, body:jsonEncode(data), // Convert the data map to a JSON string );if (response.statusCode ==200) {print(response.body); // Handle successful response } else {print('Failed to send message. Status code: ${response.statusCode}');print(response.body); // Print the error message from the response } } catch (e) {print('Error: $e'); }}
importjava.net.URI;importjava.net.http.HttpClient;importjava.net.http.HttpRequest;importjava.net.http.HttpResponse;importjava.net.http.HttpHeaders;importjava.net.http.HttpRequest.BodyPublishers;importjava.net.http.HttpResponse.BodyHandlers;importjava.nio.charset.StandardCharsets;importjava.util.HashMap;importjava.util.Map;importcom.fasterxml.jackson.databind.ObjectMapper;publicclassSendSMS {publicstaticvoidmain(String[] args) {String recipient ="RECIPIENT_NUMBER"; // Replace with the recipient's phone numberString sender ="SENDER_NAME"; // Replace with the sender nameString message ="YOUR_MESSAGE"; // Replace with the message to be sentString url ="https://sms.textcus.com/api/v2/send";Map<String,Object> data =newHashMap<>();data.put("destination", recipient);data.put("source", sender);data.put("dlr",0);data.put("type",0);data.put("message", message);try {// Convert the data map to JSON string using Jackson ObjectMapperObjectMapper objectMapper =newObjectMapper();String requestBody =objectMapper.writeValueAsString(data);// Create an HttpClientHttpClient client =HttpClient.newHttpClient();// Build the HTTP requestHttpRequest request =HttpRequest.newBuilder().uri(URI.create(url)).header("Authorization","Bearer API_KEY") // Replace 'API_KEY' with your actual API Key.header("Content-Type","application/json").POST(BodyPublishers.ofString(requestBody,StandardCharsets.UTF_8)).build();// Send the request and get the responseHttpResponse<String> response =client.send(request,BodyHandlers.ofString());// Handle responseif (response.statusCode() ==200) {System.out.println("Response: "+response.body()); } else {System.out.println("Failed to send message. Status code: "+response.statusCode());System.out.println("Response: "+response.body()); } } catch (Exception e) {System.out.println("Error: "+e.getMessage()); } }}
Imports System.Net.Http
Imports System.Text
Imports Newtonsoft.Json
Module SendSMS
Sub Main()
Dim recipient As String = "RECIPIENT_NUMBER" ' Replace with the recipient's phone number
Dim sender As String = "SENDER_NAME" ' Replace with the sender name
Dim message As String = "YOUR_MESSAGE" ' Replace with the message to be sent
Dim url As String = "https://sms.textcus.com/api/v2/send"
' Prepare the data to be sent
Dim data As New Dictionary(Of String, Object) From {
{"destination", recipient},
{"source", sender},
{"dlr", 0},
{"type", 0},
{"message", message}
}
' Convert data to JSON string
Dim jsonData As String = JsonConvert.SerializeObject(data)
' Create HttpClient
Using client As New HttpClient()
client.DefaultRequestHeaders.Add("Authorization", "Bearer API_KEY") ' Replace 'API_KEY' with your actual API key
client.DefaultRequestHeaders.Add("Content-Type", "application/json")
' Create HttpContent from JSON data
Dim content As New StringContent(jsonData, Encoding.UTF8, "application/json")
Try
' Send the POST request
Dim response As HttpResponseMessage = client.PostAsync(url, content).Result
' Check the status code
If response.IsSuccessStatusCode Then
' Read the response content
Dim responseBody As String = response.Content.ReadAsStringAsync().Result
Console.WriteLine("Response: " & responseBody)
Else
Console.WriteLine("Failed to send message. Status code: " & response.StatusCode)
Console.WriteLine("Response: " & response.Content.ReadAsStringAsync().Result)
End If
Catch ex As Exception
Console.WriteLine("Error: " & ex.Message)
End Try
End Using
End Sub
End Module
Sample Response
{"status":200,"message":"Message sent successfully"}
{"status":401,"error":"Authentication invalid"}, {"status":401,"error":"Unauthorized: Invalid API Key"}