Click Airtime

Version 2 API Overview

Modern REST API for sending airtime top-ups programmatically with API key authentication and standardized responses.

Version 2 API

The Click Airtime V2 API provides a clean, RESTful interface for sending airtime top-ups to 600+ networks in 140+ countries. Built for enterprise integrations with API key authentication and pre-funded wallets.

Base URL

https://api.clickairtime.com/v2

Authentication

All V2 API requests require an API key, generated from the Enterprise Portal. Include it as a Bearer token:

Authorization: Bearer ce_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

API keys use the ce_live_ prefix. Keep your keys secret — they grant direct access to your wallet balance.

Response Format

All responses follow a standardized envelope:

Success

{
  "success": true,
  "data": { ... },
  "meta": {
    "request_id": "req_a1b2c3d4e5f6",
    "timestamp": "2024-01-15T10:30:00.000Z"
  }
}

Success with Pagination

{
  "success": true,
  "data": [ ... ],
  "meta": {
    "request_id": "req_a1b2c3d4e5f6",
    "timestamp": "2024-01-15T10:30:00.000Z",
    "pagination": {
      "page": 1,
      "per_page": 20,
      "total": 150,
      "total_pages": 8,
      "has_next": true,
      "has_prev": false
    }
  }
}

Error

{
  "success": false,
  "error": {
    "code": "INSUFFICIENT_BALANCE",
    "message": "Your wallet balance is too low for this transaction.",
    "details": {}
  },
  "meta": {
    "request_id": "req_a1b2c3d4e5f6",
    "timestamp": "2024-01-15T10:30:00.000Z"
  }
}

Endpoints

MethodEndpointDescription
GET/v2/catalog/lookupLook up products for a phone number or network
GET/v2/catalog/countriesList supported countries and networks
GET/v2/catalog/networksList networks by country
GET/v2/catalog/productsList products for a network
POST/v2/topupsSend an airtime top-up
GET/v2/topupsList topup history
GET/v2/topups/:idGet topup status
GET/v2/balanceGet all wallet balances
GET/v2/balance/:wallet_idGet a specific wallet's balance

Duplicate Prevention

Duplicate transactions are handled automatically. If you submit the same phone number, network, and amount within a short time window, the API returns the existing transaction instead of creating a duplicate.

Webhooks

Pass a callback_url when creating a topup to receive real-time status notifications via HTTP webhooks. See the Webhooks page for details on event types, signature verification, and retry behavior.

Rate Limits

TierLimit
Standard60 requests/minute
Burst1,000 requests/hour

Rate limit headers are included in every response:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Reset: 1705312260