Introduction
Professional API documentation for AmjadData users.
This documentation aims to provide all the information you need to work with our API.
<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right.</aside>
Authenticating requests
To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
Please include your API token in the Authorization header as a Bearer token.
General
Handle Airtime Purchase POST /api/airtime
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/airtime" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"network\": \"architecto\",
\"amount\": 4326.41688,
\"phone\": \"82256977571\",
\"airtime_type\": \"Awoof\",
\"ref\": \"architecto\"
}"
const url = new URL(
"http://localhost:8000/api/airtime"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"network": "architecto",
"amount": 4326.41688,
"phone": "82256977571",
"airtime_type": "Awoof",
"ref": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/airtime';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'network' => 'architecto',
'amount' => 4326.41688,
'phone' => '82256977571',
'airtime_type' => 'Awoof',
'ref' => 'architecto',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/airtime'
payload = {
"network": "architecto",
"amount": 4326.41688,
"phone": "82256977571",
"airtime_type": "Awoof",
"ref": "architecto"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
access-control-allow-origin: *
{
"status": "fail",
"msg": "Authorization token not found 6g43cv8PD1aE5beadkZfhV6"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Handle Data Purchase POST /api/data
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/data" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"network\": \"architecto\",
\"phone\": \"82256977571\",
\"data_plan\": \"architecto\",
\"ref\": \"architecto\"
}"
const url = new URL(
"http://localhost:8000/api/data"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"network": "architecto",
"phone": "82256977571",
"data_plan": "architecto",
"ref": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/data';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'network' => 'architecto',
'phone' => '82256977571',
'data_plan' => 'architecto',
'ref' => 'architecto',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/data'
payload = {
"network": "architecto",
"phone": "82256977571",
"data_plan": "architecto",
"ref": "architecto"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 58
access-control-allow-origin: *
{
"status": "fail",
"msg": "Authorization token not found 6g43cv8PD1aE5beadkZfhV6"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Register a new user POST /api/v1/auth/register
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/auth/register" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"first_name\": \"b\",
\"last_name\": \"n\",
\"email\": \"ashly64@example.com\",
\"phone\": \"vdljnikhwaykcmyu\",
\"password\": \"Xaz<m5L[)~=NG5a\",
\"state\": \"l\",
\"type\": 2
}"
const url = new URL(
"http://localhost:8000/api/v1/auth/register"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"first_name": "b",
"last_name": "n",
"email": "ashly64@example.com",
"phone": "vdljnikhwaykcmyu",
"password": "Xaz<m5L[)~=NG5a",
"state": "l",
"type": 2
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/auth/register';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'first_name' => 'b',
'last_name' => 'n',
'email' => 'ashly64@example.com',
'phone' => 'vdljnikhwaykcmyu',
'password' => 'Xaz<m5L[)~=NG5a',
'state' => 'l',
'type' => 2,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/auth/register'
payload = {
"first_name": "b",
"last_name": "n",
"email": "ashly64@example.com",
"phone": "vdljnikhwaykcmyu",
"password": "Xaz<m5L[)~=NG5a",
"state": "l",
"type": 2
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 5
x-ratelimit-remaining: 4
access-control-allow-origin: *
{
"status": "success",
"message": "Registration successful. Please check your email for the verification code.",
"data": {
"email": "ashly64@example.com",
"expires_at": "2026-01-28T22:38:57.127130Z"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Verify OTP for email verification or password reset POST /api/v1/auth/verify-otp
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/auth/verify-otp" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"email\": \"gbailey@example.net\",
\"otp\": \"architecto\",
\"purpose\": \"registration\"
}"
const url = new URL(
"http://localhost:8000/api/v1/auth/verify-otp"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"email": "gbailey@example.net",
"otp": "architecto",
"purpose": "registration"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/auth/verify-otp';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'email' => 'gbailey@example.net',
'otp' => 'architecto',
'purpose' => 'registration',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/auth/verify-otp'
payload = {
"email": "gbailey@example.net",
"otp": "architecto",
"purpose": "registration"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (422):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 5
x-ratelimit-remaining: 3
access-control-allow-origin: *
{
"message": "The selected email is invalid.",
"errors": {
"email": [
"The selected email is invalid."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Resend OTP code POST /api/v1/auth/resend-otp
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/auth/resend-otp" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"email\": \"gbailey@example.net\",
\"purpose\": \"password_reset\"
}"
const url = new URL(
"http://localhost:8000/api/v1/auth/resend-otp"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"email": "gbailey@example.net",
"purpose": "password_reset"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/auth/resend-otp';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'email' => 'gbailey@example.net',
'purpose' => 'password_reset',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/auth/resend-otp'
payload = {
"email": "gbailey@example.net",
"purpose": "password_reset"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (422):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 5
x-ratelimit-remaining: 2
access-control-allow-origin: *
{
"message": "The selected email is invalid.",
"errors": {
"email": [
"The selected email is invalid."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Login user POST /api/v1/auth/login
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/auth/login" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"identifier\": \"architecto\",
\"password\": \"|]|{+-\"
}"
const url = new URL(
"http://localhost:8000/api/v1/auth/login"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"identifier": "architecto",
"password": "|]|{+-"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/auth/login';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'identifier' => 'architecto',
'password' => '|]|{+-',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/auth/login'
payload = {
"identifier": "architecto",
"password": "|]|{+-"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 5
x-ratelimit-remaining: 1
access-control-allow-origin: *
{
"status": "error",
"message": "Invalid credentials"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Request password reset POST /api/v1/auth/forgot-password
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/auth/forgot-password" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"email\": \"gbailey@example.net\"
}"
const url = new URL(
"http://localhost:8000/api/v1/auth/forgot-password"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"email": "gbailey@example.net"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/auth/forgot-password';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'email' => 'gbailey@example.net',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/auth/forgot-password'
payload = {
"email": "gbailey@example.net"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 5
x-ratelimit-remaining: 0
access-control-allow-origin: *
{
"status": "success",
"message": "If that email address exists, we have sent a password reset link."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Request password reset via OTP POST /api/v1/auth/forgot-password-otp
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/auth/forgot-password-otp" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"email\": \"gbailey@example.net\"
}"
const url = new URL(
"http://localhost:8000/api/v1/auth/forgot-password-otp"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"email": "gbailey@example.net"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/auth/forgot-password-otp';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'email' => 'gbailey@example.net',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/auth/forgot-password-otp'
payload = {
"email": "gbailey@example.net"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (429):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"status": "fail",
"msg": "Too Many Requests"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Reset password with token POST /api/v1/auth/reset-password
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/auth/reset-password" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"token\": \"architecto\",
\"email\": \"zbailey@example.net\",
\"password\": \"-0pBNvYgxw\"
}"
const url = new URL(
"http://localhost:8000/api/v1/auth/reset-password"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"token": "architecto",
"email": "zbailey@example.net",
"password": "-0pBNvYgxw"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/auth/reset-password';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'token' => 'architecto',
'email' => 'zbailey@example.net',
'password' => '-0pBNvYgxw',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/auth/reset-password'
payload = {
"token": "architecto",
"email": "zbailey@example.net",
"password": "-0pBNvYgxw"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (429):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"status": "fail",
"msg": "Too Many Requests"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Reset password using OTP POST /api/v1/auth/reset-password-otp
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/auth/reset-password-otp" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"email\": \"gbailey@example.net\",
\"otp\": \"architecto\",
\"password\": \"]|{+-0pBNvYg\"
}"
const url = new URL(
"http://localhost:8000/api/v1/auth/reset-password-otp"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"email": "gbailey@example.net",
"otp": "architecto",
"password": "]|{+-0pBNvYg"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/auth/reset-password-otp';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'email' => 'gbailey@example.net',
'otp' => 'architecto',
'password' => ']|{+-0pBNvYg',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/auth/reset-password-otp'
payload = {
"email": "gbailey@example.net",
"otp": "architecto",
"password": "]|{+-0pBNvYg"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (429):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"status": "fail",
"msg": "Too Many Requests"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get authenticated user's profile GET /api/v1/account/profile
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/account/profile" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost:8000/api/v1/account/profile"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/account/profile';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/account/profile'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update authenticated user's profile PUT /api/v1/account/profile
requires authentication
Example request:
curl --request PUT \
"http://localhost:8000/api/v1/account/profile/update" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"first_name\": \"b\",
\"last_name\": \"n\",
\"state\": \"g\",
\"email\": \"rowan.gulgowski@example.com\"
}"
const url = new URL(
"http://localhost:8000/api/v1/account/profile/update"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"first_name": "b",
"last_name": "n",
"state": "g",
"email": "rowan.gulgowski@example.com"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/account/profile/update';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'first_name' => 'b',
'last_name' => 'n',
'state' => 'g',
'email' => 'rowan.gulgowski@example.com',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/account/profile/update'
payload = {
"first_name": "b",
"last_name": "n",
"state": "g",
"email": "rowan.gulgowski@example.com"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get wallet balance GET /api/v1/wallet/balance
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/wallet/balance" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost:8000/api/v1/wallet/balance"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/wallet/balance';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/wallet/balance'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get wallet transactions with filters and pagination GET /api/v1/wallet/transactions
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/wallet/transactions" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"status\": \"1\",
\"service\": \"b\",
\"date_from\": \"2026-01-28T22:28:57\",
\"date_to\": \"2052-02-21\",
\"page\": 22,
\"per_page\": 7
}"
const url = new URL(
"http://localhost:8000/api/v1/wallet/transactions"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"status": "1",
"service": "b",
"date_from": "2026-01-28T22:28:57",
"date_to": "2052-02-21",
"page": 22,
"per_page": 7
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/wallet/transactions';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'status' => '1',
'service' => 'b',
'date_from' => '2026-01-28T22:28:57',
'date_to' => '2052-02-21',
'page' => 22,
'per_page' => 7,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/wallet/transactions'
payload = {
"status": "1",
"service": "b",
"date_from": "2026-01-28T22:28:57",
"date_to": "2052-02-21",
"page": 22,
"per_page": 7
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, json=payload)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Initialize wallet funding POST /api/v1/wallet/fund
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/wallet/fund" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"amount\": 95,
\"provider\": \"monnify\",
\"email\": \"zbailey@example.net\",
\"callback_url\": \"https:\\/\\/www.gulgowski.com\\/nihil-accusantium-harum-mollitia-modi-deserunt\"
}"
const url = new URL(
"http://localhost:8000/api/v1/wallet/fund"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"amount": 95,
"provider": "monnify",
"email": "zbailey@example.net",
"callback_url": "https:\/\/www.gulgowski.com\/nihil-accusantium-harum-mollitia-modi-deserunt"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/wallet/fund';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'amount' => 95,
'provider' => 'monnify',
'email' => 'zbailey@example.net',
'callback_url' => 'https://www.gulgowski.com/nihil-accusantium-harum-mollitia-modi-deserunt',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/wallet/fund'
payload = {
"amount": 95,
"provider": "monnify",
"email": "zbailey@example.net",
"callback_url": "https:\/\/www.gulgowski.com\/nihil-accusantium-harum-mollitia-modi-deserunt"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get transactions list (alias to wallet/transactions) GET /api/v1/transactions
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/transactions" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"status\": \"2\",
\"service\": \"b\",
\"date_from\": \"2026-01-28T22:28:57\",
\"date_to\": \"2052-02-21\",
\"page\": 22,
\"per_page\": 7
}"
const url = new URL(
"http://localhost:8000/api/v1/transactions"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"status": "2",
"service": "b",
"date_from": "2026-01-28T22:28:57",
"date_to": "2052-02-21",
"page": 22,
"per_page": 7
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/transactions';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'status' => '2',
'service' => 'b',
'date_from' => '2026-01-28T22:28:57',
'date_to' => '2052-02-21',
'page' => 22,
'per_page' => 7,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/transactions'
payload = {
"status": "2",
"service": "b",
"date_from": "2026-01-28T22:28:57",
"date_to": "2052-02-21",
"page": 22,
"per_page": 7
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, json=payload)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get transaction by reference with ownership enforcement GET /api/v1/transactions/{transref}
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/transactions/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost:8000/api/v1/transactions/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/transactions/architecto';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/transactions/architecto'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get transaction status (lightweight polling endpoint) GET /api/v1/transactions/{transref}/status
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/transactions/architecto/status" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost:8000/api/v1/transactions/architecto/status"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/transactions/architecto/status';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/transactions/architecto/status'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Purchase Airtime POST /api/v1/services/airtime
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/services/airtime/purchase" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"network\": \"architecto\",
\"amount\": 22,
\"phone\": \"82256977571\",
\"airtime_type\": \"Momo\",
\"ref\": \"architecto\",
\"ported_number\": \"true\"
}"
const url = new URL(
"http://localhost:8000/api/v1/services/airtime/purchase"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"network": "architecto",
"amount": 22,
"phone": "82256977571",
"airtime_type": "Momo",
"ref": "architecto",
"ported_number": "true"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/services/airtime/purchase';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'network' => 'architecto',
'amount' => 22,
'phone' => '82256977571',
'airtime_type' => 'Momo',
'ref' => 'architecto',
'ported_number' => 'true',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/services/airtime/purchase'
payload = {
"network": "architecto",
"amount": 22,
"phone": "82256977571",
"airtime_type": "Momo",
"ref": "architecto",
"ported_number": "true"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Purchase Data Bundle POST /api/v1/services/data
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/services/data/purchase" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"network\": \"architecto\",
\"data_plan\": 16,
\"phone\": \"82256977571\",
\"ref\": \"architecto\",
\"ported_number\": \"true\",
\"plan\": 16,
\"mobile_number\": \"82256977571\"
}"
const url = new URL(
"http://localhost:8000/api/v1/services/data/purchase"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"network": "architecto",
"data_plan": 16,
"phone": "82256977571",
"ref": "architecto",
"ported_number": "true",
"plan": 16,
"mobile_number": "82256977571"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/services/data/purchase';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'network' => 'architecto',
'data_plan' => 16,
'phone' => '82256977571',
'ref' => 'architecto',
'ported_number' => 'true',
'plan' => 16,
'mobile_number' => '82256977571',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/services/data/purchase'
payload = {
"network": "architecto",
"data_plan": 16,
"phone": "82256977571",
"ref": "architecto",
"ported_number": "true",
"plan": 16,
"mobile_number": "82256977571"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Verify Electricity Meter POST /api/v1/services/electricity/verify
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/services/electricity/verify" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"meter_number\": \"architecto\",
\"disco\": \"architecto\",
\"meter_type\": \"postpaid\"
}"
const url = new URL(
"http://localhost:8000/api/v1/services/electricity/verify"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"meter_number": "architecto",
"disco": "architecto",
"meter_type": "postpaid"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/services/electricity/verify';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'meter_number' => 'architecto',
'disco' => 'architecto',
'meter_type' => 'postpaid',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/services/electricity/verify'
payload = {
"meter_number": "architecto",
"disco": "architecto",
"meter_type": "postpaid"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Purchase Electricity Token POST /api/v1/services/electricity
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/services/electricity/purchase" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"meter_number\": \"architecto\",
\"disco\": \"architecto\",
\"meter_type\": \"prepaid\",
\"amount\": 22,
\"ref\": \"architecto\"
}"
const url = new URL(
"http://localhost:8000/api/v1/services/electricity/purchase"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"meter_number": "architecto",
"disco": "architecto",
"meter_type": "prepaid",
"amount": 22,
"ref": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/services/electricity/purchase';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'meter_number' => 'architecto',
'disco' => 'architecto',
'meter_type' => 'prepaid',
'amount' => 22,
'ref' => 'architecto',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/services/electricity/purchase'
payload = {
"meter_number": "architecto",
"disco": "architecto",
"meter_type": "prepaid",
"amount": 22,
"ref": "architecto"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Verify Cable TV Smart Card POST /api/v1/services/cable/verify
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/services/cable/verify" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"smartcard_number\": \"architecto\",
\"provider\": \"startimes\"
}"
const url = new URL(
"http://localhost:8000/api/v1/services/cable/verify"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"smartcard_number": "architecto",
"provider": "startimes"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/services/cable/verify';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'smartcard_number' => 'architecto',
'provider' => 'startimes',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/services/cable/verify'
payload = {
"smartcard_number": "architecto",
"provider": "startimes"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Purchase Cable TV Subscription POST /api/v1/services/cable
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/services/cable/purchase" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"smartcard_number\": \"architecto\",
\"provider\": \"startimes\",
\"package_code\": \"architecto\",
\"amount\": 22,
\"ref\": \"architecto\"
}"
const url = new URL(
"http://localhost:8000/api/v1/services/cable/purchase"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"smartcard_number": "architecto",
"provider": "startimes",
"package_code": "architecto",
"amount": 22,
"ref": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/services/cable/purchase';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'smartcard_number' => 'architecto',
'provider' => 'startimes',
'package_code' => 'architecto',
'amount' => 22,
'ref' => 'architecto',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/services/cable/purchase'
payload = {
"smartcard_number": "architecto",
"provider": "startimes",
"package_code": "architecto",
"amount": 22,
"ref": "architecto"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Purchase Exam Pins POST /api/v1/services/exam-pins
requires authentication
Note: Exam pins route to LegacyFallbackProvider which returns PROCESSING status for manual fulfillment by administrators.
Example request:
curl --request POST \
"http://localhost:8000/api/v1/services/exam-pins/purchase" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"exam_type\": \"waec\",
\"quantity\": 16,
\"amount\": 22,
\"ref\": \"architecto\"
}"
const url = new URL(
"http://localhost:8000/api/v1/services/exam-pins/purchase"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"exam_type": "waec",
"quantity": 16,
"amount": 22,
"ref": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/services/exam-pins/purchase';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'exam_type' => 'waec',
'quantity' => 16,
'amount' => 22,
'ref' => 'architecto',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/services/exam-pins/purchase'
payload = {
"exam_type": "waec",
"quantity": 16,
"amount": 22,
"ref": "architecto"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get all networks GET /api/v1/catalog/networks
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/catalog/networks" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost:8000/api/v1/catalog/networks"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/catalog/networks';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/catalog/networks'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"status": "success",
"data": [
{
"id": 1,
"name": "MTN",
"status": "active",
"service_statuses": {
"vtu": "active",
"sme": "active",
"gifting": "active",
"corporate": "active",
"datapin": "active"
}
},
{
"id": 2,
"name": "GLO",
"status": "active",
"service_statuses": {
"vtu": "active",
"sme": "active",
"gifting": "active",
"corporate": "active",
"datapin": "active"
}
},
{
"id": 3,
"name": "9MOBILE",
"status": "active",
"service_statuses": {
"vtu": "active",
"sme": "active",
"gifting": "active",
"corporate": "active",
"datapin": "active"
}
},
{
"id": 4,
"name": "AIRTEL",
"status": "active",
"service_statuses": {
"vtu": "active",
"sme": "active",
"gifting": "active",
"corporate": "active",
"datapin": "active"
}
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get data plans GET /api/v1/catalog/data-plans?network={id}&type={type}
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/catalog/data-plans" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost:8000/api/v1/catalog/data-plans"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/catalog/data-plans';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/catalog/data-plans'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"status": "success",
"data": [
{
"id": 77,
"name": "200MB",
"network_id": 2,
"network_name": "GLO",
"type": "Corporate",
"price": 6700,
"user_price": 7200,
"validity_days": 30,
"plan_id": "325"
},
{
"id": 78,
"name": "1GB",
"network_id": 1,
"network_name": "MTN",
"type": "SME2",
"price": 25400,
"user_price": 25900,
"validity_days": 30,
"plan_id": "333"
},
{
"id": 79,
"name": "2GB",
"network_id": 1,
"network_name": "MTN",
"type": "SME2",
"price": 50800,
"user_price": 51500,
"validity_days": 30,
"plan_id": "334"
},
{
"id": 80,
"name": "3GB",
"network_id": 1,
"network_name": "MTN",
"type": "SME2",
"price": 76200,
"user_price": 76900,
"validity_days": 30,
"plan_id": "335"
},
{
"id": 81,
"name": "500MB",
"network_id": 1,
"network_name": "MTN",
"type": "SME2",
"price": 12700,
"user_price": 13000,
"validity_days": 30,
"plan_id": "332"
},
{
"id": 82,
"name": "5GB",
"network_id": 1,
"network_name": "MTN",
"type": "SME2",
"price": 127000,
"user_price": 128500,
"validity_days": 30,
"plan_id": "336"
},
{
"id": 83,
"name": "10GB",
"network_id": 1,
"network_name": "MTN",
"type": "SME2",
"price": 254000,
"user_price": 256000,
"validity_days": 30,
"plan_id": "337"
},
{
"id": 233,
"name": "200MB",
"network_id": 2,
"network_name": "GLO",
"type": "coporate",
"price": 8500,
"user_price": 8500,
"validity_days": 30,
"plan_id": "233"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get all discos (electricity distribution companies) GET /api/v1/catalog/discos
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/catalog/discos" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost:8000/api/v1/catalog/discos"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/catalog/discos';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/catalog/discos'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"status": "success",
"data": [
{
"id": 1,
"name": "Ikeja Electric",
"abbreviation": "IE",
"status": "active"
},
{
"id": 2,
"name": "Eko Electric",
"abbreviation": "EKEDC",
"status": "active"
},
{
"id": 4,
"name": "Port Harcourt Electric",
"abbreviation": "PHEDC",
"status": "active"
},
{
"id": 6,
"name": "Ibadan Electric",
"abbreviation": "IBEDC",
"status": "active"
},
{
"id": 7,
"name": "Kaduna Electric",
"abbreviation": "KEDC",
"status": "active"
},
{
"id": 8,
"name": "Abuja Electric",
"abbreviation": "AEDC",
"status": "active"
},
{
"id": 9,
"name": "Enugu Electric",
"abbreviation": "ENUGU",
"status": "active"
},
{
"id": 10,
"name": "Benin Electric",
"abbreviation": "BENIN",
"status": "active"
},
{
"id": 11,
"name": "Yola Electric",
"abbreviation": "YOLA",
"status": "active"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get all cable providers GET /api/v1/catalog/cable-providers
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/catalog/cable-providers" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost:8000/api/v1/catalog/cable-providers"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/catalog/cable-providers';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/catalog/cable-providers'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"status": "success",
"data": [
{
"id": 1,
"name": "GOTV",
"status": "active"
},
{
"id": 2,
"name": "DSTV",
"status": "active"
},
{
"id": 3,
"name": "STARTIMES",
"status": "active"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get cable plans GET /api/v1/catalog/cable-plans?provider={id}
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/catalog/cable-plans" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost:8000/api/v1/catalog/cable-plans"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/catalog/cable-plans';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/catalog/cable-plans'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"status": "success",
"data": [
{
"id": 1,
"name": "GOtv Smallie - Monthly",
"provider_id": 1,
"provider_name": "GOTV",
"price": 135000,
"user_price": 140000,
"validity_days": 30,
"plan_id": "1"
},
{
"id": 2,
"name": "GOtv Smallie - Quarterly",
"provider_id": 1,
"provider_name": "GOTV",
"price": 350000,
"user_price": 356000,
"validity_days": 90,
"plan_id": "2"
},
{
"id": 3,
"name": "GOtv Smallie - Yearly",
"provider_id": 1,
"provider_name": "GOTV",
"price": 860000,
"user_price": 866000,
"validity_days": 365,
"plan_id": "3"
},
{
"id": 4,
"name": "GOtv Jinja",
"provider_id": 1,
"provider_name": "GOTV",
"price": 270000,
"user_price": 275000,
"validity_days": 30,
"plan_id": "4"
},
{
"id": 5,
"name": "GOtv Jolli",
"provider_id": 1,
"provider_name": "GOTV",
"price": 395000,
"user_price": 397000,
"validity_days": 30,
"plan_id": "5"
},
{
"id": 6,
"name": "GOtv Max",
"provider_id": 1,
"provider_name": "GOTV",
"price": 570000,
"user_price": 575000,
"validity_days": 30,
"plan_id": "6"
},
{
"id": 7,
"name": "GOtv Supa",
"provider_id": 1,
"provider_name": "GOTV",
"price": 760000,
"user_price": 765000,
"validity_days": 30,
"plan_id": "7"
},
{
"id": 8,
"name": "GOtv Super Plus",
"provider_id": 1,
"provider_name": "GOTV",
"price": 1255000,
"user_price": 1259000,
"validity_days": 30,
"plan_id": "8"
},
{
"id": 9,
"name": "DStv Padi",
"provider_id": 2,
"provider_name": "DSTV",
"price": 296000,
"user_price": 300000,
"validity_days": 30,
"plan_id": "9"
},
{
"id": 10,
"name": "DStv Yanga",
"provider_id": 2,
"provider_name": "DSTV",
"price": 420000,
"user_price": 425000,
"validity_days": 30,
"plan_id": "10"
},
{
"id": 11,
"name": "DStv Confam",
"provider_id": 2,
"provider_name": "DSTV",
"price": 740000,
"user_price": 745000,
"validity_days": 30,
"plan_id": "11"
},
{
"id": 12,
"name": "DStv Asia",
"provider_id": 2,
"provider_name": "DSTV",
"price": 995000,
"user_price": 999000,
"validity_days": 30,
"plan_id": "12"
},
{
"id": 13,
"name": "DStv Compact",
"provider_id": 2,
"provider_name": "DSTV",
"price": 1260000,
"user_price": 1270000,
"validity_days": 30,
"plan_id": "13"
},
{
"id": 14,
"name": "DStv Premium",
"provider_id": 2,
"provider_name": "DSTV",
"price": 2950000,
"user_price": 2955000,
"validity_days": 30,
"plan_id": "14"
},
{
"id": 15,
"name": "Nova - 1 Day",
"provider_id": 3,
"provider_name": "STARTIMES",
"price": 16000,
"user_price": 18000,
"validity_days": 1,
"plan_id": "15"
},
{
"id": 16,
"name": "Basic - 1 Day",
"provider_id": 3,
"provider_name": "STARTIMES",
"price": 31000,
"user_price": 32000,
"validity_days": 1,
"plan_id": "16"
},
{
"id": 17,
"name": "Classic - 1 Day",
"provider_id": 3,
"provider_name": "STARTIMES",
"price": 43000,
"user_price": 45000,
"validity_days": 1,
"plan_id": "17"
},
{
"id": 18,
"name": "Super - 1 Day",
"provider_id": 3,
"provider_name": "STARTIMES",
"price": 62000,
"user_price": 65000,
"validity_days": 1,
"plan_id": "18"
},
{
"id": 19,
"name": "Nova - 1 Week",
"provider_id": 3,
"provider_name": "STARTIMES",
"price": 65000,
"user_price": 70000,
"validity_days": 7,
"plan_id": "19"
},
{
"id": 20,
"name": "Basic - 1 Week",
"provider_id": 3,
"provider_name": "STARTIMES",
"price": 985105000,
"user_price": 110000,
"validity_days": 8,
"plan_id": "20"
},
{
"id": 21,
"name": "Smart - 1 Week",
"provider_id": 3,
"provider_name": "STARTIMES",
"price": 135000,
"user_price": 140000,
"validity_days": 8,
"plan_id": "21"
},
{
"id": 22,
"name": "Classic - 1 Week",
"provider_id": 3,
"provider_name": "STARTIMES",
"price": 155000,
"user_price": 160000,
"validity_days": 8,
"plan_id": "22"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get all exam types GET /api/v1/catalog/exam-types
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/catalog/exam-types" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://localhost:8000/api/v1/catalog/exam-types"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'http://localhost:8000/api/v1/catalog/exam-types';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'http://localhost:8000/api/v1/catalog/exam-types'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"status": "success",
"data": [
{
"id": 1,
"name": "WAEC",
"price": 350000,
"status": "active"
},
{
"id": 2,
"name": "NECO",
"price": 85000,
"status": "active"
},
{
"id": 3,
"name": "NABTEB",
"price": 95000,
"status": "active"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.