Developer API

API Documentation

Use the mythic wave data API to check account balance and perform VTU transactions for airtime, data, data PINs, cable TV, electricity and exam PINs.

Authentication

All API requests require your account API key. Send it in either the Authorization header or the Token header.

Authorization: Token YOUR_API_KEY
Content-Type: application/json
Log in to your account dashboard to copy your API key. Keep your key private and do not expose it in frontend JavaScript.

Endpoint Summary

Base URL: https://mskdata.mean.ng

ServiceMethodEndpointPurpose
UserGET/POST/api/user/Fetch account name and wallet balance.
AirtimePOST/api/airtime/Buy VTU or Share And Sell airtime.
Alpha TopupPOST/api/alphatopup/Buy Alpha Topup airtime/request.
DataPOST/api/data/Buy mobile data plans.
Data PINPOST/api/datapin/Generate printable data PINs.
Cable VerifyGET/POST/api/cabletv/verify/Verify decoder/IUC customer name.
Cable PurchasePOST/api/cabletv/Purchase cable TV subscription.
Electricity VerifyGET/POST/api/electricity/verify/Verify meter customer name.
Electricity PurchasePOST/api/electricity/Purchase electricity token/unit.
Exam PINPOST/api/exam/Purchase exam result/checker PINs.

User Balance

GET/POST https://mskdata.mean.ng/api/user/

curl -X GET "https://mskdata.mean.ng/api/user/" \
  -H "Authorization: Token YOUR_API_KEY"
{
  "name": "Doe John",
  "balance": "1,500.00",
  "status": "success"
}

Buy Airtime

POST https://mskdata.mean.ng/api/airtime/

FieldRequiredDescription
networkYesNetwork ID.
phoneYesRecipient phone number.
amountYesAirtime amount.
airtime_typeNoVTU or Share And Sell. Defaults to VTU.
ported_numberNofalse validates number prefix; use true for ported lines.
refNoUnique transaction reference. Auto-generated if omitted.
{
  "network": "1",
  "phone": "08030000000",
  "amount": "100",
  "airtime_type": "VTU",
  "ported_number": "false",
  "ref": "AIR123456"
}

Buy Alpha Topup

POST https://mskdata.mean.ng/api/alphatopup/

FieldRequiredDescription
phoneYesRecipient phone number.
amountYesAlpha Topup amount/package amount.
refNoUnique transaction reference. Auto-generated if omitted.
{
  "phone": "08030000000",
  "amount": "1000",
  "ref": "ALPHA123456"
}

Buy Data

POST https://mskdata.mean.ng/api/data/

FieldRequiredDescription
networkYesNetwork ID.
phoneYesRecipient phone number.
data_planYesData plan ID.
ported_numberNofalse or true.
refNoUnique transaction reference.
{
  "network": "1",
  "phone": "08030000000",
  "data_plan": "101",
  "ported_number": "false",
  "ref": "DATA123456"
}

Buy Data PIN

POST https://mskdata.mean.ng/api/datapin/

FieldRequiredDescription
networkYesNetwork ID.
data_planYesData PIN plan ID.
quantityYesNumber of PINs to generate.
businessnameYesName printed/recorded with PIN request.
refNoUnique transaction reference.
{
  "network": "1",
  "data_plan": "10",
  "quantity": "5",
  "businessname": "My Business",
  "ref": "PIN123456"
}

Cable TV

Verify IUC / Smart Card

POST https://mskdata.mean.ng/api/cabletv/verify/

{
  "provider": "1",
  "iucnumber": "1234567890"
}

Purchase Subscription

POST https://mskdata.mean.ng/api/cabletv/

FieldRequiredDescription
providerYesCable provider ID.
iucnumberYesDecoder/IUC number.
planYesCable plan ID.
refNoUnique transaction reference.
{
  "provider": "1",
  "iucnumber": "1234567890",
  "plan": "20",
  "ref": "CAB123456"
}

Electricity

Verify Meter

POST https://mskdata.mean.ng/api/electricity/verify/

{
  "provider": "1",
  "meternumber": "12345678901",
  "metertype": "prepaid"
}

Purchase Token

POST https://mskdata.mean.ng/api/electricity/

FieldRequiredDescription
providerYesElectricity provider ID.
meternumberYesMeter number.
metertypeYesMeter type, usually prepaid or postpaid.
amountYesMinimum amount is N1000.
phoneNoCustomer phone number.
refNoUnique transaction reference.
{
  "provider": "1",
  "meternumber": "12345678901",
  "metertype": "prepaid",
  "amount": "1000",
  "phone": "08030000000",
  "ref": "ELEC123456"
}

Buy Exam PIN

POST https://mskdata.mean.ng/api/exam/

FieldRequiredDescription
providerYesExam provider ID.
quantityYesNumber of PINs/tokens.
refNoUnique transaction reference.
{
  "provider": "1",
  "quantity": "1",
  "ref": "EXAM123456"
}

Common Responses

Successful purchase

{
  "status": "success",
  "Status": "successful"
}

Failed request

{
  "status": "fail",
  "Status": "failed",
  "msg": "Insufficient balance fund your wallet and try again"
}
Use a unique ref for every transaction. Duplicate references are rejected to protect users from repeated billing.