DSSMSHUB API

Integrate our services — Virtual Numbers, Data, Airtime, Electricity, Social Boost, and Betting — directly into your own website or mobile app.

📌 Base URL: https://dssmshub.com.ng/api
All 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 CodeError CodeMeaning
400MISSING_PARAMSA required field is missing in the request
401MISSING_KEYNo API key was provided
401INVALID_KEYAPI key is wrong or your API access is disabled
402INSUFFICIENT_BALANCEYour wallet balance is too low
403NOT_YOURSYou tried to access an order that belongs to another user
404UNKNOWN_ENDPOINTThe endpoint you specified does not exist
405METHOD_NOT_ALLOWEDYou used GET instead of POST
429TOO_MANY_ACTIVEYou have too many active number rentals (max 20)
503NO_NUMBER_AVAILABLENo virtual numbers available for that service/country
503PURCHASE_FAILEDThe 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
ParameterRequiredDescription
serviceRequiredService code (e.g. "whatsapp", "google")
countryRequiredCountry code (e.g. "1" for USA)
max_priceOptionalMaximum 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
ParameterRequiredDescription
orderidRequiredThe 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
ParameterRequiredDescription
networkRequiredmtn | airtel | glo | 9mobile
{ "key": "YOUR_KEY", "endpoint": "data/plans", "network": "mtn" }
POST data/buy — Purchase Data Bundle
ParameterRequiredDescription
networkRequiredmtn | airtel | glo | 9mobile
plan_idRequiredPlan ID from data/plans
phoneRequiredRecipient phone number (e.g. 08012345678)
amountRequiredAmount 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
ParameterRequiredDescription
networkRequiredmtn | airtel | glo | 9mobile
phoneRequiredRecipient phone number
amountRequiredAirtime 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
ParameterRequiredDescription
service_idRequirede.g. ikeja-electric, eko-electric, abuja-electric
meter_idRequiredThe meter number
meter_typeOptionalprepaid (default) or postpaid
POST electricity/buy — Pay Electricity Bill
ParameterRequiredDescription
service_idRequiredProvider ID (e.g. ikeja-electric)
meter_idRequiredThe meter number
amountRequiredAmount in NGN
phoneOptionalPhone for token delivery
meter_typeOptionalprepaid or postpaid

Social Media Boost

POST social/services — List Services
{ "key": "YOUR_KEY", "endpoint": "social/services" }
POST social/buy — Place Boost Order
ParameterRequiredDescription
serviceRequiredService ID from social/services
linkRequiredInstagram/TikTok/etc profile or post URL
quantityRequiredNumber of likes/followers/views
amountRequiredCost 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
ParameterRequiredDescription
service_idRequirede.g. bet9ja, sportybet, 1xbet
customer_idRequiredThe betting account ID/username
POST betting/fund — Fund Betting Wallet
ParameterRequiredDescription
service_idRequiredBetting platform ID
customer_idRequiredBetting account ID
amountRequiredAmount 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']}")