Appearance
Notifications API
Send a notification by calling an event. Sendivent selects a channel automatically (Routing), or you can force one.
Endpoints
POST /v1/send/{event}— auto-routingPOST /v1/send/{event}/{channel}— force channel (email,sms,slack,push,telegram,whatsapp,discord)
Request body
| Field | Type | Required | Description |
|---|---|---|---|
to | string | object | array | Yes | Recipient(s). See Contacts. |
payload | object | No | Template variables (available as {{key}}). |
language | string | No | Language code (en, sv, de). |
overrides | object | No | Channel overrides and brand overrides. See Email, SMS. |
from | string | object | No | Custom sender. Must be verified. |
If Sendivent can't route (missing identifier, missing template, or unverified sender), the request fails. See Routing, Email, and Errors.
Responses
Success (200)
json
{
"success": true,
"deliveries": [
{ "email": "550e8400-e29b-41d4-a716-446655440000" }
]
}The key (email, sms, slack, push, telegram, whatsapp, discord) is the channel used. The value is the delivery ID.
See Deliveries to track status.
Multiple recipients
When to is an array, each recipient gets a separate delivery with their own personalized content:
json
{
"to": [
{ "email": "alice@example.com", "name": "Alice" },
{ "email": "bob@example.com", "name": "Bob" }
],
"payload": { "company": "ACME" }
}Each contact's data is merged with payload for template rendering — Alice sees "Hi Alice" and Bob sees "Hi Bob".
Examples & SDKs
For copy-paste recipes and language-specific usage:
- Examples — Common patterns (welcome, password reset, 2FA, invoices, Slack alerts)
- Node.js SDK | Python SDK | PHP SDK
Errors
Errors return a non-2xx status and a JSON body with an error field.
See Errors for status codes and examples.
See also
- Events — how events map to templates
- Routing — how auto-routing selects a channel
- Contacts — supported
toformats and metadata - Templates — variables and helpers
- Deliveries — tracking status and failures