Integrate SMS capabilities into your applications. Send messages, manage OTPs, and track delivery status programmatically.
Base URL:
All API requests require authentication via an API Key. You can generate this key in your User Dashboard under "My Profile".
Requests can be made via GET or POST. The response is always JSON.
{
"status": "success",
"message": "Operation successful.",
"response": true,
"data": { ... }
}
Queue a standard text message to be sent via a specific device.
| Parameter | Required | Description |
|---|---|---|
api_key | Yes | Your 64-char API Key. |
action | Yes | Value: send_sms |
device_id | Yes* | Device ID or UID. (*One of device_id or device_uid required). |
phone_number | Yes | Recipient number (e.g. +8801700000000). |
message | Yes | Text content of the SMS. |
sim_slot | No | 1 or 2. Defaults to 1. |
curl -X POST https://isms.my.id/myAPI.php \
-d "api_key=YOUR_KEY" \
-d "action=send_sms" \
-d "device_uid=70d05483459a53d7" \
-d "phone_number=+8801712345678" \
-d "message=Hello World" \
-d "sim_slot=1"
{
"status": "success",
"message": "SMS queued successfully.",
"response": true,
"data": {
"message_id": 145,
"status": "pending",
"sim_slot": 1
}
}
Generates a numeric OTP, stores it securely, and queues an SMS. Use this for 2FA.
| Parameter | Required | Description |
|---|---|---|
action | Yes | Value: send_otp |
device_uid | Yes | Device Unique ID. |
phone_number | Yes | Recipient number. |
length | No | Length of OTP (default: 6). |
expiry | No | Validity in minutes (default: 5). |
message | No | Custom template. Use {otp} placeholder. |
$response = file_get_contents('https://isms.my.id/myAPI.php?' . http_build_query([
'api_key' => 'YOUR_KEY',
'action' => 'send_otp',
'device_uid' => 'DEVICE_ID',
'phone_number' => '+8801712345678',
'message' => 'Your login code is {otp}. Valid for 5 mins.',
'length' => 4
]));
Validates an OTP provided by the user. Once verified, the OTP cannot be used again.
| Parameter | Required | Description |
|---|---|---|
action | Yes | Value: verify_otp |
phone_number | Yes | The phone number being verified. |
otp_code | Yes | The code entered by the user. |
{
"status": "success",
"message": "OTP Verified Successfully.",
"response": true
}
{
"status": "error",
"message": "Invalid or Expired OTP.",
"response": false
}
Get the delivery status of a specific message using its ID.
GET https://isms.my.id/myAPI.php?action=check_status&api_key=KEY&message_id=145
{
"status": "success",
"message": "Status found.",
"response": true,
"data": {
"status": "sent",
"created_at": "2025-11-25 10:00:00",
"processed_at": "2025-11-25 10:00:05",
"phone_number": "+8801712345678"
}
}
Retrieve logs of Sent (Outgoing) or Received (Incoming) messages.
| Parameter | Description |
|---|---|
action | Value: get_history |
type | outgoing, incoming, or all (default). |
limit | Number of records (max 100). |
GET https://isms.my.id/myAPI.php?action=get_history&api_key=KEY&type=incoming&limit=5
Get a list of all connected devices and their current status (running/stopped).
GET https://isms.my.id/myAPI.php?action=device_status&api_key=KEY