API authentication required
Need API Access?

Please use ‘Create Account’ to quickly register and start exploring our APIs

POST

https://<your_api_key>:<your_api_token><subdomain>/v1/Accounts/<your_sid>/Sms/send

This API will send an SMS to the specified To number. To send an SMS through our API, you will need to make a HTTP POST request

Parameter
Name
Value
Description
* From
formData

Specify one of your ExoPhone or Sender ID (header) linked to it.

ExoPhone: From = ‘080XXXXXX’
Transactional Sender ID: From = ‘EXOTEL’ (If linked to your ExoPhone)
Promotional Numeric Sender ID: From = ‘600XXX’ (If linked to your ExoPhone)

* To
formData

Mobile number to which SMS has to be sent. Preferably in E.164 format. If not set, our system will try to match it with a country and route the SMS

* Body
formData

Content of your SMS; Max Length of the body cannot exceed 2000 characters
To avoid SMS failure, make sure this exactly matches with SMS template added on Exotel Dashboard and is registered with operator DLT portal in case of India.

* EncodingType
path

Message type of SMS; plain or unicode

* Priority
path

Priority of the SMS; normal or high. Priority=high parameter should only be used for OTP SMSes (Bank or Delivery). Using it for any other SMS may impact your delivery.

* StatusCallback
formData

Once SMS reaches terminal state (sent/failed/failed_dnd), Exotel will do a POST callback to your end point if the URL is set as a parameter in the API. Content-type for the POST callback is application/x-www-form-urlencoded

Below are the parameters:

SmsSid – The Sid (unique id) of the SMS that you got in response to your request

To – Mobile number to which SMS was sent

Status – One of: queued, sending, submitted, sent, failed_dnd, failed

SmsUnits – The number of  SMS units being sent

DetailedStatus – Human readable word that explains what happened to the message 

DetailedStatusCode – Exotel’s Detailed Status code corresponding to the DetailedStatus 

DateSent – Time in format YYYY-MM-DD HH:mm:ss; The time when the SMS was delivered to the recipient.

CustomField – The custom field that was set in the POST request. (Will be returned only if it was set)

 

 
* DltEntityId
formData

Applicable only for SMS sent by Indian businesses to Indian destination numbers.

Your Entity Id as registered on DLT (Distributed Ledger Technology) portal of operators in India. This is mandatory to be passed in API or configured on Dashboard for SMSes towards Indian destination  (Learn More about DLT)

* DltTemplateId
formData

Applicable only for SMS sent by Indian businesses to Indian destination numbers.

Content Template Id against the SMS body registered with DLT (Distributed Ledger Technology) portal of operators in India. (Learn More about DLT)

* SmsType
formData

This optional parameter can be used to skip template addition on Exotel Dashboard and configure SMS type based on the template registered on DLT in India. 

Possible values-

transactional (OTP or Service Implicit content)

transactional_opt_in (Service Explicit content)

promotional (Promotional content with numeric header)

If not set or incorrectly passed, Exotel will look up if content matches Templates added on Exotel for fetching SMS Type and DLT details.

* CustomField
formData

Set a Custom Field relevant to your use case while sending an SMS. E.g Order ID, Payment ID, Login Attempt etc

Response Content Type

GET

https://<your_api_key>:<your_api_token><subdomain>/v1/Accounts/<your_sid>/SMS/Messages/<SmsSid>

To get the details of a SMS (including Status, Direction, etc.), you will need to make a HTTP GET request

Parameter
Name
Value
Description
* SmsSid
path

SmsSid is the Sid of the SMS.

Response Content Type

POST

https://<your_api_key>:<your_api_token><subdomain>/v1/Accounts/<your_sid>/Sms/send

Parameter
Name
Value
Description
* From
formData
  • Specify one of your ExoPhone

  • For transactional SMSes, the SenderID (When you buy an ExoPhone, you will be asked to enter a 6-letter sender ID from which your SMSes will be sent. For Eg: LM-EXOTEL or LM-WEBDEV etc.) will be the one that corresponds to the ExoPhone

  • For promotional SMSes, the SenderID will anyways be a generic numeric one (Ex: LM-123456)

* To
formData_Csv
  • Download Sample CSV
  • Array of Mobile numbers to which SMS has to be sent. Preferably in E.164 format. If not set, our system will try to match it with a country and route the SMS

    * Body
    formData

    Content of your SMS; Max Length of the body cannot exceed 2000 characters

    * EncodingType
    formData

    Message type of SMS; plain or unicode

    * Priority
    formData

    Priority of the SMS; normal or high. Priority=high parameter should only be used for OTP SMSes (Bank or Delivery). Using it for any other SMS may impact your delivery.

    * StatusCallback
    formData

    After every SMS reaches terminal state (sent/failed/failed_dnd), Exotel will do a POST callback to your end point if the URL is set as a parameter in the API. Content-type for the POST callback is application/x-www-form-urlencoded Below are the parameters:

    • SmsSid – The Sid (unique id) of the SMS that you got in response to your request

    • To – Mobile number to which SMS was sent

    • Status – One of: queued, sending, submitted, sent, failed_dnd, failed

    • DetailedStatus – Human readable word that explains what happened to the message

    • DetailedStatusCode – Exotel’s Detailed Status code corresponding to the DetailedStatus 

    • DateSent – Time in format YYYY-MM-DD HH:mm:ss; The time when the SMS was delivered to the recipientSmsUnits

    • SmsUnits – The number of  SMS units being sent

    • CustomField – The custom field that was set in the POST request. (Will be returned only if it was set)

    * DltEntityId
    formData

    Applicable only for SMS sent by Indian businesses to Indian destination numbers.

    Your Entity Id as registered on DLT (Distributed Ledger Technology) portal of operators in India. (Learn More about DLT)

    * DltTemplateId
    path

    Applicable only for SMS sent by Indian businesses to Indian destination numbers.

    Content Template Id against the SMS body registered with DLT (Distributed Ledger Technology) portal of operators in India. (Learn More about DLT)

    * SmsType
    formData

    This optional parameter can be used to skip template addition on Exotel Dashboard and configure SMS type based on the template registered on DLT in India. 

    Possible values-

    transactional (OTP or Service Implicit content)

    transactional_opt_in (Service Explicit content)

    promotional (Promotional content with numeric header)

    If not set or incorrectly passed, Exotel will look up if content matches Templates added on Exotel for fetching SMS Type and DLT details.

    * CustomField
    formData

    Set a Custom Field relevant to your use case while sending an SMS. E.g Order ID, Payment ID, Login Attempt etc

    Response Content Type

    POST

    https://<your_api_key>:<your_api_token><subdomain>/v1/Accounts/<your_sid>/Sms/bulksend

    Parameter
    Name
    Value
    Description
    * From
    formData
    • Specify one of your ExoPhone

    • For transactional SMSes, the SenderID (When you buy an ExoPhone, you will be asked to enter a 6-letter sender ID from which your SMSes will be sent. For Eg: LM-EXOTEL or LM-WEBDEV etc.) will be the one that corresponds to the ExoPhone

    • For promotional SMSes, the SenderID will anyways be a generic numeric one (Ex: LM-123456)

    • Will be used in cases where From is missing in Messages object

    • If not set, default approved SENDER ID as per account will be used

    * Messages
    formData_Csv
  • Download Sample CSV
  • Array of message objects, wherein each object contains parameters about individual SMS:

    • To (Mandatory): Mobile number to which SMS has to be sent. Preferably in E.164 format. If not set, our system will try to match it with a country and route the SMS

    • Body (Mandatory): Content of your SMS; Max Length of the body cannot exceed 2000 characters

    • From (Optional): ExoPhone or approved SENDER ID. If not provided, will use outer From

    • SmsType (Optional): This optional parameter can be used to skip template addition on Exotel Dashboard and configure SMS type based on the template registered on DLT in India. 

      Possible values-

      transactional (OTP or Service Implicit content)

      transactional_opt_in (Service Explicit content)

      promotional (Promotional content with numeric header)

      If not set or incorrectly passed, Exotel will look up if content matches Templates added on Exotel for fetching SMS Type and DLT details.

    * EncodingType
    formData

    Message type of SMS; plain or unicode

    * Priority
    formData

    Priority of the SMS; normal or high. Priority=high parameter should only be used for OTP SMSes (Bank or Delivery). Using it for any other SMS may impact your delivery.

    * StatusCallback
    formData

    After every SMS reaches terminal state (sent/failed/failed_dnd), Exotel will do a POST callback to your end point if the URL is set as a parameter in the API. Content-type for the POST callback is application/x-www-form-urlencoded Below are the parameters:

    • SmsSid – The Sid (unique id) of the SMS that you got in response to your request

    • To – Mobile number to which SMS was sent

    • Status – one of: queued, sending, submitted, sent, failed_dnd, failed

    • DetailedStatus – Human readable word that explains what happened to the message 

    • DetailedStatusCode – Exotel’s Detailed Status code corresponding to the DetailedStatus 

    • DateSent – The date on which the message was sent

    • SmsUnits – the number of  SMS units being sent

    • CustomField – The custom field that was set in the POST request. (Will be returned only if it was set)

    * DltEntityId
    formData

    Applicable only for SMS sent by Indian businesses to Indian destination numbers.

    Your Entity Id as registered on DLT (Distributed Ledger Technology) portal of operators in India. (Learn More about DLT)

    * CustomField
    formData

    Set a Custom Field relevant to your use case while sending an SMS. E.g Order ID, Payment ID, Login Attempt etc

    Response Content Type