Signal · AsyncAPI Specification
Signal Server Real-Time Events
Version 2.0
The Signal Server real-time messaging interface provides WebSocket connections for persistent, bidirectional communication between Signal clients and the server. When a client has an active WebSocket connection, encrypted messages are delivered in real-time through that connection. For offline clients, the server sends push notifications via APNs (Apple) or FCM (Google) to alert the client to connect and retrieve pending messages. The WebSocket protocol also supports keepalive pings, provisioning of new linked devices, and contact discovery operations.
View Spec
View on GitHub
EncryptionMessagingSecurityCryptographyOpen SourcePrivacyAsyncAPIWebhooksEvents
Channels
/v1/websocket
Receive real-time messages from the server
The primary authenticated WebSocket channel for real-time message delivery, receipt confirmations, and typing indicators. Clients maintain a persistent connection on this channel to receive encrypted messages as they arrive. The server uses a request-response framing protocol over the WebSocket where both sides can initiate requests.
/v1/websocket/provisioning
Receive provisioning messages during device linking
The provisioning WebSocket channel used during the device linking flow. A new device connects to this channel and receives a provisioning UUID. The primary device then sends an encrypted provisioning message containing the account identity key and other credentials needed to complete the linking process.
/push/apns
Send push notification to iOS device
Apple Push Notification Service channel for delivering push notifications to iOS devices when they are not connected via WebSocket. Notifications alert the device to connect to the server and retrieve pending messages.
/push/fcm
Send push notification to Android device
Firebase Cloud Messaging channel for delivering push notifications to Android devices when they are not connected via WebSocket. Notifications alert the device to connect and retrieve pending messages.
Messages
MessageEnvelope
Encrypted Message Envelope
An encrypted message envelope containing a Signal Protocol message.
ReceiptMessage
Delivery or Read Receipt
A receipt message confirming delivery or read status of a previously sent message.
TypingIndicator
Typing Indicator
A typing indicator showing that a contact is currently composing a message.
StorySendMessage
Story Send Message
A message containing a story post sent by a contact.
WebSocketRequestMessage
WebSocket Request
A request message sent over the WebSocket connection using the Signal WebSocket framing protocol.
WebSocketResponseMessage
WebSocket Response
A response message sent over the WebSocket connection acknowledging a previous request.
ProvisioningUUID
Provisioning UUID Assignment
The server assigns a provisioning UUID to a new device during the device linking process.
ProvisioningMessage
Encrypted Provisioning Message
An encrypted provisioning message from the primary device containing account credentials for the new linked device.
PushNotification
Push Notification
A push notification sent to an offline device to alert it of pending messages.
Servers
wss
production
wss://chat.signal.org/v1/websocket/
Signal production WebSocket server for authenticated real-time messaging. Clients establish a persistent WebSocket connection after authentication to receive messages in real-time.
wss
provisioning
wss://chat.signal.org/v1/websocket/provisioning/
Signal provisioning WebSocket server used during the device linking process. New devices connect to receive provisioning messages from the primary device.