Business Communications. Solved.

Communicate with your customers and staff like never before via SMS, Email, Rich Media, Direct Mail and more.

From single to scale by web app or API.

Or if you're a developer read our API docs.

PepsiCo Logo
F45 Logo
SpecSavers Logo
GoStudent Logo
ClickSend Brand Header Image featuring man receiving SMS notifications, text marketing and other business communications.

Simple, Reliable Messaging Products for Every Business

At ClickSend we create products that are easy to use and highly integratable providing choice and context for your business communications. Our multi-channel products are used by some of the biggest brands and smartest developers across India and the world. Whether it’s transactional SMS messages at scale via API or multi-channel marketing campaigns using SMS, Email and Direct Mail via web app, ClickSend helps you get and stay closer to your customers and staff.

Trusted by Thousands of Businesses, People and Integration Partners

Send via Our Simple, Easy-to-Use Dashboard

Via a Simple,
Easy-to-Use Dashboard

One Dashboard,
Unlimited Possibilities

With ClickSend’s user friendly dashboard it’s easy to send SMS, MMS, Direct Mail campaigns and more in just a few clicks.

Visit Dashboard

Or Through Trusted APIs

Through Trusted APIs

World Class Documentation,
Loved by Developers

World Class APIs,
Loved by Developers

Use Incorporate SMS, MMS, Voice, Letters, Postcards and Chat in your software. Build powerful apps using the fastest and most reliable cloud communication APIs.

Read API Docs
								
									var api = require('./api.js');

									var smsApi = new api.SMSApi("USERNAME", "API_KEY");

									var smsMessage = new api.SmsMessage();

									smsMessage.source = "sdk";
									smsMessage.to = "+0451111111";
									smsMessage.body = "test message";

									var smsCollection = new api.SmsMessageCollection();

									smsCollection.messages = [smsMessage];

									smsApi.smsSendPost(smsCollection).then(function(response) {
										console.log(response.body);
									}).catch(function(err){
										console.error(err.body);
									});
								
							
								
									from __future__ import print_function
									import clicksend_client
									from clicksend_client import SmsMessage
									from clicksend_client.rest import ApiException


									# Configure HTTP basic authorization: BasicAuth
									configuration = clicksend_client.Configuration()
									configuration.username = 'USERNAME'
									configuration.password = 'API_KEY'

									# create an instance of the API class
									api_instance = clicksend_client.SMSApi(clicksend_client.ApiClient(configuration))

									# If you want to explicitly set from, add the key _from to the message.
									sms_message = SmsMessage(source="php",
									body="Jelly liquorice marshmallow candy carrot cake 4Eyffjs1vL.",
									to="+61411111111",
									schedule=1436874701)

									sms_messages = clicksend_client.SmsMessageCollection(messages=[sms_message])

									try:
									# Send sms message(s)
									api_response = api_instance.sms_send_post(sms_messages)
									print(api_response)
									except ApiException as e:
									print("Exception when calling SMSApi->sms_send_post: %s\n" % e)
								
							
								
									package ClickSend;

									import java.util.Arrays;
									import java.util.List;
									import ClickSend.Api.SmsApi;
									import ClickSend.Model.SmsMessage;
									import ClickSend.Model.SmsMessageCollection;

									public class send_sms {
										public static void main(String[] args) {
											ApiClient defaultClient = new ApiClient();
											defaultClient.setUsername("USERNAME");
											defaultClient.setPassword("API_KEY");
											SmsApi apiInstance = new SmsApi(defaultClient);

											SmsMessage smsMessage = new SmsMessage();
											smsMessage.body("body");
											smsMessage.to("to");
											smsMessage.source("source");

											List<SmsMessage> smsMessageList = Arrays.asList(smsMessage);
											// SmsMessageCollection | SmsMessageCollection model
											SmsMessageCollection smsMessages = new SmsMessageCollection();
											smsMessages.messages(smsMessageList);
											try {
												String result = apiInstance.smsSendPost(smsMessages);
												System.out.println(result);
											} catch (ApiException e) {
												System.err.println("Exception when calling SmsApi#smsSendPost");
												e.printStackTrace();
											}
										}
									}
								
							
								
									using IO.ClickSend.ClickSend.Api;
									using IO.ClickSend.Client;
									using IO.ClickSend.ClickSend.Model;

									var configuration = new Configuration()
									{
										Username = USERNAME, 
										Password = API_KEY  
									};
									var smsApi = new SMSApi(configuration);

									var listOfSms = new List<SmsMessage>
									{
										new SmsMessage(
										to: "+61411111111", 
										body: "test message", 
										source: "sdk"
										)
									};

									var smsCollection = new SmsMessageCollection(listOfSms);
									var response = smsApi.SmsSendPost(smsCollection);
								
							
								
									<?php
									require_once(__DIR__ . '/vendor/autoload.php');

									// Configure HTTP basic authorization: BasicAuth
									$config = ClickSend\Configuration::getDefaultConfiguration()
									->setUsername('USERNAME')
									->setPassword('API_KEY');

									$apiInstance = new ClickSend\Api\SMSApi(new GuzzleHttp\Client(),$config);
									$msg = new \ClickSend\Model\SmsMessage();
									$msg->setBody("test body"); 
									$msg->setTo("0451111111");
									$msg->setSource("sdk");

									// \ClickSend\Model\SmsMessageCollection | SmsMessageCollection model
									$sms_messages = new \ClickSend\Model\SmsMessageCollection(); 
									$sms_messages->setMessages([$msg]);

									try {
										$result = $apiInstance->smsSendPost($sms_messages);
										print_r($result);
									} catch (Exception $e) {
										echo 'Exception when calling SMSApi->smsSendPost: ', $e->getMessage(), PHP_EOL;
									}
								?>
							
								
									# load the gem
									require 'clicksend_client'
									require 'json'

									# setup authorization
									ClickSendClient.configure do |config|
									# Configure HTTP basic authorization: BasicAuth
									config.username = 'USERNAME'
									config.password = 'API_KEY'
									end

									api_instance = ClickSendClient::SMSApi.new

									# SmsMessageCollection | SmsMessageCollection model
									sms_messages = ClickSendClient::SmsMessageCollection.new

									sms_messages.messages = [
									ClickSendClient::SmsMessage.new(
									"to": "+61411111111",
									"source": "sdk",
									"body": "body"
									),
									ClickSendClient::SmsMessage.new(
									"to": "+61422222222",
									"source": "sdk",
									"body": "body"
									)
									]

									begin
									# Send sms message(s)
									result = api_instance.sms_send_post(sms_messages)
									p JSON.parse(result)
									rescue ClickSendClient::ApiError => e
									puts "Exception when calling SMSApi->sms_send_post: #{e.response_body}"
									end    
								
							
								
									import Alamofire

									if let authHeader = Request.authorizationHeader(user: "USERNAME", password: "PASSWORD") {
										ClickSendClientAPI.customHeaders = [authHeader.key : authHeader.value]
									}

									let message1 = SmsMessage(body: "Chocolate bar icing icing oat cake carrot cake jelly cotton MWEvciEPIr.", 
									to: "+0451111111", 
									source: "swift")

									let message2 = SmsMessage(body: "Chocolate bar icing icing oat cake carrot cake jelly cotton MWEvciEPIr.", 
									source: "swift", 
									listId: 1234)

									let smsCollection = SmsMessageCollection(messages: [message1, message2])
									SMSAPI.smsSendPost(smsMessages: smsCollection) { (dataString, error) in

									guard let dataString = dataString else {
										print(error!)
										return
									}

									if let data = dataString.data(using: String.Encoding.utf8) {
										do {
											if let dictonary = try (JSONSerialization.jsonObject(with: data, options: []) as? NSDictionary) {
												print(dictonary)
											} else {
												print("bad json")
											}
										} catch let error as NSError {
											print(error)
										}
									}
								}
							
						

And with Hundreds of Integration Partners

Or via Hundreds of Integration Partners

Logos of 11 ClickSend Integration Partners including Magento, Salesforce, Slack, Marketo, Zoho, Zapier, Shopify, Automate.io, Google, Wordpress and Outlook.

Automate Your Business
Communications

ClickSend integrates with all the business apps you know and love plus a whole lot more. It’s easy to automate repetitive tasks and even build a business communications stack with no code.

With our own ClickSend marketplace, you can integrate with hundreds of the world’s most popular business apps.

Visit Marketplace
Message Icon

We Power Billions Of Messages Across India and the World.

Why Businesses Love ClickSend

Customer support headset symbol on blue background

Global 24/7 Support

Our chat is staffed by real humans 24 hours a day, 365 days a year and always will be.

Padlock symbol on blue background

Security and Reliability

The ClickSend platform is built on Enterprise-level security and provides a 100% Uptime SLA guarantee.

Moving rocket symbol on blue background

Lightning Fast Delivery

ClickSend lives and breathes high performance direct routes. Your messages get delivered on time.

Get Sending with ClickSend

Join over 90,000 customers sending billions of messages across India and the world.

Get Started For Free
Trustpilot Logo featuring 4.7 stars G2 Logo Capterra Logo
Privacy & Legal© 2023 ClickSend