Email API
Transactional email over HTTP — powered by Ladill Bird
Authentication
All requests use the base URL https://ladill.com/api
and a Bearer API key. Create a key in bird.ladill.com after verifying your sending domain. Keys begin with
lsk_live_.
Authorization: Bearer lsk_live_your_key
Send an email
/smtp/send
Send an email from an address on your verified domain. Provide an html body, a text body, or both.
Parameters
from
|
string required | Sender address — must use your verified domain. |
from_name
|
string optional | Display name for the sender. |
to
|
string[] required | Array of recipient addresses (1–50). |
subject
|
string required | Email subject (max 255 chars). |
html
|
string optional | HTML body. Required if text is omitted. |
text
|
string optional | Plain-text body. Required if html is omitted. |
reply_to
|
string optional | Reply-To address. |
curl -X POST https://ladill.com/api/smtp/send \
-H "Authorization: Bearer lsk_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"from": "hello@yourdomain.com",
"from_name": "Your Brand",
"to": ["customer@example.com"],
"subject": "Welcome aboard",
"html": "<h1>Hello</h1><p>Thanks for joining.</p>"
}'
{
"success": true,
"message_id": "a1b2c3d4-…@bird.ladill.com",
"balance_ghs": 24.80
}
Errors
Errors use standard HTTP status codes with a JSON error message.
401 |
Invalid or missing API key. |
402 |
Insufficient wallet balance — top up to continue. |
422 |
Validation failed (missing or invalid parameters). |
429 |
Rate limit exceeded — retry after the seconds in retry_after. |
500 |
Send failed at the provider — safe to retry; charges are refunded. |
Ready to grow your business?
Join hundreds of businesses running everything on Ladill — payments, storefronts, QR codes, email, SMS, and more, all from one account. Get set up in minutes.
No credit card required • Free to start • 24/7 support