v1.0 · Live

YansDataHub API

Programmatically purchase and deliver mobile data bundles across Ghana's major networks — MTN, Telecel, and AirtelTigo — directly from your application.

REST API · JSON
Ghana (GHS)
Auto network detection
Base URL
https://yansdatahub.com/utils/api-deliver.php

All endpoints are relative to this base URL. Every response is JSON with a success boolean field.

Authentication

The API uses two credentials available from your API Keys dashboard. Pass them as HTTP request headers — never in the URL.

🔑 API Key

For read-only endpoints: packages, orders, status.

X-API-Key: YDH_XXXXXXXXXXX
🔐 API Secret

For sensitive operations: placing orders, wallet access.

X-API-Secret: yourSecretKey
⚠️ Never expose your API Secret in frontend code or public repositories. It grants full order-placing access to your wallet.
Supported Networks

Network is automatically detected from the phone number — you never need to specify it. All Ghana number prefixes are supported.

MTN · 024 054 055 059 025 Telecel · 020 050 AirtelTigo · 027 057 026 056

Networks like iShare and BigTime (which run on the AirtelTigo infrastructure) share the same AT prefixes and are handled automatically.

Error Codes

All errors return a JSON body with "success": false and a human-readable message.

HTTP CodeMeaningCommon Cause
200OKSuccessful request
201CreatedOrder placed successfully
401UnauthorizedMissing, invalid, or expired API key / secret
402Payment RequiredWallet balance too low — top up and retry
403ForbiddenAccount suspended
404Not FoundEndpoint or order reference not found
422UnprocessableValidation failed — check field values
500Server ErrorInternal error — contact support
Error Response Example
{ "success": false, "message": "Insufficient wallet balance.", "balance": 2.50, "required": 5.00, "currency": "GHS" }
Health Check
GET /health No Auth
Check if the API and database are online.
Request
GET https://yansdatahub.com/utils/api-deliver.php/health
Response · 200 OK
{ "success": true, "status": "online", "database": "ok", "time": "2026-03-12 10:00:00", "version": "1.0" }
Get Packages
GET /packages API Key
Returns all active data packages. Filter by network using query param.
Query Parameters
NameTypeDescription
networkoptionalstringFilter by network code: MTN, TELECEL, AT
Request
GET /utils/api-deliver.php/packages?network=MTN X-API-Key: YDH_XXXXXXXXXXX
Response · 200 OK
{ "success": true, "count": 4, "packages": [ { "id": 1, "package_name": "MTN 1GB Monthly", "data_volume": "1GB", "validity_period": 30, "validity_type": "monthly", "base_price": "5.00", "network_name": "MTN", "network_code": "MTN" } ] }
Check Wallet
GET /wallet API Secret
Returns your current wallet balance in GHS.
Request
GET /utils/api-deliver.php/wallet X-API-Secret: yourSecretKey
Response · 200 OK
{ "success": true, "balance": 125.50, "currency": "GHS", "account": "Yaw Mensah", "email": "yaw@example.com" }
Get Orders
GET /orders API Key
Paginated list of your orders. Filter by status.
Query Parameters
NameTypeDescription
pageoptionalintegerPage number. Default: 1
limitoptionalintegerResults per page. Default: 20 · Max: 100
statusoptionalstringpending · processing · completed · failed · cancelled
Request
GET /utils/api-deliver.php/orders?page=1&limit=10&status=completed X-API-Key: YDH_XXXXXXXXXXX
Response · 200 OK
{ "success": true, "count": 10, "total": 47, "page": 1, "total_pages": 5, "orders": [ { "order_number": "ORD-A1B2C3D4-123", "beneficiary_phone": "0241234567", "package_name": "MTN 1GB Monthly", "data_volume": "1GB", "selling_price": "5.00", "order_status": "completed", "delivery_status": "delivered", "network_name": "MTN", "created_at": "2026-03-12 10:00:00" } ] }
Order Status
GET /order/{reference} API Key
Fetch a single order by order number or transaction reference.
Path Parameter
NameTypeDescription
referencerequiredstringThe order_number (e.g. ORD-A1B2C3-123) or transaction_reference returned when the order was placed
Request
GET /utils/api-deliver.php/order/ORD-A1B2C3D4-123 X-API-Key: YDH_XXXXXXXXXXX
Response · 200 OK
{ "success": true, "order": { "order_number": "ORD-A1B2C3D4-123", "beneficiary_phone": "0241234567", "package_name": "MTN 1GB Monthly", "data_volume": "1GB", "selling_price": "5.00", "payment_status": "completed", "order_status": "completed", "delivery_status": "delivered", "delivery_reference": "DLV-XYZ789", "network_name": "MTN", "created_at": "2026-03-12 10:00:00", "completed_at": "2026-03-12 10:00:45" } }
Place Order
POST /order API Secret
Place a single data order. Network auto-detected from phone number. Wallet debited instantly.
💡 size is a plain number — no units. Use 1 for 1GB, 2 for 2GB, 0.5 for 500MB.
Request Body
FieldTypeDescription
phonerequiredstringBeneficiary's Ghana number. Accepts 0241234567 or +233241234567
sizerequirednumberData volume as a plain number. No "GB" or "MB" suffix.
Request
POST /utils/api-deliver.php/order X-API-Secret: yourSecretKey Content-Type: application/json { "phone": "0241234567", "size": "1" }
Response · 201 Created
{ "success": true, "order_number": "ORD-A1B2C3D4-123", "reference": "API-1710234567-abc123", "phone": "0241234567", "network": "MTN", "package": "MTN 1GB Monthly", "size": "1GB", "amount_charged": 5.00, "balance_after": 120.50, "currency": "GHS", "delivery_status": "processing", "message": "Order placed and delivery initiated." }
Bulk Order
POST /bulk-order API Secret
Place up to 50 orders in one request. Total cost deducted upfront. Each order delivered independently.
Request Body
FieldTypeDescription
ordersrequiredarrayArray of order objects. Maximum 50 items per request.
orders[].phonerequiredstringBeneficiary's Ghana phone number
orders[].sizerequirednumberData volume as a plain number (no units)
Request
POST /utils/api-deliver.php/bulk-order X-API-Secret: yourSecretKey Content-Type: application/json { "orders": [ { "phone": "0241234567", "size": "1" }, { "phone": "0201234567", "size": "2" }, { "phone": "0271234567", "size": "5" } ] }
Response · 201 Created
{ "success": true, "bulk_reference": "BULK-1710234567-abc123", "total_items": 3, "successful": 3, "failed": 0, "total_charged": 22.00, "balance_after": 103.50, "currency": "GHS", "orders": [ { "phone": "0241234567", "network": "MTN", "size": "1GB", "order_number": "ORD-A1B2C3D4-123", "amount": 5.00, "delivery": "processing", "success": true } ] }