API Documentation
A complete guide to using the IPROG SMS. Learn how to integrate SMS functionality into your applications.
API Endpoints
Explore all available endpoints for sending SMS and managing your account
https://www.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://www.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"
}
https://www.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://www.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"
}
https://www.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://www.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"
}
https://www.iprogsms.com/api/v1/account/sms_credits?api_token=1231asd1
Request Parameters
- api_token (string, required) - Your API TOKEN
Example Request
GET https://www.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
}
}
Group Contacts API Availability
This section documents the currently available Group Contacts API endpoint.
POST /api/v1/group-contacts/send_bulk- send one-way bulk SMS using an existing group code.- Requires an approved sender name (or admin access).
https://www.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://www.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."
}
Campaign API Notes
- Campaigns are one-way SMS broadcasts only.
- Requires an approved sender name (or admin access).
- Use existing group codes from Group Contacts.
Create Campaign
https://www.iprogsms.com/api/v1/campaigns?api_token=1231asd1
POST https://www.iprogsms.com/api/v1/campaigns?api_token=1231asd1
Content-Type: application/json
{
"api_token": "1231asd1",
"name": "Enrollment Blast",
"message": "Good day! Enrollment starts tomorrow.",
"group_codes": ["GRP-124", "GRP-125"],
"submit_mode": "draft"
}
List Campaigns
https://www.iprogsms.com/api/v1/campaigns?api_token=1231asd1&limit=20
Get Campaign
https://www.iprogsms.com/api/v1/campaigns/1?api_token=1231asd1&recipients_limit=100
Campaign Actions
Duplicate: POST https://www.iprogsms.com/api/v1/campaigns/1/duplicate?api_token=1231asd1
Start: POST https://www.iprogsms.com/api/v1/campaigns/1/start?api_token=1231asd1
Schedule: POST https://www.iprogsms.com/api/v1/campaigns/1/schedule?api_token=1231asd1&scheduled_at=2026-02-20+10%3A00
Pause: POST https://www.iprogsms.com/api/v1/campaigns/1/pause?api_token=1231asd1
Resume: POST https://www.iprogsms.com/api/v1/campaigns/1/resume?api_token=1231asd1
Cancel: POST https://www.iprogsms.com/api/v1/campaigns/1/cancel?api_token=1231asd1
Create Message Reminder
https://www.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://www.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
https://www.iprogsms.com/api/v1/message-reminders/1?api_token=1231asd1
Example Request
GET https://www.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
https://www.iprogsms.com/api/v1/message-reminders/1?api_token=1231asd1
Example Request
PATCH https://www.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
https://www.iprogsms.com/api/v1/message-reminders/1?api_token=1231asd1
Example Request
DELETE https://www.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
https://www.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://www.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
https://www.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://www.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
https://www.iprogsms.com/api/v1/otp
Request Parameters
- api_token (string, required) - Your API TOKEN
Example Request
GET https://www.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"
}
]
}
Phone Number Network Detection
Detect Phone Number Network
https://www.iprogsms.com/api/v1/phone_numbers/detect
Request Parameters
- api_token (string, required) - Your API TOKEN
- phone_number (string, required) - Phone number to detect (format: 09XXXXXXXXX or +639XXXXXXXXX)
Example Request
POST https://www.iprogsms.com/api/v1/phone_numbers/detect
Content-Type: application/json
{
"api_token": "1231asd1",
"phone_number": "09123456789"
}
Response
{
"status": "success",
"data": {
"phone_number": "09123456789",
"is_smart_tnt": false,
"network": "Globe/TM"
}
}
Network Types
The API can detect the following Philippine mobile networks:
- Smart/TNT - Smart Communications, TNT (Talk 'N Text), and Sun Cellular
- Globe/TM - Globe Telecom and TM (Touch Mobile)
- DITO - DITO Telecommunity
- Unknown Network - Valid Philippine mobile format but network not recognized
- Invalid Format - Phone number does not match Philippine mobile format
Error Response
{
"status": "error",
"message": "Invalid phone number format. Philippine mobile numbers must be in format: 09XXXXXXXXX or +639XXXXXXXXX (11 digits total)",
"data": {
"phone_number": "090812123232121323",
"is_smart_tnt": false,
"network": "Invalid Format"
}
}
Code Examples
Get started quickly with code samples in multiple programming languages
curl -X POST "https://www.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://www.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://www.iprogsms.com/api/v1/sms_messages';
$firstName = "Jhon";
$lastName = "Doe";
$message = sprintf("Hi %s %s, Welcome to IPROG SMS.", $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://www.iprogsms.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.