Bulk SMS API and webhooks for your CRM
Send OTPs, alerts and campaigns from your CRM, app or website with one HTTP request. Get delivery reports, link clicks and replies back as webhooks, or connect over SMPP for high volume.
- REST API over HTTPS
- Delivery, click and reply webhooks
- SMPP for high volume
- Sample code for PHP, Java, C# and more

What is an SMS API?
An SMS API is an HTTP interface that lets software send text messages without a person using a web panel. A CRM, app or website sends a request with the mobile number, sender ID and message text, the provider delivers the SMS, and delivery reports, link clicks and replies can be sent back to the software as webhooks.
Updated
How does an SMS API connect to your CRM?
Your CRM sends the message; MsgClub reports back what happened, so every contact record shows the latest status.
How do you send an SMS with the API?
Call the sendGroupSms endpoint with your authentication key and message details. Separate several numbers with commas.
curl -G "https://msg.msgclub.net/rest/services/sendSMS/sendGroupSms" \
--data-urlencode "AUTH_KEY=YOUR_AUTH_KEY" \
--data-urlencode "message=Hi Priya, order 10482 has shipped. -Kavya Home Decor" \
--data-urlencode "senderId=KAVYAH" \
--data-urlencode "routeId=1" \
--data-urlencode "mobileNos=9999999999" \
--data-urlencode "smsContentType=english"<?php
$params = http_build_query([
'AUTH_KEY' => 'YOUR_AUTH_KEY',
'message' => 'Hi Priya, order 10482 has shipped. -Kavya Home Decor',
'senderId' => 'KAVYAH',
'routeId' => 1,
'mobileNos' => '9999999999',
'smsContentType' => 'english',
]);
$url = 'https://msg.msgclub.net/rest/services/sendSMS/sendGroupSms?' . $params;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch));
curl_close($ch);
echo ($response && $response->responseCode == 3001) ? 'Accepted' : 'Error';import requests
params = {
"AUTH_KEY": "YOUR_AUTH_KEY",
"message": "Hi Priya, order 10482 has shipped. -Kavya Home Decor",
"senderId": "KAVYAH",
"routeId": 1,
"mobileNos": "9999999999",
"smsContentType": "english",
}
r = requests.get("https://msg.msgclub.net/rest/services/sendSMS/sendGroupSms",
params=params, timeout=15)
data = r.json()
print("Accepted" if str(data.get("responseCode")) == "3001" else data)const params = new URLSearchParams({
AUTH_KEY: "YOUR_AUTH_KEY",
message: "Hi Priya, order 10482 has shipped. -Kavya Home Decor",
senderId: "KAVYAH",
routeId: "1",
mobileNos: "9999999999",
smsContentType: "english",
});
const res = await fetch(
"https://msg.msgclub.net/rest/services/sendSMS/sendGroupSms?" + params
);
const data = await res.json();
console.log(String(data.responseCode) === "3001" ? "Accepted" : data);Keep your AUTH_KEY on your server, never in a mobile app or browser code. The message must match an approved DLT template for the sender ID.
Which parameters does the SMS API take?
| Parameter | Required | Description |
|---|---|---|
AUTH_KEY | Yes | Your account's authentication key, from the MsgClub panel |
message | Yes | Message text, URL-encoded; must match an approved DLT template |
senderId | Yes | Your registered header, for example KAVYAH |
routeId | Yes | 1 for transactional and service, 2 for promotional, 3 for promotional with sender ID |
mobileNos | Yes, or groupId | One or more numbers, with or without country code, separated by commas |
groupId | Optional | Send to a contact group saved in your MsgClub phone book |
smsContentType | Yes | english for plain text, unicode for Hindi and regional scripts |
| Response code | Meaning |
|---|---|
3001 | Request accepted |
3007 | Invalid source (sender ID) |
3009 | Authentication failed |
3011 | Insufficient balance |
3014 | Missing mobile number |
3016 | Missing required parameter |
The full list of response codes is in the API documentation shared with API access.
Which webhooks does the SMS API send?
Set one URL on your server or CRM and receive an event for every status change.
message.sent: handed to the operatormessage.delivered: delivered to the phonemessage.failed: not delivered, with the reasonmessage.clicked: tracked short link openedmessage.received: a reply on your long code
Reply with HTTP 200 quickly and process the event in the background. Use your own reference to match the event to a CRM record.
POST https://your-crm.example.com/msgclub
{
"event": "message.delivered",
"channel": "sms",
"message_id": "msg_8f2c1a",
"to": "+919999999999",
"sender_id": "KAVYAH",
"status": "delivered",
"delivered_at": "2026-11-15T10:42:03+05:30",
"reference": "order-10482"
}{
"event": "message.clicked",
"channel": "sms",
"message_id": "msg_8f2c1a",
"to": "+919999999999",
"url": "https://kavyahomedecor.example/diwali",
"clicked_at": "2026-11-15T11:07:12+05:30",
"reference": "campaign-diwali"
}{
"event": "message.received",
"channel": "sms",
"from": "+919999999999",
"to": "LONG_CODE_NUMBER",
"text": "YES",
"received_at": "2026-11-15T10:53:12+05:30"
}Illustrative example. Exact endpoints and field names are in the API docs, shared when you get API access.
What other ways can you integrate SMS?
SMPP
A persistent bind with delivery receipts for high-volume senders, resellers and aggregators. Ask sales for connection details.
Plugins
Tally, BUSY, Marg, Focus ERP, Google Sheets, Zapier, WHMCS and Magento, plus chat tools like Userlike, Olark, LiveChat and Chatra.
Sample code
Ready examples in PHP, Java, C#, ASP.NET and VB.NET, alongside the cURL, Python and Node.js above.
SMS API key facts
- Protocol
- REST over HTTPS, plus SMPP
- Authentication
- Account AUTH_KEY
- Success code
- 3001 (request accepted)
- Webhooks
- Sent, delivered, failed, clicked, received
- Unicode
- Yes, with smsContentType=unicode
- Pricing
- Per SMS part; see pricing
Related: OTP SMS · transactional SMS · DLT registration guide · contact sales
How do you connect the MsgClub SMS API to your CRM?
- Get API accessSign up, complete DLT registration and copy your authentication key from the MsgClub panel.
- Add your header and templatesMake sure the sender ID and DLT template IDs you will use are added to your MsgClub account.
- Send a test requestCall the sendGroupSms endpoint with your key, sender ID, route, mobile number and message, and check for response code 3001.
- Set your webhook URLGive MsgClub a URL on your CRM or server to receive delivery, click and reply events.
- Map events to CRM fieldsUpdate the contact or order record when message.delivered, message.failed, message.clicked or message.received arrives.
Frequently asked questions
Is there a free SMS API for testing?
You can sign up for a free trial account to test the panel and the API before you buy credits. Test sends still need a DLT-registered header and template, because operators scrub every commercial SMS in India. Use your own number first and check the delivery report.
What does response code 3001 mean?
Response code 3001 means MsgClub accepted your request for processing. It does not mean the SMS has been delivered; the delivery status for each number follows in the delivery report and, if you set one up, by webhook. Other codes indicate errors such as invalid sender ID, insufficient balance or failed authentication.
Can I send Hindi or Unicode SMS through the API?
Yes. Set smsContentType to unicode and send the message text URL-encoded in UTF-8. Unicode SMS hold 70 characters per part instead of 160, so longer Hindi or regional-language messages are sent and charged as multiple parts.
How do I get delivery reports in my CRM?
Give MsgClub a webhook URL on your CRM or server. When a message is delivered, fails, is clicked or gets a reply, MsgClub sends an event to that URL with the number, status, time and your reference, and your CRM updates the matching record. You can also pull reports from the panel.
Does MsgClub support SMPP?
Yes. High-volume senders, resellers and aggregators can connect over SMPP for a persistent bind with delivery receipts. Contact sales with your expected volume and use case, and the team will share connection details after DLT and account checks.
Which CRMs can connect to the SMS API?
Any CRM that can call an HTTP API or receive a webhook can connect, including systems like Salesforce, Zoho CRM, HubSpot or LeadSquared through their workflow tools, custom code or Zapier. MsgClub also has plugins for Tally, BUSY, Marg, Focus ERP, Google Sheets, Zapier, WHMCS and Magento.
Related products
Use them together from the same MsgClub account, with one API and shared reports.
Start sending in minutes
Create a free account to test the panel and API, or talk to our team about volumes, DLT setup and CRM integration.