API Documentation

Complete guide to integrating with the Modern VTU Platform API. Get started with our comprehensive API to power your applications.

Getting Started

The Modern VTU Platform API allows you to integrate our services into your applications. All API requests should be made over HTTPS to our base URL:

https://api.modernvtu.com/v1

You'll need valid API credentials to authenticate your requests. Contact our support team to get started.

Authentication

All requests to the API must include an Authorization header with a Bearer token. Generate your API key from your dashboard settings.

Request Format

curl -X GET https://api.modernvtu.com/v1/balance \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json"

Response Format

{ "status": "success", "data": { "balance": 50000.00, "currency": "NGN" }, "timestamp": "2026-01-09T10:30:00Z" }

API Endpoints

Mobile Data

GET /data/plans

Get available data plans

POST /data/purchase

Purchase data for a phone number

Request Parameters

Parameter Type Description
phone string Customer phone number
network string Network: MTN, GLO, AIRTEL, 9MOBILE
plan_id integer Data plan ID from /data/plans

Airtime Recharge

GET /airtime/networks

Get available networks

POST /airtime/purchase

Purchase airtime

Request Parameters

Parameter Type Description
phone string Customer phone number
network string Network: MTN, GLO, AIRTEL, 9MOBILE
amount number Amount in Naira (NGN)

Cable TV

GET /cable/providers

Get available cable providers

POST /cable/validate

Validate smartcard number

POST /cable/purchase

Purchase cable TV subscription

Wallet

GET /wallet/balance

Get user wallet balance

POST /wallet/transfer

Transfer funds to another user

Transactions

GET /transactions

Get transaction history

GET /transactions/{id}

Get specific transaction details

Error Handling

The API uses standard HTTP status codes to indicate the success or failure of API requests.

Status Code Description
200 Success
400 Bad Request - Invalid parameters
401 Unauthorized - Invalid API key
403 Forbidden - No permission for resource
404 Not Found - Resource doesn't exist
429 Rate Limited - Too many requests
500 Server Error - Internal server error

Error Response Format

{ "status": "error", "message": "Invalid phone number", "code": "INVALID_PHONE", "timestamp": "2026-01-09T10:30:00Z" }

Rate Limiting

The API enforces rate limiting to ensure fair use and platform stability. Standard limits are:

  • 100 requests per minute for authenticated requests
  • 10 requests per minute for unauthenticated requests
  • 1000 requests per hour total per API key

Rate limit information is included in response headers: X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset.

Need Help?

Our API support team is here to help. Check our documentation, explore code examples, or reach out to our support team.