Skip to content

Send OTP SMS

GET
/v2/otp/send

Sends an OTP SMS using query string parameters.

Note: This endpoint generates an OTP code and sends it via SMS. It is not an OTP verification route — use /v2/otp/verify for that.

Suitable for quick tests via browser or Postman.

msg
required
string
>= 3 characters <= 160 characters

GSM-encoded message (max 160 characters).

Note: If the [code] tag is omitted, it will be appended to the end of the message.

Example
Your otp code is [code], please don't share it with anyone.
phone
required
string
/^\d{10}$/

10-digit destination phone number (Mexico, without country code)

Example
8100001234
sender
string

Sender ID authorized by carrier (optional)

Example
AWESOMEINC
id
string

External reference ID for your own tracking (optional)

Example
external-id-relation

OTP SMS sent successfully

object
status
boolean
true
error
boolean
description
object
added_on
string format: date-time
2023-09-20 16:47:15
charge
number format: float
0.99
country
object
country
string
MEXICO
iso_code
string
MX
type
string
MOVIL
encoding
string
Allowed values: gsm unicode
gsm
id
integer
199999
job_id
string
199999
length
integer
12
message
string
Your otp code is 0000, please don't share it with anyone.
number
string
segments
integer
1
sender
string
AWESOMEINC
Example
{
"status": true,
"error": false,
"description": {
"added_on": "2023-09-20 16:47:15",
"charge": 0.99,
"country": {
"country": "MEXICO",
"iso_code": "MX",
"type": "MOVIL"
},
"encoding": "gsm",
"id": 199999,
"job_id": "199999",
"length": 12,
"message": "Your otp code is 0000, please don't share it with anyone.",
"number": "8100001234",
"segments": 1,
"sender": "AWESOMEINC"
}
}

Missing required parameters

Example
{
"status": false,
"error": true,
"description": "Missing params, please verify or contact to support"
}

Your key auth is not valid

Example
{
"status": false,
"error": true,
"description": "Your key auth is not valid, please check with your administrator to get the new key"
}

Your account doesn’t have credits available for sending

Example
{
"status": false,
"error": true,
"description": "Your account doesn't have credits available for this, please contact your administrator"
}

Country or carrier not reachable or assigned to your account

Example
{
"status": false,
"error": true,
"description": "Country or carrier not reachable or assigned to your account, please contact an administrator or support"
}

Failed to append to the queue, no need to resend

Example
{
"status": false,
"error": true,
"description": "Failed to append to the queue, no need to resend"
}

Your account doesn’t have multi-message sending enabled

Example
{
"status": false,
"error": true,
"description": "Your account doesn't have multi-message sending enabled, please contact your administrator"
}

Useful for guiding users to view code examples in different developer languages.

developer@developer:~#
curl -X GET "https://api.example.com/v2/otp/send?msg=Your+otp+code+is+%5Bcode%5D%2C+please+don%27t+share+it+with+anyone.&phone=8100001234&sender=AWESOMEINC&id=external-id-relation" \
-H "Accept: application/json" \
-H "Connection: keep-alive" \
-H "Authorization: Basic <base64-encoded-credentials>"