eSMS AfricaeSMS Africa
Getting Started

Quickstart

Send your first email or SMS in under 5 minutes.

Send an email via API

1. Get an API key

Log in to send.esmsafrica.io, go to Settings → API Keys, and create a new key. Copy the key — it starts with esms_k_.

2. Add a domain

Go to Domains and add your domain (e.g. example.com). Follow the DNS setup instructions to add SPF, DKIM, and verification records.

If you want to test immediately, you can send from @send.esmsafrica.io using the default sender.

3. Send an email

cURL
curl -X POST https://send.esmsafrica.io/v1/emails/ \
  -H "Authorization: Bearer esms_k_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "from": {"email": "hello@yourdomain.com", "name": "Your App"},
    "to": [{"email": "user@example.com"}],
    "subject": "Hello from eSMS Mail",
    "html": "<h1>It works!</h1><p>Your first email via eSMS Mail.</p>"
  }'

The response includes an email id and status. The email is queued and sent within seconds.

Response
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "queued",
  "message_id": "<abc123@send.esmsafrica.io>"
}

Send an SMS via API

1. Get an HTTP API key

Log in to app.esmsafrica.io, go to your profile, and copy your HTTP API Key.

2. Top up your wallet

SMS is billed per message from a prepaid wallet. Top up via the Billing section using Pesapal or Flutterwave.

3. Send an SMS

cURL
curl -X POST https://app.esmsafrica.io/api/sms/send \
  -H "X-Account-ID: your_account_id" \
  -H "X-API-Key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "phoneNumber": "+254712345678",
    "text": "Hello from eSMS Africa!",
    "senderId": "eSMS"
  }'
Response
{
  "status": "success",
  "messageId": "msg_abc123",
  "message": "SMS queued for delivery"
}

What's next?

On this page