Skip to main content
POST
Ingest a notification event

Authorizations

Authorization
string
header
required

Enter your JWT token in the format: Bearer

Body

Inbound payload from other services posting a notification event.

Example: { "source_service": "assignment-service", "notification_type": "task.assigned", "actor_id": "uuid", "recipient_ids": ["uuid-1"], "title": "New task assigned to you", "body": "STORY-123 has been assigned to you", "data": {"task_id": "uuid", "entity_reference": "STORY-123"}, "entity_type": "task", "entity_id": "uuid", "channels": ["websocket", "email"], "recipient_meta_map": { "uuid-1": {"email": "user@example.com", "phone": "+254700000000"} } }

Example (Vibe47 content, push): { "source_service": "digi-content", "notification_type": "episode.published", "actor_id": "uuid", "recipient_ids": ["uuid-1"], "title": "New episode of Nairobi Nights", "body": "S2E4", "data": {"show_id": "uuid"}, "entity_type": "episode", "entity_id": "uuid", "channels": ["push"] }

For "push", entity_type/entity_id are mapped to content_ref/content_id in the FCM data payload (see notifications.services.channels.push.PushChannel) and delivered to the recipient's registered device tokens.

source_service
string
required
Required string length: 1 - 64
notification_type
string
required
Required string length: 1 - 64
recipient_ids
string<uuid>[]
required
Minimum array length: 1
title
string
required
Required string length: 1 - 255
actor_id
string<uuid> | null
body
string
default:""
data
object
entity_type
string
default:""
Maximum string length: 64
entity_id
string<uuid> | null
channels
enum<string>[] | null
  • websocket - websocket
  • email - email
  • sms - sms
  • push - push
Available options:
websocket,
email,
sms,
push
recipient_meta_map
object

Maps recipient_id (str) → {email, phone}. Required for email/SMS channel delivery.

Response

201 - application/json
success
boolean
required
message
string
required
data
object
required