POST
/auth/signin
Authenticate and retrieve your API key and account details.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| password | string | required | Account password |
| identifier | string | required | Email address or username |
| useGmail | boolean | required | Set true to authenticate with Gmail |
| useUsername | boolean | required | Set true to authenticate with username |
Example Request
{
"password": "your_password",
"useGmail": true,
"useUsername": false,
"identifier": "user@example.com"
}
Responses
200
Success
{ "gmail": "...", "balance": 12500, "username": "john_doe", "key": "OWB_..." }
500
Server Error
{ "message": "Internal server error" }
curl -X POST https://owbbklive.pxxl.click/v1/auth/signin \
-H "Content-Type: application/json" \
-d '{
"password": "your_password",
"useGmail": true,
"useUsername": false,
"identifier": "user@example.com"
}'
const response = await fetch('https://owbbklive.pxxl.click/v1/auth/signin', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
password: 'your_password',
useGmail: true,
useUsername: false,
identifier: 'user@example.com'
})
});
const data = await response.json();
console.log(data.key); // your API key
String body = "{\"password\":\"your_password\",\"useGmail\":true," +
"\"useUsername\":false,\"identifier\":\"user@example.com\"}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://owbbklive.pxxl.click/v1/auth/signin"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();
HttpClient.newHttpClient()
.sendAsync(request, HttpResponse.BodyHandlers.ofString())
.thenApply(HttpResponse::body)
.thenAccept(System.out::println);
$ch = curl_init("https://owbbklive.pxxl.click/v1/auth/signin");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
"password" => "your_password",
"useGmail" => true,
"useUsername" => false,
"identifier" => "user@example.com"
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
echo $response;
import requests
resp = requests.post("https://owbbklive.pxxl.click/v1/auth/signin", json={
"password": "your_password",
"useGmail": True,
"useUsername": False,
"identifier": "user@example.com"
})
data = resp.json()
print("API Key:", data["key"])
POST
/buy/data
Purchase a data plan for MTN, Airtel, or GLO. Requires API key.
Authorization Header
apikey: Bearer YOUR_API_KEY
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| network | string | required | Network operator: mtn | airtel | glo |
| planId | integer | required | Plan ID from GET /plans |
| phone | string | required | 10-digit recipient phone number |
Responses
201
Purchase Successful
{ "message": "Purchase successful", "balance": 5380 }
401
Unauthorized
{ "message": "Please create an account or login" }
401
Insufficient Funds
{ "message": "Insufficient balance. You need ₦500 more to complete this purchase." }
500
Server Error
{ "message": "Something went wrong" }
curl -X POST https://owbbklive.pxxl.click/v1/buy/data \
-H "apikey: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"network":"mtn","planId":2,"phone":"9117624342"}'
const response = await fetch('https://owbbklive.pxxl.click/v1/buy/data', {
method: 'POST',
headers: {
'apikey': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ network: "mtn", planId: 2, phone: "9117624342" })
});
const data = await response.json();
console.log(data);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://owbbklive.pxxl.click/v1/buy/data"))
.header("apikey", "Bearer YOUR_API_KEY")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(
"{\"network\":\"mtn\",\"planId\":2,\"phone\":\"9117624342\"}"))
.build();
$ch = curl_init("https://owbbklive.pxxl.click/v1/buy/data");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"apikey: Bearer YOUR_API_KEY",
"Content-Type: application/json"
]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
"network" => "mtn",
"planId" => 2,
"phone" => "9117624342"
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$resp = curl_exec($ch);
import requests
headers = {"apikey": "Bearer YOUR_API_KEY"}
payload = {"network": "mtn", "planId": 2, "phone": "9117624342"}
r = requests.post("https://owbbklive.pxxl.click/v1/buy/data", json=payload, headers=headers)
print(r.status_code, r.json())
POST
/buy/airtime
Purchase airtime (VTU) for MTN, Airtel, or GLO. Requires API key.
Authorization Header
apikey: Bearer YOUR_API_KEY
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| network | string | required | Network operator: mtn | airtel | glo |
| amount | integer | required | Airtime amount in naira (₦) |
| phone | string | required | 10-digit recipient phone number |
Responses
201
Purchase Successful
{ "message": "Purchase successful", "balance": 5380 }
401
Insufficient Funds
{ "message": "Insufficient balance. You need ₦500 more to complete this purchase." }
401
Unauthorized
{ "message": "Please create an account or login" }
curl -X POST https://owbbklive.pxxl.click/v1/buy/airtime \
-H "apikey: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"network":"airtel","amount":50,"phone":"9117624342"}'
const response = await fetch('https://owbbklive.pxxl.click/v1/buy/airtime', {
method: 'POST',
headers: {
'apikey': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ network: "airtel", amount: 50, phone: "9117624342" })
});
const data = await response.json();
console.log(data);
String body = "{\"network\":\"airtel\",\"amount\":50,\"phone\":\"9117624342\"}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://owbbklive.pxxl.click/v1/buy/airtime"))
.header("apikey", "Bearer YOUR_API_KEY")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();
$ch = curl_init("https://owbbklive.pxxl.click/v1/buy/airtime");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"apikey: Bearer YOUR_API_KEY",
"Content-Type: application/json"
]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
"network" => "airtel",
"amount" => 50,
"phone" => "9117624342"
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
import requests
r = requests.post(
"https://owbbklive.pxxl.click/v1/buy/airtime",
json={"network": "airtel", "amount": 50, "phone": "9117624342"},
headers={"apikey": "Bearer YOUR_API_KEY"}
)
print(r.status_code, r.json())
GET
/buy/plans
Retrieve all available data plans for MTN, Airtel, and GLO. No authentication required.
Response 200
{
"mtn": [{
"networkId": 1,
"network": "mtn",
"data": "3GB",
"days": 6,
"id": 2,
"type": "sme",
"extra": "1.5GB night bonus"
}],
"airtel": [{
"networkId": 2,
"network": "airtel",
"data": "3GB",
"days": 6,
"id": 2,
"type": "CG"
}],
"glo": [{
"networkId": 3,
"network": "glo",
"data": "3GB",
"days": 6,
"id": 2,
"type": "gifting"
}]
}
curl -X GET https://owbbklive.pxxl.click/v1/buy/plans
const response = await fetch('https://owbbklive.pxxl.click/v1/buy/plans');
const plans = await response.json();
console.log(plans.mtn); // MTN plans
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://owbbklive.pxxl.click/v1/buy/plans"))
.GET()
.build();
HttpClient.newHttpClient()
.sendAsync(request, HttpResponse.BodyHandlers.ofString())
.thenApply(HttpResponse::body)
.thenAccept(System.out::println);
$plans = json_decode(
file_get_contents("https://owbbklive.pxxl.click/v1/buy/plans"),
true
);
import requests
plans = requests.get("https://owbbklive.pxxl.click/v1/buy/plans").json()
print(plans["mtn"]) # MTN plans
GET
/fund
Retrieve your current wallet balance in naira (₦). Requires API key.
Authorization Header
apikey: Bearer YOUR_API_KEY
Response 200
12000
The response is a plain integer representing your current NGN wallet balance, not a JSON object.
curl -X GET https://owbbklive.pxxl.click/v1/fund \
-H "apikey: Bearer YOUR_API_KEY"
const response = await fetch('https://owbbklive.pxxl.click/v1/fund', {
headers: { 'apikey': 'Bearer YOUR_API_KEY' }
});
const balance = await response.text();
console.log("Balance: ₦" + balance);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://owbbklive.pxxl.click/v1/fund"))
.header("apikey", "Bearer YOUR_API_KEY")
.GET()
.build();
HttpClient.newHttpClient()
.sendAsync(request, HttpResponse.BodyHandlers.ofString())
.thenApply(HttpResponse::body)
.thenAccept(b -> System.out.println("Balance: ₦" + b));
$ch = curl_init("https://owbbklive.pxxl.click/v1/fund");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["apikey: Bearer YOUR_API_KEY"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$balance = curl_exec($ch);
echo "Balance: ₦" . $balance;
import requests
resp = requests.get(
"https://owbbklive.pxxl.click/v1/fund",
headers={"apikey": "Bearer YOUR_API_KEY"}
)
print("Balance: ₦" + resp.text)