Welcome back, User
0 SMS 0 Voice

REST API Documentation ๐Ÿ”Œ

Complete integration specifications, code snippets, and endpoints for SMS & Voice gateway services.

API v2.0 Live JSON • HTTPS

POST Send SMS Broadcast

Transactional & Promotional

Dispatch single or bulk SMS messages to one or multiple recipients in real time using your approved Sender ID.

POSThttps://veloquipsms.top/api/send_sms.php
Request Headers
HTTP Headers
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY
Accept: application/json
JSON Request Body Parameters
FieldTypeStatusDescription
recipient Array<string> Required Array of recipient phone numbers in international format without plus sign (e.g. ["233241234567", "233501234567"]).
sender string Required Your approved Sender ID registered to your account (max 11 characters alphanumeric).
message string Required SMS text content. 1 unit = 160 characters for standard GSM encoding.
Request Body Example
JSON Payload
{
  "recipient": ["233241234567", "233501234567"],
  "sender": "VeloQuip",
  "message": "Your verification code is 481920. Valid for 10 minutes."
}
Server Responses
200 OK (Success)
{
  "status": "success",
  "code": "2000",
  "message": "messages sent successfully",
  "data": {
    "campaign_id": "A59CCB70-662D-45EF",
    "total_sent": 2,
    "credit_used": 2,
    "credit_left": 1483
  }
}
400 Error Response
{
  "status": "error",
  "code": "4001",
  "message": "Insufficient SMS balance"
}

GET Check SMS & Cash Balance

Account Inquiry

Retrieve your real-time wallet unit balances, cash balance, and aggregate platform dispatch statistics. The sms_balance field returns your total usable SMS credits (combining active expiry credits and non-expiring credits).

GEThttps://veloquipsms.top/api/balance.php
Request Headers & Query Params
Header: Authorization: Bearer YOUR_API_KEY
Query: ?key=YOUR_API_KEY
Success Response (200 OK)
JSON Response
{
  "status": "success",
  "code": "2000",
  "data": {
    "sms_balance": 1483,
    "cash_balance": 50.00,
    "total_sent": 517,
    "expiry_balance": 1000,
    "non_expiry_balance": 483
  }
}

POST Register / Request Sender ID

NCA Compliance

Register a new Sender ID directly via API. The request is submitted to the telecommunications network gateway and National Communications Authority (NCA) compliance verification. If pre-approved or already verified upstream, it is activated immediately.

POSThttps://veloquipsms.top/api/create_sender.php

Note: You can also use POST https://veloquipsms.top/api/sender_ids.php interchangeably.

Request Headers
HTTP Headers
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY
Accept: application/json
JSON Request Body Parameters
FieldTypeStatusDescription
sender_name string Required Desired Sender ID. Between 3 and 11 characters (letters, numbers, spaces, dots, hyphens). Must contain letters per NCA regulations (cannot be purely numeric).
purpose string Required Intended business use case or message description (e.g., "Sending OTPs, transaction alerts, and order confirmations to our mobile app customers").
Request Body Example
JSON Payload
{
  "sender_name": "MyBrand",
  "purpose": "Dispatching two-factor authentication codes and delivery status updates."
}
Server Responses
201 / 200 Success Response
{
  "status": "success",
  "code": "2000",
  "message": "Sender ID 'MyBrand' submitted to the SMS Gateway API! Awaiting network verification.",
  "data": {
    "id": 42,
    "sender_name": "MyBrand",
    "status": "pending",
    "is_approved": false,
    "purpose": "Dispatching two-factor authentication codes and delivery status updates."
  }
}
422 Error Response
{
  "status": "error",
  "code": "4022",
  "message": "Sender ID cannot consist purely of numbers. It must include letters according to NCA regulations."
}

GET Fetch Approved Sender IDs

Active Senders

Retrieve a verified list of all registered and approved Sender IDs belonging to your account. Perfect for dynamically populating sender dropdowns in plugins, webhooks, or third-party CRM systems.

GEThttps://veloquipsms.top/api/sender_ids.php
Authentication Options

You can authenticate using either the Authorization Bearer header (recommended) or via a query parameter:

Header: Authorization: Bearer YOUR_API_KEY
Query: ?key=YOUR_API_KEY
Query Parameters
ParameterTypeStatusDescription
key string Optional Your API key if not supplied via Authorization header.
status string Optional Filter by status. Defaults to approved. Pass all to view all requests.
Success Response (200 OK)
JSON Response
{
  "status": "success",
  "code": "2000",
  "message": "Sender IDs retrieved successfully.",
  "count": 2,
  "approved_senders": [
    "VeloquipSMS",
    "Joo Phones"
  ],
  "data": [
    {
      "id": 27,
      "sender_name": "VeloquipSMS",
      "status": "approved",
      "created_at": "2026-05-11 04:01:45"
    },
    {
      "id": 1,
      "sender_name": "Joo Phones",
      "status": "approved",
      "created_at": "2026-05-08 13:14:52"
    }
  ]
}

POST Check Specific Sender ID Status

Verification

Check the telecommunication network registration and approval state of a single Sender ID name.

POSThttps://veloquipsms.top/api/sender_status.php
Request Body (JSON)
JSON Payload
{
  "sender_name": "VeloquipSMS"
}
Success Response (200 OK)
JSON Response
{
  "status": "success",
  "code": "2000",
  "data": {
    "id": 27,
    "sender_name": "VeloquipSMS",
    "status": "Approved",
    "is_approved": true
  }
}

POST Bulk Voice Call Broadcast

Interactive Voice

Broadcast pre-recorded audio voice phone calls to customer mobile numbers. Upload a new audio recording (MP3/WAV) or reuse an existing voice_id.

POSThttps://veloquipsms.top/api/send_voice.php
Multipart Form-Data / JSON Parameters
FieldTypeStatusDescription
campaign string Required Title for your bulk voice campaign.
recipient array / string Required Array of recipient phone numbers (e.g. ["0241234567", "0201234567"]).
file file Conditional Audio file (.mp3, .wav, .m4a). Do NOT pass if reusing an existing voice_id.
voice_id string Conditional Voice ID from a prior campaign. Do NOT pass if uploading a new file.
is_schedule boolean Optional Set true to schedule for future broadcast. Defaults to false.
Implementation Sample (PHP cURL)
PHP Implementation
<?php
$url = "https://veloquipsms.top/api/send_voice.php?key=YOUR_API_KEY";

$audioFile = curl_file_create('audio/alert.mp3', 'audio/mpeg', 'alert.mp3');
$payload = [
    'campaign'  => 'Promotional Alert',
    'recipient' => ['0241234567', '0201234567'],
    'file'      => $audioFile
];

$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => $url,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $payload,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["Accept: application/json"]
]);

$response = curl_exec($ch);
curl_close($ch);
print_r(json_decode($response, true));
?>
API Rate Limits & SLA Standard REST keys are provisioned with 100 requests per minute. Need higher throughput for enterprise webhook bursts? Contact support for dedicated IP whitelisting.

Ready to Integrate?

Create a free account or log in to generate secure API keys, manage sender IDs, and test live dispatches.

Full Private API Key

Treat this secret key like a password. Do not expose it in public client-side JavaScript or Git repositories.