Your reliable email API service
Send transactional emails via a simple REST API. Authenticate with an API key and send HTML emails to one or more recipients.
URL: POST https://mailer.panoramaapps.com/api/email
Method: POST
Content-Type: application/json
Send your API key in the Authorization header. Contact admin@panoramaapps.com to get your API key.
Authorization: YOUR_API_KEY
All fields are required. The email body must be sent as Base64-encoded HTML in encodedHtml.
| Field | Type | Description |
|---|---|---|
toEmails | array of strings | Recipient email addresses |
from | string | Sender address (e.g. "Name <user@domain.com>") |
subject | string | Email subject (max 998 characters) |
encodedHtml | string | Base64-encoded HTML body |
{
"toEmails": ["recipient@example.com"],
"from": "ABC Company <no-reply@abc.com>",
"subject": "Your order confirmation",
"encodedHtml": "PGh0bWw+PGJvZHk+PGgxPkhlbGxvPC9oMT48L2JvZHk+PC9odG1sPg=="
}
Encode your HTML string as Base64 before sending. Examples:
JavaScript (Node or browser):
const html = '<h1>Hello</h1><p>Welcome.</p>';
const encodedHtml = Buffer.from(html, 'utf-8').toString('base64'); // Node
// or: const encodedHtml = btoa(unescape(encodeURIComponent(html))); // Browser
Shell (e.g. in curl):
echo -n '<h1>Hello</h1>' | base64
curl -X POST https://mailer.panoramaapps.com/api/email \
-H "Content-Type: application/json" \
-H "Authorization: YOUR_API_KEY" \
-d '{
"toEmails": ["customer@example.com"],
"from": "My App <no-reply@myapp.com>",
"subject": "Welcome",
"encodedHtml": "PGh0bWw+PGJvZHk+PGgxPldlbGNvbWUhPC9oMT48L2JvZHk+PC9odG1sPg=="
}'
{
"success": true,
"response": {
"messageId": "<unique-id@host>",
"accepted": ["recipient@example.com"],
"rejected": []
}
}
400 Bad Request — Validation error (e.g. invalid email, missing field, invalid Base64):
{
"statusCode": 400,
"statusMessage": "Validation Error...",
"data": [ { "field": "encodedHtml", "message": "..." } ]
}
401 Unauthorized — Missing or invalid API key:
{
"statusCode": 401,
"statusMessage": "Unauthorized",
"message": "Invalid API Key"
}
500 Internal Server Error — Server or delivery error.
Need help? Reach out at support@panoramaapps.com