Reference
Every endpoint, every package, and what the words mean.
All documentation
Getting started
Overview Quickstart SDK packagesFrontend
React Vue Svelte React Native Web Components Headless & theming Real-timeBackend API
Authentication Templates Trigger & status Contacts & preferencesMore
Self-hosting ReferenceEndpoints
| Route | Credential | What it does |
|---|---|---|
POST /v1/notifications | Service key | Trigger an event for 1–100 recipients |
GET /v1/notifications/{event_id} | Service key | Delivery status for one event |
POST /v1/contacts | Service key | Create or update a contact |
POST /v1/contacts/tokens | Service key | Mint a contact token |
GET /v1/contacts/{id}/notifications | Contact token | The contact's inbox |
GET /v1/contacts/{id}/preferences | Either | The preference matrix |
PUT /v1/contacts/{id}/preferences | Either | Set one type × channel preference |
PUT /v1/contacts/{id}/language | Either | Set the preferred language |
A contact token may only ever act as its own contact. A service key may act as any contact in its account.
Packages
- API base:
https://api.elaan.io/v1(self-hosted installs use their own host) - npm:
@elaanio/react,@elaanio/vue,@elaanio/svelte,@elaanio/react-native,@elaanio/elements,@elaanio/react-core,@elaanio/core - SDK source & issues: github.com/ThingsIDoForLove/elaan-js
- Console: console.elaan.io, where you create notification types, templates, brands, and service keys.
Glossary
- Notification type: a kind of message ("order shipped"), carrying its per-channel defaults. Referenced everywhere by its key.
- Template: the content for one type on one channel, optionally per brand and per language.
- Brand: a named set of values (name, colour, logo URL) a template renders against. Every account has exactly one default.
- Contact: a recipient, addressed by your own
external_id. - Event: one trigger for one recipient, with its own id and its own delivery status.
- Channel: in-app inbox, email, or push.