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)
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 (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) 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