DSSMSHUB API
Integrate our services — Virtual Numbers, Data, Airtime, Electricity, Social Boost, and Betting — directly into your own website or mobile app.
📌 Base URL:
All requests must use HTTPS. All responses are JSON.
https://dssmshub.com.ng/apiAll requests must use HTTPS. All responses are JSON.
Authentication
All API requests require your API key. You can get your key from your Account → API Settings page.
Pass your key in the POST body as key or in the HTTP header:
Authorization: Bearer YOUR_API_KEY
⚠️ Keep your API key private. Do not expose it in frontend JavaScript. Always make API calls from your server.
Request Format
All endpoints use POST. You can send either application/x-www-form-urlencoded or application/json:
POST https://dssmshub.com.ng/api
Content-Type: application/json
{
"key": "YOUR_API_KEY",
"endpoint": "account/balance"
}
Error Codes
Every error response includes status: "error", a code string, and a human-readable message:
{
"status": "error",
"code": "INSUFFICIENT_BALANCE",
"message": "Insufficient balance. Required: ₦850.00, Available: ₦200.00"
}
| HTTP Code | Error Code | Meaning |
|---|---|---|
| 400 | MISSING_PARAMS | A required field is missing in the request |
| 401 | MISSING_KEY | No API key was provided |
| 401 | INVALID_KEY | API key is wrong or your API access is disabled |
| 402 | INSUFFICIENT_BALANCE | Your wallet balance is too low |
| 403 | NOT_YOURS | You tried to access an order that belongs to another user |
| 404 | UNKNOWN_ENDPOINT | The endpoint you specified does not exist |
| 405 | METHOD_NOT_ALLOWED | You used GET instead of POST |
| 429 | TOO_MANY_ACTIVE | You have too many active number rentals (max 20) |
| 503 | NO_NUMBER_AVAILABLE | No virtual numbers available for that service/country |
| 503 | PURCHASE_FAILED | The downstream API rejected the purchase |
Account Endpoints
POST account/balance — Get Wallet Balance
Returns your wallet and referral balances in Naira (NGN).
// Request
{ "key": "YOUR_KEY", "endpoint": "account/balance" }
// Response
{
"status": "success",
"wallet_balance": 5000.00,
"referral_balance": 200.00,
"currency": "NGN"
}
POST account/profile — Get Profile
{ "key": "YOUR_KEY", "endpoint": "account/profile" }
POST account/transactions — Deposit History
{ "key": "YOUR_KEY", "endpoint": "account/transactions" }
Virtual Numbers (OTP)
POST numbers/services — List Services
{ "key": "YOUR_KEY", "endpoint": "numbers/services" }
POST numbers/countries — List Countries
{ "key": "YOUR_KEY", "endpoint": "numbers/countries" }
POST numbers/buy — Purchase a Virtual Number
| Parameter | Required | Description |
|---|---|---|
| service | Required | Service code (e.g. "whatsapp", "google") |
| country | Required | Country code (e.g. "1" for USA) |
| max_price | Optional | Maximum price in NGN you are willing to pay |
// Request
{
"key": "YOUR_KEY",
"endpoint": "numbers/buy",
"service": "whatsapp",
"country": "1"
}
// Success Response
{
"status": "success",
"orderid": "123456789",
"number": "+14155552671",
"cost": 850.00,
"currency": "NGN"
}
✅ After buying, use
numbers/check with the orderid to get the SMS/OTP code.POST numbers/check — Check for SMS Code
| Parameter | Required | Description |
|---|---|---|
| orderid | Required | The order ID from numbers/buy |
{ "key": "YOUR_KEY", "endpoint": "numbers/check", "orderid": "123456789" }
POST numbers/cancel — Cancel & Refund
{ "key": "YOUR_KEY", "endpoint": "numbers/cancel", "orderid": "123456789" }
Data Bundles
POST data/plans — Get Available Plans
| Parameter | Required | Description |
|---|---|---|
| network | Required | mtn | airtel | glo | 9mobile |
{ "key": "YOUR_KEY", "endpoint": "data/plans", "network": "mtn" }
POST data/buy — Purchase Data Bundle
| Parameter | Required | Description |
|---|---|---|
| network | Required | mtn | airtel | glo | 9mobile |
| plan_id | Required | Plan ID from data/plans |
| phone | Required | Recipient phone number (e.g. 08012345678) |
| amount | Required | Amount in NGN to charge from wallet |
{
"key": "YOUR_KEY",
"endpoint": "data/buy",
"network": "mtn",
"plan_id": "mtn-500mb-30days",
"phone": "08012345678",
"amount": 250
}
Airtime
POST airtime/buy — Buy Airtime
| Parameter | Required | Description |
|---|---|---|
| network | Required | mtn | airtel | glo | 9mobile |
| phone | Required | Recipient phone number |
| amount | Required | Airtime amount in NGN (min ₦10 for MTN, ₦50 others) |
💡 You are charged 99% of the amount. So for ₦1000 airtime, you pay ₦990.
{
"key": "YOUR_KEY",
"endpoint": "airtime/buy",
"network": "mtn",
"phone": "08012345678",
"amount": 500
}
Electricity
POST electricity/verify — Verify Meter
| Parameter | Required | Description |
|---|---|---|
| service_id | Required | e.g. ikeja-electric, eko-electric, abuja-electric |
| meter_id | Required | The meter number |
| meter_type | Optional | prepaid (default) or postpaid |
POST electricity/buy — Pay Electricity Bill
| Parameter | Required | Description |
|---|---|---|
| service_id | Required | Provider ID (e.g. ikeja-electric) |
| meter_id | Required | The meter number |
| amount | Required | Amount in NGN |
| phone | Optional | Phone for token delivery |
| meter_type | Optional | prepaid or postpaid |
Social Media Boost
POST social/services — List Services
POST social/buy — Place Boost Order
| Parameter | Required | Description |
|---|---|---|
| service | Required | Service ID from social/services |
| link | Required | Instagram/TikTok/etc profile or post URL |
| quantity | Required | Number of likes/followers/views |
| amount | Required | Cost in NGN (from services list) |
POST social/status — Check Order Status
{ "key": "YOUR_KEY", "endpoint": "social/status", "order_id": "12345" }
Betting Wallets
POST betting/verify — Verify Account
| Parameter | Required | Description |
|---|---|---|
| service_id | Required | e.g. bet9ja, sportybet, 1xbet |
| customer_id | Required | The betting account ID/username |
POST betting/fund — Fund Betting Wallet
| Parameter | Required | Description |
|---|---|---|
| service_id | Required | Betting platform ID |
| customer_id | Required | Betting account ID |
| amount | Required | Amount to fund in NGN |
Code Examples
PHP Example — Buy Airtime
<?php
$apiKey = 'YOUR_API_KEY'; // Keep this on the server
$response = file_get_contents('https://dssmshub.com.ng/api', false,
stream_context_create(['http' => [
'method' => 'POST',
'header' => 'Content-Type: application/json',
'content' => json_encode([
'key' => $apiKey,
'endpoint' => 'airtime/buy',
'network' => 'mtn',
'phone' => '08012345678',
'amount' => 500
])
]])
);
$result = json_decode($response, true);
if ($result['status'] === 'success') {
echo "Airtime sent! Reference: " . $result['reference'];
} else {
echo "Error: " . $result['message'];
}
?>
JavaScript (Node.js) — Buy a Virtual Number
const axios = require('axios');
const response = await axios.post('https://dssmshub.com.ng/api', {
key: 'YOUR_API_KEY',
endpoint: 'numbers/buy',
service: 'whatsapp',
country: '1'
});
if (response.data.status === 'success') {
console.log('Number:', response.data.number);
console.log('Order ID:', response.data.orderid);
} else {
console.error('Failed:', response.data.message);
}
Python — Check Balance
import requests
res = requests.post('https://dssmshub.com.ng/api', json={
'key': 'YOUR_API_KEY',
'endpoint': 'account/balance'
})
data = res.json()
if data['status'] == 'success':
print(f"Balance: ₦{data['wallet_balance']}")