notify

Send a notification

Fan out one notification to up to 500 recipients. Requires a Notify subscription: without one the call is refused with 403 NOTIFY_SUBSCRIPTION_REQUIRED. Supply send_id to make retries safe — the call is idempotent on it within the account.

post/products/notify/send

Request body

send_idstring

Idempotency key, unique within the account. Server-generated (ntsnd_…) when omitted. Replaying one returns the original send with idempotent: true and fans out nothing further.

delivery'sealed' | 'plaintext'

Sealed hands the recipient a pointer to encrypted content behind the policy. Plaintext puts the body inline: no ceremony, no ingot, at most 50 recipients, and only over in_app, push, web_push, or email.

channelsstring[]

Overrides the account config channel resolution; order is the escalation order, and duplicates collapse to their first position. Naming a channel that is not on this list is rejected with 400 VALIDATION_ERROR quoting the bad value and the valid set: naming channels states an intent, so a typo has to be heard about rather than dropped into a ladder you never asked for. Channels resolved from the account CONFIG are filtered silently instead — they are validated on write, and a standing default must never break a live send.

titlestring

Channel-agnostic display title. Longer titles are truncated, not rejected.

categorystring required

Required. One of the account configured categories, or a preset: alert, secure, conversation, approval, signature. It decides whether the recipient may mute the send, whether it is on the compliance floor, whether it must seal, which channel ladder resolves, and whether its email may offer a one-click unsubscribe. Omitting it returns 400 naming the categories this account accepts.

typestring

Free-form display type, carried through untouched.

instructionsstring

Non-secret text shown alongside a sealed send. Never the sealed content itself.

history_ttl_daysinteger

Inbox-row retention. Falls back to the account history config, then 30. Plaintext rows are capped at 7 days.

Response

Send accepted and queued for fan-out.

Changes

No recorded changes to this endpoint across all 1 revision of this API.