Airtime, data, cable TV, electricity, exam pins, data pins, social media boost, virtual numbers (USA and other countries), temporary email, number rental and travel eSIM. One API key, one wallet.
⚲
Getting started
1. Base URL
https://wizedata.com.ng
2. Authenticate
Open API Access in your account, copy your key and send it in the Authorization header of every request:
{
"status": "fail",
"msg": "Your authorization token is required."
}
Errors
HTTP
Message
401
Your authorization token is required.
401
Authorization token not found <token>
Notes
balance is a text value with thousands separators and 2 decimals. Remove the commas before doing maths.
Try it read only, free
GETCheck a transaction/api/v2/transaction
Look up the status of any order made with your key, using the ref you sent (or the ref returned by the numbers/email/rent/SMM endpoints). Use it whenever a purchase answered "processing" or your server timed out.
Every purchase needs numeric IDs (networks, plans, providers). Use these endpoints to list them with YOUR price tier, or see the ID tables at the bottom of this page.
GETList networks/api/v2/catalog/networks
All networks with their IDs and what is switched on right now. Network IDs are NOT the same on every endpoint, so read the note.
Instant airtime top-up on MTN, GLO, 9MOBILE and AIRTEL. Your wallet is charged at your tier price, the order is sent to the network, and the wallet is refunded automatically if it fails.
Parameters
Parameter
Type
Required
Description
network
integer
required
Network id: 1 MTN, 2 GLO, 3 9MOBILE, 4 AIRTEL.
phonealso accepted: mobile_number
string
required
11 digit phone number, for example 08012345678.
amount
number
required
Amount in naira. Minimum N20, maximum N10000.
airtime_type
string
optional
VTU (default), Share And Sell, Momo or Awoof.
ported_numberalso accepted: Ported_number
string
optional
"true" if the number was ported to another network, otherwise "false" (default).
ref
string
optional
Your unique reference. Generated for you when omitted. Must never repeat.
{
"status": "fail",
"Status": "failed",
"msg": "Minimum Unit Purchase Is N1000"
}
Errors
HTTP
Message
401
Your authorization token is required.
401
Authorization token not found <token> (the key is wrong or the account is not active)
400
Only POST method is allowed
400
Transaction Ref Already Exist
400
Possible Transaction Duplicate, Please Verify Transaction & Try Again After 30 Seconds
400
Insufficient balance fund your wallet and try again
400
Could Not Complete Transaction, Please Try Again Later
400
Provider failure: {"status":"fail","Status":"failed","msg":"..."} and your wallet is refunded automatically
400
Amount Is Required / Meter Number Is Required / Provider Id Required / Meter Type Is Required
400
Minimum Unit Purchase Is N1000
400
The Provider id is invalid
400
Sorry, <provider> is not available at the moment
Notes
customerName, customerAddress and units are only present when the DISCO returns them.
If the reply is {"status":"processing"} the token is still being generated: check it with Check a transaction, the token appears in the description once ready.
Try it REAL purchase
POSTBuy exam pins/api/exam/
WAEC, NECO and other exam result-checker pins. Up to 10 per request.
{
"status": "success",
"msg": "Your Social Media Boost order has been placed successfully!"
}
Error response HTTP 400
{
"status": "fail",
"msg": "Insufficient balance fund your wallet and try again"
}
Errors
HTTP
Message
401
Your authorization token is required.
401
Authorization token not found <token> (the key is wrong or the account is not active)
400
Only POST method is allowed
400
Transaction Ref Already Exist
400
Possible Transaction Duplicate, Please Verify Transaction & Try Again After 30 Seconds
400
Insufficient balance fund your wallet and try again
400
Could Not Complete Transaction, Please Try Again Later
400
Provider failure: {"status":"fail","Status":"failed","msg":"..."} and your wallet is refunded automatically
400
Service ID Is Required
400
Invalid Service Id / Invalid Quantity / Service Not Available
Try it REAL purchase
Virtual Numbers: USA & other countries
Receive SMS verification codes on a virtual number. Receive only (no calls). USA numbers use ver=sms4 (Server 1) or sms5 (Server 2). Numbers from other countries (UK, Canada and more) use ver=sms6 with a country id from List countries.
GETList countries/api/v2/otp/countries
Countries available for numbers outside the USA. Use the id as country with ver=sms6.
{
"status": "success",
"msg": "OK",
"data": {
"items": [
{
"id": "110",
"name": "United Kingdom",
"code": "GB",
"prefix": "44"
},
{
"id": "36",
"name": "Canada",
"code": "CA",
"prefix": "1"
}
],
"note": "United States numbers use /otp/services?ver=sms4 or sms5. Other countries use ver=sms6 with country=<id>."
}
}
Try it read only, free
GETList apps/api/v2/otp/services
Apps you can verify with a number, with your price and stock. For ver=sms6 you must also pass the country. Server 1 prices are estimates until you buy.
Parameters
Parameter
Type
Required
Description
ver
string
optional
sms4 = USA Server 1 (default), sms5 = USA Server 2, sms6 = other countries.
country
string
optional
Country id from List countries. Required when ver=sms6.
{
"status": "fail",
"msg": "Unavailable right now."
}
Try it read only, free
POSTGet a number/api/v2/otp/buy
Buys one number for one app (USA or another country). Your wallet is charged immediately and refunded automatically if no code arrives or the order is cancelled.
Parameters
Parameter
Type
Required
Description
ver
string
optional
sms4 (USA Server 1, default), sms5 (USA Server 2) or sms6 (other countries).
country
string
optional
Country id from List countries. Required when ver=sms6.
service
string
required
App id from List apps, for example whatsapp.
area_code
string
optional
3-digit USA area code, if you want a specific one.
{
"status": "fail",
"msg": "Please confirm that you understand rentals are final and cannot be cancelled."
}
Notes
All v2 endpoints work with the same key: Authorization: Token YOUR_API_KEY (Bearer also works). Limit: 60 requests per minute.
client_ref makes a purchase safe to retry: sending the same client_ref again returns the same order and never charges twice. Always send it.
max_price (naira) protects you from price changes: if the price went above it you get HTTP 409 and are not charged.
If the provider does not answer clearly, the order comes back as processing and is completed or refunded automatically within 30 minutes. Check it with Check a transaction.
{
"status": "fail",
"msg": "Unavailable right now."
}
Try it read only, free
POSTBuy an eSIM/api/v2/esim/buy
Buys one eSIM. Your wallet is charged and the eSIM is issued straight away. If the provider cannot issue it you are refunded automatically. Delivered eSIMs are final.
Parameters
Parameter
Type
Required
Description
plan_id
string
required
Plan id from List plans.
max_price
number
optional
Highest price in naira you accept.
client_ref
string
optional
Your unique reference. Sending the same one again never double-charges.
{
"status": "fail",
"msg": "The price changed to ₦2,300.00. Please confirm again.",
"data": {
"price": 2300,
"code": "price_changed"
}
}
Errors
HTTP
Message
401
Invalid API key.
402
Insufficient wallet balance.
409
Price changed (data.price has the new price).
501
Travel eSIM is not available yet.
502
Provider could not issue the eSIM. data.refunded is true; you were not charged.
Notes
All v2 endpoints work with the same key: Authorization: Token YOUR_API_KEY (Bearer also works). Limit: 60 requests per minute.
client_ref makes a purchase safe to retry: sending the same client_ref again returns the same order and never charges twice. Always send it.
max_price (naira) protects you from price changes: if the price went above it you get HTTP 409 and are not charged.
If the provider does not answer clearly the order comes back as processing and is completed or refunded automatically. Check it with Check an eSIM order.