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 -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.
{
"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 -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"
}'{
"status": "success",
"messageId": "msg_abc123",
"message": "SMS queued for delivery"
}