Airtime, Data, Electricity, Cable TV and SMS APIs with discovery endpoints.
https://kpoint.com.ng/api/public/v1
Use your purchased API key in one of these headers:
Authorization: Bearer YOUR_API_KEY
X-API-KEY: YOUR_API_KEY
Always call list endpoints first so your integrations stay up-to-date.
curl -X POST "https://kpoint.com.ng/api/public/v1/sms/send-message" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"recipient":"08012345678","message":"Hello from Kpoint API"}'const res = await fetch("https://kpoint.com.ng/api/public/v1/sms/send-message", {
method: "POST",
headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
body: JSON.stringify({ recipient: "08012345678", message: "Hello from Kpoint API" })
});
console.log(await res.json());$response = (new \GuzzleHttp\Client())->post("https://kpoint.com.ng/api/public/v1/sms/send-message", [
'headers' => ['Authorization' => 'Bearer YOUR_API_KEY', 'Content-Type' => 'application/json'],
'json' => ['recipient' => '08012345678', 'message' => 'Hello from Kpoint API']
]);
print_r(json_decode($response->getBody(), true));import requests
res = requests.post(
"https://kpoint.com.ng/api/public/v1/sms/send-message",
headers={"Authorization":"Bearer YOUR_API_KEY","Content-Type":"application/json"},
json={"recipient":"08012345678","message":"Hello from Kpoint API"}
)
print(res.json())Use these to fetch the exact data required before making purchases:
GET /lists/networksGET /lists/data-plans?network=MTNGET /lists/electricity-providersGET /lists/cable-providersGET /lists/cable-packages?provider=dstvGet available network codes for airtime/data.
{"status":"success","data":[{"code":"MTN","name":"MTN","is_active":true},{"code":"AIRTEL","name":"Airtel","is_active":true}]}Get plan IDs and prices for selected network.
{"status":"success","network":"MTN","data":[{"plan_id":"MTN_1GB_DAILY","description":"1GB Daily","amount":350,"validity":"1 day"}]}Get electricity provider/disco codes.
{"status":"success","data":[{"code":"ikeja","name":"Ikeja Electric"},{"code":"eko","name":"Eko Electric"}]}Get cable provider codes.
{"status":"success","data":[{"code":"dstv","name":"DSTV"},{"code":"gotv","name":"GOTV"}]}Get package codes for selected provider.
{"status":"success","provider":"dstv","data":[{"package_code":"DSTV_COMPACT","name":"Compact","amount":12500}]}Purchase airtime.
{"network":"MTN","phone_number":"08012345678","amount":1000}Purchase data bundle with plan ID from list endpoint.
{"network":"MTN","plan_id":"MTN_1GB_DAILY","phone_number":"08012345678"}Pay electricity bill.
{"disco":"ikeja","meter_number":"12345678901","meter_type":"prepaid","amount":5000}Pay cable TV package.
{"provider":"dstv","smartcard_number":"1234567890","package_code":"DSTV_COMPACT"}Send SMS from units balance.
{"recipient":"08012345678","message":"Hello from Kpoint API"}| Status | Meaning |
|---|---|
| 401 | Missing/invalid API key. |
| 403 | One-time API fee not paid. |
| 422 | Validation failed / insufficient SMS units. |
| 500 | Unexpected server error. |