Skip to content

One API for notificationsacross your entire stack

Define events + templates in the dashboard. Send from code. Track delivery IDs in Activity.

How it works ​

  1. Create an event with templates for each channel in the dashboard
  2. Call the API — POST /v1/send/{event} — Sendivent selects a channel
  3. Get a delivery ID — track status in Activity or query the API

Quick Example ​

typescript
import { Sendivent } from '@appitude/sendivent';

const client = new Sendivent(process.env.SENDIVENT_API_KEY);

const res = await client
    .event('welcome')
    .to('user@example.com')
    .payload({ name: 'Alice' })
    .send();

// { email: "550e8400-e29b-41d4-a716-446655440000" }
console.log(res.data);
php
use Sendivent\Sendivent;

$client = new Sendivent(getenv('SENDIVENT_API_KEY'));

$res = $client
    ->event('welcome')
    ->to('user@example.com')
    ->payload(['name' => 'Alice'])
    ->send();

// { "email": "550e8400-e29b-41d4-a716-446655440000" }
print_r($res->data);
python
import os
from sendivent import Sendivent

client = Sendivent(os.environ['SENDIVENT_API_KEY'])

res = client \
    .event('welcome') \
    .to('user@example.com') \
    .payload({'name': 'Alice'}) \
    .send()

# { "email": "550e8400-e29b-41d4-a716-446655440000" }
print(res.data)
bash
curl -X POST https://api.sendivent.com/v1/send/welcome \
  -H "Authorization: Bearer $SENDIVENT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "to": "user@example.com", "payload": { "name": "Alice" } }'

# { "success": true, "deliveries": [{ "email": "550e8400-..." }] }

The response shows which channel was used and the delivery ID for tracking.

Next steps ​

  • Quickstart — Send your first notification in 5 minutes
  • Events — How events map to templates
  • Routing — Auto-routing vs forcing a channel
  • Deliveries — Track status and debug failures

Released under the MIT License.