API Documentation
A complete guide to using the IPROG SMS API. Learn how to integrate SMS functionality into your applications.
API Endpoints
Explore all available endpoints for sending SMS and managing your account
POST
https://iprogsms.com/api/v1/sms_messages?api_token=1231asd1&message=Test+Message&phone_number=639109432834
Request Parameters
- api_token (string, required) - Your API TOKEN
- phone_number (string, required) - Recipient's phone number
- message (string, required) - Message content
- sms_provider (integer, optional) - SMS Provider (0, 1, or 2) | default: 0
Example Request
POST https://iprogsms.com/api/v1/sms_messages?api_token=1231asd1&message=Test+Message&phone_number=639109432834
Content-Type: application/json
{
"api_token": "1231asd1",
"phone_number": "09345678942",
"message": "Hello, this is a test message."
}
Response
{
"status": 200,
"message": "Your SMS message has been successfully added to the queue and will be processed shortly.",
"message_id": "iSms-XHYBk"
}
POST
https://iprogsms.com/api/v1/sms_messages/send_bulk?api_token=1231asd1&message=Test+Message&phone_number=639109432834%2C639109532543
Request Parameters
- api_token (string, required) - Your API TOKEN
- phone_number (string, required) - Recipient's phone numbers (comma-separated)
- message (string, required) - Message content
- sms_provider (integer, optional) - SMS Provider (0, 1, or 2) | default: 0
Example Request
POST https://iprogsms.com/api/v1/sms_messages/send_bulk?api_token=1231asd1&message=Test+Message&phone_number=639109432834%2C639109532543
Content-Type: application/json
{
"api_token": "1231asd1",
"phone_number": "09345678942,09345678923",
"message": "Hello, this is a test message."
}
Response
{
"status": 200,
"message": "Your bulk SMS messages have been successfully added to the queue and will be processed shortly.",
"message_ids": "iSms-rQZvhq,iSms-tZrk96"
}
GET
https://iprogsms.com/api/v1/sms_messages/status?api_token=1231asd1&message_id=iSms-XHYBk0
Request Parameters
- api_token (string, required) - Your API TOKEN
- message_id (string, required) - SMS message ID
Example Request
GET https://iprogsms.com/api/v1/sms_messages/status?api_token=1231asd1&message_id=iSms-XHYBk0
Content-Type: application/json
{
"api_token": "1231asd1",
"message_id": "iSms-XHYBk0"
}
Response
{
"status": 200,
"message_status": "pending"
}
GET
https://iprogsms.com/api/v1/account/sms_credits?api_token=1231asd1
Request Parameters
- api_token (string, required) - Your API TOKEN
Example Request
GET https://iprogsms.com/api/v1/account/sms_credits?api_token=1231asd1
Content-Type: application/json
{
"api_token": "1231asd1"
}
Response
{
"status": "success",
"message": "Account found.",
"data": {
"load_balance": 10
}
}
POST
https://iprogsms.com/api/v1/group-contacts/send_bulk?api_token=1231asd1&group_code=GRP-124&message=Test+Message
Request Parameters
- api_token (string, required) - Your API TOKEN
- group_code (string, required) - Group code from your groups list
- message (string, required) - Message content
Example Request
POST https://iprogsms.com/api/v1/group-contacts/send_bulk?api_token=1231asd1&group_code=GRP-124&message=Test+Message
Content-Type: application/json
{
"api_token": "1231asd1",
"group_code": "GRP-124",
"message": "Test Message"
}
Response
{
"status": 200,
"message": "Your bulk SMS messages for group code GRP-124 have been queued and will be processed shortly."
}
Create Message Reminder
POST
https://iprogsms.com/api/v1/message-reminders?api_token=1231asd1&message=Internet+Bill.&phone_number=09171251234&scheduled_at=2025-03-08+05%3A00AM
Request Parameters
- api_token (string, required) - Your API TOKEN
- phone_number (string, required) - Recipient's phone number
- scheduled_at (string, required) - Scheduled date and time (format: YYYY-MM-DD HH:MMAM/PM)
- message (string, required) - Message content
Example Request
POST https://iprogsms.com/api/v1/message-reminders?api_token=1231asd1&message=Internet+Bill.&phone_number=09171251234&scheduled_at=2025-03-08+05%3A00AM
Content-Type: application/json
{
"api_token": "1231asd1",
"phone_number": "09171251234",
"scheduled_at": "2025-03-08 05:00AM",
"message": "Internet Bill."
}
Response
{
"status": "success",
"message": "Message reminder successfully scheduled on March 08, 2025, at 05:00 AM and will be sent to 09171251234.",
"data": {
"id": 1,
"phone_number": "09171251234",
"message": "Internet Bill.",
"scheduled_at": "2025-03-08T05:00:00.000+08:00",
"status": "scheduled",
"created_at": "2025-03-07T16:11:38.937+08:00",
"updated_at": "2025-03-07T16:11:38.937+08:00"
}
}
Get Message Reminder
GET
https://iprogsms.com/api/v1/message-reminders/1?api_token=1231asd1
Example Request
GET https://iprogsms.com/api/v1/message-reminders/1?api_token=1231asd1
Response
{
"status": "success",
"message": "Message reminder found.",
"data": {
"id": 1,
"phone_number": "09171251234",
"message": "Internet Bill.",
"scheduled_at": "2025-03-08T05:00:00.000+08:00",
"status": "scheduled",
"created_at": "2025-03-07T16:11:38.937+08:00",
"updated_at": "2025-03-07T16:11:38.937+08:00"
}
}
Update Message Reminder
PATCH
https://iprogsms.com/api/v1/message-reminders/1?api_token=1231asd1
Example Request
PATCH https://iprogsms.com/api/v1/message-reminders/1?api_token=1231asd1
Content-Type: application/json
{
"api_token": "1231asd1",
"scheduled_at": "2025-03-08 06:00AM"
}
Response
{
"status": "success",
"message": "Message reminder updated successfully",
"data": {
"scheduled_at": "2025-03-08T06:00:00.000+08:00",
"id": 1,
"phone_number": "09171251234",
"message": "Internet Bill.",
"status": "scheduled",
"created_at": "2025-03-07T16:11:38.937+08:00",
"updated_at": "2025-03-07T16:36:18.090+08:00"
}
}
Delete Reminder
DELETE
https://iprogsms.com/api/v1/message-reminders/1?api_token=1231asd1
Example Request
DELETE https://iprogsms.com/api/v1/message-reminders/1?api_token=1231asd1
Response
{
"status": "success",
"message": "Message reminder successfully deleted.",
"data": {
"id": 1,
"phone_number": "09171251234",
"message": "Internet Bill.",
"scheduled_at": "2025-03-08T06:00:00.000+08:00",
"status": "scheduled",
"created_at": "2025-03-07T16:11:38.937+08:00",
"updated_at": "2025-03-07T16:36:18.090+08:00"
}
}
One-Time-Password
Watch DemoCreate and Send OTP
POST
https://iprogsms.com/api/v1/otp/send_otp
Request Parameters
- api_token (string, required) - Your API TOKEN
- phone_number (string, required) - Recipient's phone number
- message (string, optional) - Custom message. Default: "Your OTP code is :otp. It is valid for 5 minutes. Do not share this code with anyone."
Example Request
POST https://iprogsms.com/api/v1/otp/send_otp
Content-Type: application/json
{
"api_token": "1231asd1",
"phone_number": "09171251234",
"message": "" (optional)
// default message: Your OTP code is :otp. It is valid for 5 minutes. Do not share this code with anyone.
// For a custom message, add the :otp variable. It will be replaced with the actual OTP on the backend.
}
Response
{
"status": "success",
"message": "OTP sent successfully",
"data": {
"otp_code": "978895",
"otp_code_expires_at": "2025-03-09T20:04:45.176+08:00",
"otp_code_confirmed": false,
"phone_number": "09171074697",
"message": "Your OTP code is 978895. It is valid for 5 minutes. Do not share this code with anyone."
}
}
Verify OTP
POST
https://iprogsms.com/api/v1/otp/verify_otp
Request Parameters
- api_token (string, required) - Your API TOKEN
- phone_number (string, required) - Recipient's phone number
- otp (string, required) - OTP code to verify
Example Request
POST https://iprogsms.com/api/v1/otp/verify_otp
Content-Type: application/json
{
"api_token": "1231asd1",
"phone_number": "09171251234",
"otp": "359557"
}
Response
{
"status": "success",
"message": "OTP verified successfully"
}
OTP Lists
GET
https://iprogsms.com/api/v1/otp
Request Parameters
- api_token (string, required) - Your API TOKEN
Example Request
GET https://iprogsms.com/api/v1/otp
Content-Type: application/json
{
"api_token": "1231asd1"
}
Response
{
"status": "success",
"message": "List of your otps",
"data": [
{
"phone_number": "09171074697",
"otp_code": "359557",
"expired_at": "March 03, 2025, at 08:04 PM"
}
]
}
Code Examples
Get started quickly with code samples in multiple programming languages
curl -X POST "https://iprogsms.com/api/v1/sms_messages?api_token=1231asd1&message=Test+Message&phone_number=639109432834"
require 'net/http'
require 'uri'
require 'json'
uri = URI('https://iprogsms.com/api/v1/sms_messages')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.path, { 'Content-Type' => 'application/json' })
request.body = {
api_token: '1231asd1',
phone_number: '639109432834',
message: 'testmessagefromruby'
}.to_json
response = http.request(request)
puts response.body
<?php
$url = 'https://iprogsms.com/api/v1/sms_messages';
$firstName = "Jhon";
$lastName = "Doe";
$message = sprintf("Hi %s %s, Welcome to IPROG SMS API.", $firstName, $lastName);
$data = [
'api_token' => 'api_token',
'message' => $message,
'phone_number' => '639171071234'
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/x-www-form-urlencoded'
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
#include <iostream>
#include <curl/curl.h>
int main() {
// Initialize global libcurl state
curl_global_init(CURL_GLOBAL_DEFAULT);
CURL *curl = curl_easy_init();
if (curl) {
// Set the URL without the query parameters
curl_easy_setopt(curl, CURLOPT_URL, "https://sms.iprogtech.com/api/v1/sms_messages");
// Specify that this is a POST request
curl_easy_setopt(curl, CURLOPT_POST, 1L);
// Set the POST fields (ensure they are URL-encoded if needed)
const char* postFields = "api_token=123456&message=Test+Message&phone_number=09171254124";
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postFields);
// Optional: enable verbose mode to see details of the request for debugging
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
// Perform the request, and capture any errors
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << "\n";
}
// Clean up the CURL handle
curl_easy_cleanup(curl);
}
// Clean up global libcurl state
curl_global_cleanup();
return 0;
}
WordPress Plugin
The WordPress plugin sends SMS alerts for WooCommerce orders and user signups. Just add your API key, enable notifications, and use the [iprog_sms_form] shortcode to embed an SMS form.