The Message Object
General Message Object
The message object will consists of a few key components: Message, Member (Author) and Reply. The example below shows a "pure" message object that has been simplified.
- The
roomvalue consists ofgroupId-categoryId-channelId. editedMsgIdis used to update/edit your existing messagesreplyMsgIdis the target message id you want to reply to.timestampis set by the servermessageIdis set by the server as well.replyis also set by the serverreactionsis set by the server as well and include message emoji reactions
{
"author": {
"id": "114755069684",
},
"room": "0-0-0",
"message": "<p>test</p>",
"group": "0",
"category": "0",
"channel": "0",
"editedMsgId": null,
"replyMsgId": null,
"timestamp": 1766532617968,
"messageId": "174363723585",
"reply": {
messageId: null,
},
"reactions": {}
}Member Object
The message object will automatically include the message author's info.
idis set by the server and is the user's server/account idonboardingis a flag set by the server and used internallynicknameis currently unusediconis the user's profile picturebanneris the user banner that can be seen on the profilejoinedis a unix timestamp in milisecondslastOnlineis also a unix timestamp in milisecondspublicKeyis optional and may not be present for all memberscoloris based on the member's highest roleisVerifiedKeyconfirms the member has the correct private key too via challenge
{
"author": {
"id": "114755069684",
"onboarding": true,
"name": "Angel™",
"nickname": null,
"status": "cool ass dev",
"aboutme": "",
"icon": "/uploads/upload_121720495513_icon_peak.png",
"banner": "/img/default_banner.png",
"joined": 1756051863924,
"isOnline": true,
"lastOnline": 1766556653927,
"isBanned": false,
"isMuted": false,
"publicKey": "public key if available",
"isVerifiedKey": true,
"color": "#ff0000"
},
"room": "0-0-1356",
"message": "<p>test reply</p>",
"group": "0",
"category": "0",
"channel": "1356",
"editedMsgId": null,
"replyMsgId": "140914346248",
"timestamp": 1766556639785,
"messageId": "169812525145",
"reply": {
"messageId": null,
}
,
"reactions": {}
}Reaction Object
The reactions object will store all reactions a message has and will be made of several keys as array being based of the emoji hash and the member ids of who reacted to it.
94222e03429a03c44b5c5d7de644ef3fad5083f41c8cad2bd3f507852d55365b: The emoji hash/emoji used to react to the message114755069684: One example member id of who used the emoji with the has above to react to this message.
Each array for a specific reaction can have multiple entries for the different members that reacted with the same emoji.
{
"author": {
"id": "114755069684",
},
"room": "0-0-1356",
"message": "<p>test reply</p>",
"group": "0",
"category": "0",
"channel": "1356",
"editedMsgId": null,
"replyMsgId": "140914346248",
"timestamp": 1766556639785,
"messageId": "169812525145",
"reply": {
"messageId": null,
},
"reactions": {
"94222e03429a03c44b5c5d7de644ef3fad5083f41c8cad2bd3f507852d55365b": [
"114755069684"
]
},
}Reply Object
When replying to a message, the reply object will include the object of the message you're replying too and the corresponding member (author) object. In this example i replied to myself. Its the same as above, with the message and member object.
NOTE
To avoid nested structures, any further replies will only feature the reply.messageId rather than the object.
{
"author": {
"id": "114755069684",
},
"room": "0-0-1356",
"message": "<p>test reply</p>",
"group": "0",
"category": "0",
"channel": "1356",
"editedMsgId": null,
"replyMsgId": "140914346248",
"timestamp": 1766556639785,
"messageId": "169812525145",
"reply": {
"author": {
"id": "114755069684",
"onboarding": true,
"name": "Angel™",
"nickname": null,
"status": "cool ass dev",
"aboutme": "",
"icon": "/uploads/upload_121720495513_icon_peak.png",
"banner": "/img/default_banner.png",
"joined": 1756051863924,
"isOnline": true,
"lastOnline": 1766556653927,
"isBanned": false,
"isMuted": false,
"publicKey": "public key if available",
"isVerifiedKey": true,
"color": "#ff0000"
},
"room": "0-0-1356",
"message": "<p>test</p>",
"group": "0",
"category": "0",
"channel": "1356",
"editedMsgId": null,
"replyMsgId": null,
"timestamp": 1766556635343,
"messageId": "140914346248",
"reply": {
"messageId": null
}
},
"reactions": {}
}Full example
The following object is the complete JSON object of a message thats replying to another message.
{
"author": {
"id": "114755069684",
"onboarding": true,
"name": "Angel™",
"nickname": null,
"status": "cool ass dev",
"aboutme": "",
"icon": "/uploads/upload_121720495513_icon_peak.png",
"banner": "/img/default_banner.png",
"joined": 1756051863924,
"isOnline": true,
"lastOnline": 1766556653927,
"isBanned": false,
"isMuted": false,
"publicKey": "public key if available",
"isVerifiedKey": true,
"color": "#ff0000"
},
"room": "0-0-1356",
"message": "<p>test reply</p>",
"group": "0",
"category": "0",
"channel": "1356",
"editedMsgId": null,
"replyMsgId": "140914346248",
"timestamp": 1766556639785,
"messageId": "169812525145",
"reply": {
"author": {
"id": "114755069684",
"onboarding": true,
"name": "Angel™",
"nickname": null,
"status": "cool ass dev",
"aboutme": "",
"icon": "/uploads/upload_121720495513_icon_peak.png",
"banner": "/img/default_banner.png",
"joined": 1756051863924,
"isOnline": true,
"lastOnline": 1766556653927,
"isBanned": false,
"isMuted": false,
"publicKey": "public key if available",
"isVerifiedKey": true,
"color": "#ff0000"
},
"room": "0-0-1356",
"message": "<p>test</p>",
"group": "0",
"category": "0",
"channel": "1356",
"editedMsgId": null,
"replyMsgId": null,
"timestamp": 1766556635343,
"messageId": "140914346248",
"reply": {
"messageId": null
}
},
"reactions": {
"94222e03429a03c44b5c5d7de644ef3fad5083f41c8cad2bd3f507852d55365b": [
"114755069684"
]
},
}