Get desktop application:
View/edit binary Protocol Buffers messages
Provides methods for sending "unsealed sender" messages.
Retrieve messages for the authenticated device. When the caller receives and successfully processes a message returned in a GetMessagesResponse they must send a corresponding GetMessagesRequest indicating that the message has been processed (an ack). Acks should only be sent for messages delivered via the currently open RPC. Only the first GetMessagesRequest may contain request parameters that configure the stream. The first request must not contain an ack. The server will keep the stream open until the client disconnects. Only one GetMessages stream may be open per device. If a second GetMessages stream is opened, the server may terminate any of the streams with a STREAM_CLOSED error reason. A GetMessagesStreamClosed message will be present in the error details.
Configuration options for the message stream. Required for the first request of the stream, forbidden on subsequent reqeusts.
The server_guid of an envelope previously returned in a GetMessagesResponse that has been successfully processed by the caller. Forbidden on the first request of the stream, required on subsequent requests.
A message. On successful receipt of an envelope the caller should ack the envelope by sending a GetMessagesRequest with the envelope's server guid. Acks should only be sent for envelopes received on the currently open RPC.
An indicator that all outstanding messages for the device have been drained and acked by the client. The stream will remain open and continue to deliver newly arrived messages.
Sends an "unsealed sender" message to all devices linked to a single destination account. The destination account must not be the same as the authenticated caller. Callers should use `SendSyncMessage` to send messages to themselves.
The service identifier of the account to which to deliver the message.
If true, this message will only be delivered to destination devices that have an active message delivery channel with a Signal server.
Indicates whether this message is urgent and should trigger a high-priority notification if the destination device does not have an active message delivery channel with a Signal server
The messages to send to the destination account.
Sends a "sync" message to all other devices linked to the authenticated sender's account.
Indicates whether this message is urgent and should trigger a high-priority notification if the destination device does not have an active message delivery channel with a Signal server
The messages to send to the destination account.
Provides methods for sending "sealed sender" messages.
Sends a "sealed sender" message with a common payload to all devices linked to multiple destination accounts.
If true, this message will only be delivered to destination devices that have an active message delivery channel with a Signal server.
Indicates whether this message is urgent and should trigger a high-priority notification if the destination device does not have an active message delivery channel with a Signal server
The multi-recipient message to send to all destination accounts and devices.
A group send endorsement token for the destination account.
Sends a story message with a common payload to devices linked to devices linked to multiple destination accounts.
Indicates whether this message is urgent and should trigger a high-priority notification if the destination device does not have an active message delivery channel with a Signal server
The multi-recipient story message to send to all destination accounts and devices.
Sends a "sealed sender" message to all devices linked to a single destination account. If this RPC is authorized with an unidentified access key, it will fail with an authorization failure if the credential is invalid OR if the destination account was not found. If it is authorized using a group send token, it will fail with an authorization failure if the credential is invalid and with an destination not found error if the account does not exist
The service identifier of the account to which to deliver the message.
If true, this message will only be delivered to destination devices that have an active message delivery channel with a Signal server.
Indicates whether this message is urgent and should trigger a high-priority notification if the destination device does not have an active message delivery channel with a Signal server
The messages to send to the destination account.
A means to authorize the request.
The unidentified access key (UAK) for the destination account.
A group send endorsement token for the destination account.
The destination account allows unrestricted unidentified access
Sends a story message to devices linked to a single destination account.
The service identifier of the account to which to deliver the message.
Indicates whether this message is urgent and should trigger a high-priority notification if the destination device does not have an active message delivery channel with a Signal server
The messages to send to the destination account.
Used in:
An opaque token identifying this challenge request. Clients must generally submit this token when submitting a challenge response.
A list of challenge types callers may choose to complete to resolve the challenge requirement. May be empty, in which case callers cannot resolve the challenge by any means other than waiting.
A duration (in seconds) after which the challenge requirement may be resolved by simply waiting. May not be set if the challenge cannot be resolved by waiting.
Used in:
A challenge that callers can fulfill by completing a captcha.
A challenge that callers can fulfill by supplying a token delivered via push notification.
Used in:
If present and true, the server will not deliver any messages with the story flag set. This flag may only be set on the first GetMessagesRequest sent from the client to the server in an RPC stream.
The reason why a GetMessages RPC is being closed by the server.
Another caller has opened a GetMessages stream for the same device.
Used in: , , , ,
The time, in milliseconds since the epoch, at which this message was originally sent from the perspective of the sender. Note that the maximum allowable timestamp for JavaScript clients is less than Long.MAX_VALUE; see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#the_epoch_timestamps_and_invalid_date for additional details and discussion.
A map of device IDs to individual messages. Generally, callers must include one message for each device linked to the destination account. In cases of "sync messages" where a sender is distributing information to other devices linked to the sender's account, senders may omit a message for the sending device.
A message for an individual device linked to a destination account.
Used in:
The registration ID for the destination device.
The content of the message to deliver to the destination device.
256 KiB
The message type of the message. If this message is part of an unidentified send, this must be UNIDENTIFIED_SENDER
Used in: , , ,
The service identifier to which the devices named in this object are linked.
A list of device IDs that are linked to the destination account, but were not included in the collection of messages bound for the destination account.
A list of device IDs that were included in the collection of messages bound for the destination account, but are not currently linked to the destination account.
A list of device IDs that present in the collection of messages bound for the destination account and are linked to the destination account, but have a different registration ID than the registration ID presented by the sender (indicating that the destination device has likely been replaced by another device).
Used in: ,
The time, in milliseconds since the epoch, at which this message was originally sent from the perspective of the sender. Note that the maximum allowable timestamp for JavaScript clients is less than Long.MAX_VALUE; see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#the_epoch_timestamps_and_invalid_date for additional details and discussion.
The serialized multi-recipient message payload.
256 KiB payload + (5000 * 100) of overhead
Used in:
A list of sets of discrepancies between the destination devices identified in a request to send a message and the devices that are actually linked to a destination account.
Used in:
A list of destination service identifiers that could not be resolved to registered Signal accounts. The message in the original request was sent to all service identifiers/devices in the original request except for the destination devices associated with the service identifiers in this list.
Used as response type in: Messages.SendMessage, Messages.SendSyncMessage
The outcome of the message delivery
The message was successfully delivered to all destination devices
A list of discrepancies between the destination devices identified in a request to send a message and the devices that are actually linked to an account.
A description of a challenge callers must complete before sending additional messages.
The destination account did not exist
Used as response type in: MessagesAnonymous.SendSingleRecipientMessage, MessagesAnonymous.SendStory
The outcome of the message delivery
The message was successfully delivered to all destination devices
A list of discrepancies between the destination devices identified in a request to send a message and the devices that are actually linked to an account.
The provided unidentified authorization credential was invalid
The destination account did not exist
Used in:
A double-ratchet message represents a "normal," "unsealed-sender" message encrypted using the Double Ratchet within an established Signal session.
A prekey message begins a new Signal session. The `content` of a prekey message is a superset of a double-ratchet message's `content` and contains the sender's identity public key and information identifying the pre-keys used in the message's ciphertext.
A plaintext message is used solely to convey encryption error receipts and never contains encrypted message content. Encryption error receipts must be delivered in plaintext because encryption/decryption of a prior message failed and there is no reason to believe that encryption/decryption of subsequent messages with the same key material would succeed. Critically, plaintext messages never have "real" message content generated by users. Plaintext messages include sender information.
An unidentified sender message is an encrypted message. No other information about the type of the encrypted message is known to the server. Unidenitfied sender messages require an unidentified access token or a group send endorsement token to prove the unidentified sender is authorized to send messages to the destination.
Used as response type in: MessagesAnonymous.SendMultiRecipientMessage, MessagesAnonymous.SendMultiRecipientStory
The outcome of the message delivery
The message was sent to at least some of the destination accounts/devices identified in the original request.
A list of sets of discrepancies between the destination devices identified in a request to send a message and the devices that are actually linked to a destination account.
The provided unidentified authorization credential was invalid