Authentication
Every request requires an apiToken. Depending on the endpoint, it's passed either as a query-string parameter (GET) or as a field in the JSON request body (POST) — each endpoint below shows both where applicable.
Send SMS Via API
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
| apiToken | String | Yes | API authentication token |
| messageType | String | Yes | Type of message (see Message Type Values below) |
| messageEncoding | String | Yes | Encoding format (see Encoding Values below) |
| destinationAddress | String | Yes | Recipient phone number |
| sourceAddress | String | Yes | Sender ID |
| messageText | String | Yes | Message content |
| callBackUrl | String | No | Webhook URL for delivery status |
| userReferenceId | String | No | Unique identifier for tracking |
POST request body
- POST https://api2.smsala.com/SendSmsV2
- Content-Type: application/json
- {
- "apiToken": "TrUk3bw8oZ80KqJ5",
- "messageType": "2",
- "messageEncoding": "1",
- "destinationAddress": "918744815388",
- "sourceAddress": "TSTALA",
- "messageText": "Your OTP is 978823",
- "callBackUrl": "https://webhook.site/50791112-aea5-406b-a5e5-8a2a6a4eb851",
- "userReferenceId": "nzwBePCGzXCC6G9rjD31t9kgUIAQ4GRg"
- }
GET sample request
- GET https://api2.smsala.com/SendSmsV2
- ?apiToken=TrUk3bw8oZ80KqJ5
- &messageType=2
- &messageEncoding=1
- &destinationAddress=918744815388
- &sourceAddress=TSTALA
- &messageText=Your OTP is 978823
- &callBackUrl=https://webhook.site/50791112-aea5-406b-a5e5-8a2a6a4eb851
- &userReferenceId=nzwBePCGzXCC6G9rjD31t9kgUIAQ4GRg
Response example
- [
- {
- "MessageId": 25,
- "OperationCode": 0,
- "Status": "Success",
- "DlrStatus": null,
- "UserReferenceId": "nzwBePCGzXCC6G9rjD31t9kgUIAQ4GRg",
- "DestinationAddress": "918744815388",
- "Remarks": "Message Submitted",
- "CallBackUrl": "https://webhook.site/50791112-aea5-406b-a5e5-8a2a6a4eb851"
- }
- ]
Callback response (sent to your webhook once delivery status is known — a separate event from the response above, not the initial API reply)
- {
- "messageId": 22,
- "operationCode": 0,
- "status": "Success",
- "dlrStatus": "Delivered",
- "userReferenceId": "nzwBePCGzXCC6G9rjD31t9kgUIAQ4GRg",
- "destinationAddress": 918744815388,
- "remarks": "Dlr Status is : Delivered",
- "callBackUrl": "https://webhook.site/50791112-aea5-406b-a5e5-8a2a6a4eb851"
- }
Sending SMS to Multiple Recipients
Same endpoint as Send SMS Via API, same parameters — just used differently for multiple recipients. GET: comma-separate numbers in destinationAddress. POST: send an array of JSON objects, one per recipient.
GET sample request (comma-separated numbers)
- GET https://api2.smsala.com/SendSmsV2?...&destinationAddress=918744815388,917006129382
POST request body (array, one object per recipient)
- POST https://api2.smsala.com/SendSmsV2
- Content-Type: application/json
- [
- {
- "apiToken": "TrUk3bw8oZ80KqJ5",
- "messageType": "2",
- "messageEncoding": "1",
- "destinationAddress": "918744815388",
- "sourceAddress": "TSTALA",
- "messageText": "Your OTP is 978823",
- "CallBackUrl": "https://webhook.site/50791112-aea5-406b-a5e5-8a2a6a4eb851"
- },
- {
- "apiToken": "TrUk3bw8oZ80KqJ5",
- "messageType": "2",
- "messageEncoding": "1",
- "destinationAddress": "917006129382",
- "sourceAddress": "TSTALA",
- "messageText": "Your OTP is 978823",
- "CallBackUrl": "https://webhook.site/50791112-aea5-406b-a5e5-8a2a6a4eb851"
- }
- ]
Response example (one object per recipient, same shape as the single-send response)
- [
- {
- "MessageId": 25,
- "OperationCode": 0,
- "Status": "Success",
- "DlrStatus": null,
- "UserReferenceId": "nzwBePCGzXCC6G9rjD31t9kgUIAQ4GRg",
- "DestinationAddress": "918744815388",
- "Remarks": "Message Submitted",
- "CallBackUrl": "https://webhook.site/50791112-aea5-406b-a5e5-8a2a6a4eb851"
- },
- {
- "MessageId": 26,
- "OperationCode": 0,
- "Status": "Success",
- "DlrStatus": null,
- "UserReferenceId": "nzwBePCGzXCC6G9rjD31t9kgUIAQ4GRg",
- "DestinationAddress": "917006129382",
- "Remarks": "Message Submitted",
- "CallBackUrl": "https://webhook.site/50791112-aea5-406b-a5e5-8a2a6a4eb851"
- }
- ]
Fetch Delivery Report (DLR) Details
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
| apiToken | String | Required | API authentication token |
| messageId | int | Required | Message ID to fetch the delivery report for |
| userDefinedId | String | Optional | User-defined tracking identifier |
POST request body
- POST https://api2.smsala.com/Dlr/GetDetails
- Content-Type: application/json
- {
- "apiToken": "TrUkdfgjn80KqJ5",
- "messageId": 3196185,
- "userDefinedId": "String"
- }
GET sample request
- GET https://api2.smsala.com/Dlr/GetDetails?apiToken=TrUkdfgjn80KqJ5&messageId=3196185
Response example
- {
- "IsSuccess": true,
- "ErrorCode": 0,
- "ErrorDescription": "OK",
- "ReturnData": [
- {
- "MessageId": 3196185,
- "DestinationAddress": "917006123394",
- "TextReceived": "Hello",
- "MessageType": "Transactional",
- "MessageLength": 5,
- "MessageParts": 1,
- "CustomerCost": 0.17,
- "DlrStatus": "Delivered",
- "ErrorCode": 1,
- "ErrorDescription": "No Error",
- "SentDateTime": "2025-02-24T06:22:04",
- "Uid": null,
- "SmsId": "db15035c-da41-4f89-aa39-9b89f61d958a"
- }
- ]
- }
Retrieve Campaign Details
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
| apiToken | String | Required | API authentication token |
| campaignId | int | Required | Campaign ID to fetch details for |
| dlrStatus | String | Optional | Filter by delivery status — see the flag below |
| startDate | DateTime | Optional | Start date for the report |
The source doc's POST example shows dlrStatus as the literal string "NULL" (not an actual null value) — shown as-is rather than silently corrected, since it's unclear whether that's a documentation artifact or an accepted literal string value. Confirm with the backend team before relying on it. Separately: the response is described only by field name (Id, Name, Submission Date, TotalSms, Detail ID, Destination Address, DLR Status), not a literal JSON sample — the code above uses this API's consistent PascalCase-no-spaces key style (confirmed by every other endpoint's real response, e.g. MessageId, DestinationAddress) for the fields whose exact casing wasn't given verbatim.
POST request body
- POST https://api2.smsala.com/Dlr/GetCampaignDetail
- Content-Type: application/json
- {
- "apiToken": "TrUk3bw8oZ80KqJ5",
- "campaignId": 16139,
- "dlrStatus": "NULL",
- "startDate": "2025-02-24T09:00:00"
- }
GET sample request
- GET https://api2.smsala.com/Dlr/GetCampaignDetail?apiToken=TrUk3bw8oZ80KqJ5&campaignId=16139&startDate=2025-02-24T09:00:00
Response example (Name anonymized; exact key casing beyond Id/TotalSms is inferred from this API's PascalCase convention, not verbatim from the source doc — see the flag below)
- {
- "IsSuccess": true,
- "ErrorCode": 0,
- "ErrorDescription": "OK",
- "ReturnData": [
- {
- "Id": 16139,
- "Name": "username",
- "SubmissionDate": "2025-02-24T09:00:00",
- "TotalSms": 3,
- "DetailId": 3196185,
- "DestinationAddress": "917006123394",
- "DlrStatus": "Delivered"
- }
- ]
- }
Check Approved Senders List
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
| apiToken | String | Required | API authentication token |
POST request body
- POST https://api2.smsala.com/sender/List
- Content-Type: application/json
- { "apiToken": "TrUk3fghjqJ5" }
GET sample request
- GET https://api2.smsala.com/sender/List?apiToken=TrUk3fghjqJ5
Response example (RequestedBy anonymized)
- {
- "IsSuccess": true,
- "ErrorCode": 0,
- "ErrorDescription": "OK",
- "ReturnData": [
- {
- "CampaignSenderId": 271,
- "SenderId": "INFO",
- "CountryName": "India",
- "MessageTypeId": 2,
- "MessageTypeName": "Transactional",
- "Details": "Request to whitelist my sender on an urgent basis",
- "StatusName": "Approved",
- "RequestedBy": "username",
- "RequestedDateTime": "2025-02-24T01:27:47"
- }
- ]
- }
Reference Values
Message Type Values
| Value | Type |
|---|---|
| 1 | Promotional |
| 2 | Transactional |
| 3 | OTP |
Delivery Status Codes (DLR)
| Code | Status |
|---|---|
| 0 | None |
| 1 | Enroute |
| 2 | Delivered |
| 3 | Expired |
| 4 | Deleted |
| 5 | Undeliverable |
| 6 | Accepted |
| 7 | Unknown |
| 8 | Rejected |
Encoding Values
| Value | Type |
|---|---|
| 0 | Default |
| 1 | ASCII |
| 2 | Octet |
| 3 | Latin1 |
| 4 | Octet Unspecified |
| 6 | Cyrillic |
| 7 | Latin Hebrew |
| 8 | UCS2 |
Value 5 is skipped in the source doc — carried through as-is rather than inventing a missing entry.
Support
For assistance, reach out to support@smsala.com

