Integrate multi-channel notifications (Email, SMS, WhatsApp, Telegram, Facebook, Instagram) into your application with multi-tenant isolation, custom SMTP profiles, and production SDKs.
Log into your Simplex dashboard and generate an organization-scoped API key under Settings.
Connect your custom SMTP (SendGrid, Mailgun, Brevo, AWS SES, Gmail) in Settings & test connection.
Call /v1/messages/send with your recipient payload in JSON.
Messages transition automatically from queued → delivered with provider receipts.
Select your backend language for production-ready copy-paste integration snippets.
// Simplex Node.js / TypeScript Integration
import fetch from "node-fetch";
const SIMPLEX_URL = process.env.SIMPLEX_API_URL || "http://localhost:3300/v1";
const SIMPLEX_KEY = process.env.SIMPLEX_API_KEY!; // Scoped organization key
interface DispatchNotificationOptions {
channel: "email" | "sms" | "whatsapp" | "telegram" | "facebook" | "instagram";
to: Record<string, string>;
content?: string;
templateId?: string;
variables?: Record<string, string>;
subject?: string;
}
export async function sendNotification(options: DispatchNotificationOptions) {
const response = await fetch(`${SIMPLEX_URL}/messages/send`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": SIMPLEX_KEY,
},
body: JSON.stringify({
channel: options.channel,
to: options.to,
content: options.content,
template_id: options.templateId,
variables: options.variables,
metadata: options.subject ? { subject: options.subject } : undefined,
}),
});
if (!response.ok) {
const errorBody = await response.text();
throw new Error(`Simplex API error [${response.status}]: ${errorBody}`);
}
return await response.json();
}
// Example: Send an Email
const delivery = await sendNotification({
channel: "email",
to: { email: "sarah@company.com" },
content: "Hello Sarah, your enterprise account is now active!",
subject: "Account Confirmation",
});
console.log("Message queued with ID:", delivery.message_id);Select any channel to view its required recipient schema and example JSON dispatch payload.
Send transactional and lifecycle emails with custom SMTP or provider routing.
Required Recipient Object
"to": {"email": "customer@company.com"}Complete Dispatch Body
{
"channel": "email",
"to": {
"email": "customer@company.com"
},
"content": "Hello Alex, your order #8492 has been shipped and is on its way!",
"metadata": {
"subject": "Your Order #8492 Has Shipped",
"order_id": "8492"
}
}X-API-Key| Method | Endpoint Path | Description & Purpose |
|---|---|---|
| POST | /v1/messages/send | Dispatch a single notification across any of the 6 channels |
| POST | /v1/messages/send-bulk | Batch dispatch up to 500 notifications in a single request |
| GET | /v1/messages/:id | Retrieve delivery status, timestamps, and provider message receipt |
| GET | /v1/messages | List all deliveries scoped to your active organization |
| GET | /v1/templates | List reusable content templates with variable interpolation |
| POST | /v1/templates | Create a new centralized message template |
| GET | /v1/email-senders | List custom SMTP profiles configured for your organization |
| POST | /v1/email-senders | Register a new SMTP server profile (SendGrid, Mailgun, Brevo, AWS SES, Gmail) |
| POST | /v1/email-senders/:id/verify | Test SMTP authentication handshake and send live verification test email |
| POST | /v1/tenants/:id/activate | Switch active organization workspace context and retrieve active API key |
Create an organization account in seconds, configure your sender profiles, and start dispatching with 99.9% deliverability.