Contact Sales
Developers

SMS API Reference

This documents SMSala's SMS API for developers integrating single or bulk messaging, delivery tracking, campaign reporting, and sender ID management. Every endpoint below includes its full parameter table and real request/response examples.

SMS API

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

GET + POSThttps://api2.smsala.com/SendSmsV2

Parameters

ParamTypeRequiredDescription
apiTokenStringYesAPI authentication token
messageTypeStringYesType of message (see Message Type Values below)
messageEncodingStringYesEncoding format (see Encoding Values below)
destinationAddressStringYesRecipient phone number
sourceAddressStringYesSender ID
messageTextStringYesMessage content
callBackUrlStringNoWebhook URL for delivery status
userReferenceIdStringNoUnique identifier for tracking

POST request body

send-sms.http
  1. POST https://api2.smsala.com/SendSmsV2
  2. Content-Type: application/json
  3. {
  4. "apiToken": "TrUk3bw8oZ80KqJ5",
  5. "messageType": "2",
  6. "messageEncoding": "1",
  7. "destinationAddress": "918744815388",
  8. "sourceAddress": "TSTALA",
  9. "messageText": "Your OTP is 978823",
  10. "callBackUrl": "https://webhook.site/50791112-aea5-406b-a5e5-8a2a6a4eb851",
  11. "userReferenceId": "nzwBePCGzXCC6G9rjD31t9kgUIAQ4GRg"
  12. }

GET sample request

send-sms-get.http
  1. GET https://api2.smsala.com/SendSmsV2
  2. ?apiToken=TrUk3bw8oZ80KqJ5
  3. &messageType=2
  4. &messageEncoding=1
  5. &destinationAddress=918744815388
  6. &sourceAddress=TSTALA
  7. &messageText=Your OTP is 978823
  8. &callBackUrl=https://webhook.site/50791112-aea5-406b-a5e5-8a2a6a4eb851
  9. &userReferenceId=nzwBePCGzXCC6G9rjD31t9kgUIAQ4GRg

Response example

response.json
  1. [
  2. {
  3. "MessageId": 25,
  4. "OperationCode": 0,
  5. "Status": "Success",
  6. "DlrStatus": null,
  7. "UserReferenceId": "nzwBePCGzXCC6G9rjD31t9kgUIAQ4GRg",
  8. "DestinationAddress": "918744815388",
  9. "Remarks": "Message Submitted",
  10. "CallBackUrl": "https://webhook.site/50791112-aea5-406b-a5e5-8a2a6a4eb851"
  11. }
  12. ]

Callback response (sent to your webhook once delivery status is known — a separate event from the response above, not the initial API reply)

callback.json
  1. {
  2. "messageId": 22,
  3. "operationCode": 0,
  4. "status": "Success",
  5. "dlrStatus": "Delivered",
  6. "userReferenceId": "nzwBePCGzXCC6G9rjD31t9kgUIAQ4GRg",
  7. "destinationAddress": 918744815388,
  8. "remarks": "Dlr Status is : Delivered",
  9. "callBackUrl": "https://webhook.site/50791112-aea5-406b-a5e5-8a2a6a4eb851"
  10. }

Sending SMS to Multiple Recipients

GET + POSThttps://api2.smsala.com/SendSmsV2

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)

send-sms-bulk-get.http
  1. GET https://api2.smsala.com/SendSmsV2?...&destinationAddress=918744815388,917006129382

POST request body (array, one object per recipient)

send-sms-bulk.http
  1. POST https://api2.smsala.com/SendSmsV2
  2. Content-Type: application/json
  3. [
  4. {
  5. "apiToken": "TrUk3bw8oZ80KqJ5",
  6. "messageType": "2",
  7. "messageEncoding": "1",
  8. "destinationAddress": "918744815388",
  9. "sourceAddress": "TSTALA",
  10. "messageText": "Your OTP is 978823",
  11. "CallBackUrl": "https://webhook.site/50791112-aea5-406b-a5e5-8a2a6a4eb851"
  12. },
  13. {
  14. "apiToken": "TrUk3bw8oZ80KqJ5",
  15. "messageType": "2",
  16. "messageEncoding": "1",
  17. "destinationAddress": "917006129382",
  18. "sourceAddress": "TSTALA",
  19. "messageText": "Your OTP is 978823",
  20. "CallBackUrl": "https://webhook.site/50791112-aea5-406b-a5e5-8a2a6a4eb851"
  21. }
  22. ]

Response example (one object per recipient, same shape as the single-send response)

response.json
  1. [
  2. {
  3. "MessageId": 25,
  4. "OperationCode": 0,
  5. "Status": "Success",
  6. "DlrStatus": null,
  7. "UserReferenceId": "nzwBePCGzXCC6G9rjD31t9kgUIAQ4GRg",
  8. "DestinationAddress": "918744815388",
  9. "Remarks": "Message Submitted",
  10. "CallBackUrl": "https://webhook.site/50791112-aea5-406b-a5e5-8a2a6a4eb851"
  11. },
  12. {
  13. "MessageId": 26,
  14. "OperationCode": 0,
  15. "Status": "Success",
  16. "DlrStatus": null,
  17. "UserReferenceId": "nzwBePCGzXCC6G9rjD31t9kgUIAQ4GRg",
  18. "DestinationAddress": "917006129382",
  19. "Remarks": "Message Submitted",
  20. "CallBackUrl": "https://webhook.site/50791112-aea5-406b-a5e5-8a2a6a4eb851"
  21. }
  22. ]

Fetch Delivery Report (DLR) Details

GET + POSThttps://api2.smsala.com/Dlr/GetDetails

Parameters

ParamTypeRequiredDescription
apiTokenStringRequiredAPI authentication token
messageIdintRequiredMessage ID to fetch the delivery report for
userDefinedIdStringOptionalUser-defined tracking identifier

POST request body

get-dlr-details.http
  1. POST https://api2.smsala.com/Dlr/GetDetails
  2. Content-Type: application/json
  3. {
  4. "apiToken": "TrUkdfgjn80KqJ5",
  5. "messageId": 3196185,
  6. "userDefinedId": "String"
  7. }

GET sample request

get-dlr-details-get.http
  1. GET https://api2.smsala.com/Dlr/GetDetails?apiToken=TrUkdfgjn80KqJ5&messageId=3196185

Response example

response.json
  1. {
  2. "IsSuccess": true,
  3. "ErrorCode": 0,
  4. "ErrorDescription": "OK",
  5. "ReturnData": [
  6. {
  7. "MessageId": 3196185,
  8. "DestinationAddress": "917006123394",
  9. "TextReceived": "Hello",
  10. "MessageType": "Transactional",
  11. "MessageLength": 5,
  12. "MessageParts": 1,
  13. "CustomerCost": 0.17,
  14. "DlrStatus": "Delivered",
  15. "ErrorCode": 1,
  16. "ErrorDescription": "No Error",
  17. "SentDateTime": "2025-02-24T06:22:04",
  18. "Uid": null,
  19. "SmsId": "db15035c-da41-4f89-aa39-9b89f61d958a"
  20. }
  21. ]
  22. }

Retrieve Campaign Details

GET + POSThttps://api2.smsala.com/Dlr/GetCampaignDetail

Parameters

ParamTypeRequiredDescription
apiTokenStringRequiredAPI authentication token
campaignIdintRequiredCampaign ID to fetch details for
dlrStatusStringOptionalFilter by delivery status — see the flag below
startDateDateTimeOptionalStart 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

get-campaign-detail.http
  1. POST https://api2.smsala.com/Dlr/GetCampaignDetail
  2. Content-Type: application/json
  3. {
  4. "apiToken": "TrUk3bw8oZ80KqJ5",
  5. "campaignId": 16139,
  6. "dlrStatus": "NULL",
  7. "startDate": "2025-02-24T09:00:00"
  8. }

GET sample request

get-campaign-detail-get.http
  1. 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)

response.json
  1. {
  2. "IsSuccess": true,
  3. "ErrorCode": 0,
  4. "ErrorDescription": "OK",
  5. "ReturnData": [
  6. {
  7. "Id": 16139,
  8. "Name": "username",
  9. "SubmissionDate": "2025-02-24T09:00:00",
  10. "TotalSms": 3,
  11. "DetailId": 3196185,
  12. "DestinationAddress": "917006123394",
  13. "DlrStatus": "Delivered"
  14. }
  15. ]
  16. }

Check Approved Senders List

GET + POSThttps://api2.smsala.com/sender/List

Parameters

ParamTypeRequiredDescription
apiTokenStringRequiredAPI authentication token

POST request body

sender-list.http
  1. POST https://api2.smsala.com/sender/List
  2. Content-Type: application/json
  3. { "apiToken": "TrUk3fghjqJ5" }

GET sample request

sender-list-get.http
  1. GET https://api2.smsala.com/sender/List?apiToken=TrUk3fghjqJ5

Response example (RequestedBy anonymized)

response.json
  1. {
  2. "IsSuccess": true,
  3. "ErrorCode": 0,
  4. "ErrorDescription": "OK",
  5. "ReturnData": [
  6. {
  7. "CampaignSenderId": 271,
  8. "SenderId": "INFO",
  9. "CountryName": "India",
  10. "MessageTypeId": 2,
  11. "MessageTypeName": "Transactional",
  12. "Details": "Request to whitelist my sender on an urgent basis",
  13. "StatusName": "Approved",
  14. "RequestedBy": "username",
  15. "RequestedDateTime": "2025-02-24T01:27:47"
  16. }
  17. ]
  18. }

Reference Values

Message Type Values

ValueType
1Promotional
2Transactional
3OTP

Delivery Status Codes (DLR)

CodeStatus
0None
1Enroute
2Delivered
3Expired
4Deleted
5Undeliverable
6Accepted
7Unknown
8Rejected

Encoding Values

ValueType
0Default
1ASCII
2Octet
3Latin1
4Octet Unspecified
6Cyrillic
7Latin Hebrew
8UCS2

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