WebSocket Reference
user:notifications
User notification stream
The user:notifications channel delivers real-time in-app notifications to the authenticated user. Notifications cover trade confirmations, price alerts, copy trade events, market resolutions, and social activity.
Subscribe
{ "event": "subscribe", "data": { "channel": "user:notifications" } }Unsubscribe
{ "event": "unsubscribe", "data": { "channel": "user:notifications" } }Server Broadcast
{
"channel": "user:notifications",
"data": {
"id": "f1e2d3c4-b5a6-9780-fedc-ba0987654321",
"type": "order_filled",
"title": "Order Filled",
"message": "Your buy order for 100 YES shares on 'Will Bitcoin hit $100K?' was filled at $0.6723",
"read": false,
"marketId": "c5a2e7f1-3b4d-4e6a-8f9c-1d2e3f4a5b6c",
"actionUrl": "/market/will-bitcoin-hit-100k-by-june-2026",
"createdAt": "2026-03-27T14:30:05.000Z"
}
}Payload Schema
| Field | Type | Description |
|---|---|---|
id | string | Unique notification identifier (UUID) |
type | string | Notification type (see table below) |
title | string | Short notification title |
message | string | Human-readable notification body |
read | boolean | Whether the notification has been read (always false on delivery) |
marketId | string? | Related market ID, if applicable |
actionUrl | string? | Deep link URL for navigation on click |
createdAt | string | ISO 8601 timestamp |
Notification Types
| Type | Description |
|---|---|
order_filled | An order has been fully filled |
order_partially_filled | An order has been partially filled |
order_cancelled | An order was cancelled |
order_failed | An order submission failed |
price_alert | A configured price alert was triggered |
market_resolved | A market the user has a position in has resolved |
copy_trade_executed | A copy trade was automatically executed |
copy_trade_failed | A copy trade execution failed |
mission_completed | A mission was completed |
reward_earned | Points or rewards were earned |
streak_milestone | A login streak milestone was reached |
Notes
- This channel requires authentication. Only the authenticated user's notifications are delivered.
- Notifications arrive with
read: falseand must be marked as read via the REST API - The
actionUrlfield provides a client-side route for navigating to the relevant page - Notification preferences (which types to receive) are configurable in
UserPreferences - Push notifications to mobile devices are handled separately via the push-notification module and Expo Notifications