Ready to save on data, airtime & more?

Data bundles, airtime top-ups, wholesale & exam checkers, all in one place.

Buy Data Now
Airtide logoAirtide logoAirtide

Ghana's trusted platform for affordable data bundles, airtime top-ups, wholesale reselling & exam result checkers. Best prices, instant delivery.

Secure Payments
Instant Delivery

Data Bundles

  • MTN Data Bundles
  • Telecel Data Bundles
  • AirtelTigo Data Bundles

More Services

  • Agent Portal
  • Airtime Top-Up
  • Exam Checkers
  • Developer Docs

Quick Links

  • Track Order
  • About Us
  • Blog
  • FAQs
  • Refund Policy
  • Terms of Service
  • Privacy Policy

Contact Us

  • Support CenterSend a detailed request
  • 7:00 AM to 9:00 PMDaily support hours
  • Accra, Ghana

© 2024–2026 Airtide. All rights reserved.

Built by Codiantix

We accept
MoMoCardCrypto

Developer

Airtide API Documentation

Build your own data reselling business with our REST API. Our high-performance API allows you to Purchase data bundles for MTN, Telecel, and AirtelTigo and buy exam checker cards programmatically using your wallet balance. Fulfillment is powered by our infrastructure for reliable delivery across all supported networks.

Get API KeySign in to manage keys

Base URL: https://airtide.me/api/v1/external

Introduction

The Airtide API lets resellers integrate MTN, Telecel, and AirtelTigo data bundles plus BECE/WAEC result checker cards into websites or apps.

  • RESTful JSON endpoints
  • Wallet-based purchases (fund wallet on Airtide first)
  • Agent accounts receive agent-tier API pricing automatically
  • Server-side requests only (never expose your API key in browsers)

Authentication

Include your secret API key in every request:

Header
X-API-KEY: at_live_your_secret_key
Content-Type: application/json

Create and manage keys in Dashboard → API Access.

Get Bundles

GET/bundles

Returns bundles with your API prices. Optional query: network = mtn, telecel, airteltigo, airteltigo_bigtime.

Request
curl -X GET "https://airtide.me/api/v1/external/bundles?network=mtn" \
  -H "X-API-KEY: your_key"
Response
{
  "status": "success",
  "data": [
    {
      "id": "mtn-1024-0",
      "network": "mtn",
      "name": "1GB",
      "volume": "1GB",
      "volumeInMB": 1024,
      "price": 5.50,
      "validity": "Non-expiry"
    }
  ]
}

Check Pricing

POST/get-cost-price
Body
{
  "networkType": "mtn",
  "volumeInMB": 1024
}
Response
{
  "status": "success",
  "volume": "1024MB",
  "network": "mtn",
  "api_price": "5.50",
  "currency": "GHS"
}

Purchase Data

POST/buy-data

Debits your wallet and places the order. Use a unique ref for idempotency.

Body
{
  "ref": "MY_ORDER_001",
  "phone": "0551234567",
  "volumeInMB": 1024,
  "networkType": "mtn"
}

Alternative fields: phoneNumber, network, capacity (GB). Phone must be 10 digits (Ghana).

Success response
{
  "status": "success",
  "message": "Order placed successfully",
  "data": {
    "reference": "AD-XXXX-XXXX",
    "client_reference": "MY_ORDER_001",
    "status": "pending",
    "amount": 5.50,
    "balance": "144.50"
  }
}

Wallet Balance

GET/wallet-balance
Response
{
  "status": "success",
  "message": "Wallet balance retrieved successfully",
  "data": {
    "balance": "150.00",
    "currency": "GHS"
  }
}

Orders

GET/orders

Query params: page, per_page, ref, status, network, phone, start_date, end_date, service_type.

Example
curl -H "X-API-KEY: your_key" \
  "https://airtide.me/api/v1/external/orders?status=completed&page=1"

Order Status

GET/order-status/:ref

Look up by platform reference (AD-...) or your client ref.

Exam Checkers

GET/exam-checkers/types

List BECE/WAEC types, prices, and stock.

POST/exam-checkers/purchase
Body
{ "type": "bece", "ref": "EXAM_001" }

Returns pin and serial immediately on success.

GET/exam-checkers/orders

Purchase history for exam cards via API.

Webhooks

Configure an HTTPS endpoint in API Access. We POST JSON with header X-Airtide-Signature (HMAC-SHA256 of the body using your webhook secret).

Events: order.pending, order.processing, order.completed, order.failed, exam_card.purchased.

Payload example
{
  "event": "order.completed",
  "timestamp": "2026-06-03T12:00:00.000Z",
  "data": {
    "reference": "AD-XXXX",
    "client_reference": "MY_ORDER_001",
    "status": "completed",
    "amount": 5.50
  }
}

Rate Limits

limits per API key:

  • 60 requests per minute
  • 15 requests per 10 seconds (burst)

When exceeded, HTTP 429 is returned with retry_after in seconds.

Errors

Errors use status: "error" and a message field.

Example
{
  "status": "error",
  "message": "Insufficient wallet balance.",
  "data": { "balance": "2.00", "required": 5.50 }
}

Common codes: 400 validation, 401 invalid key, 403 account inactive, 404 not found, 429 rate limit, 503 API disabled.