Attachments
Serves attached file
Method
| URI |
Protocol |
Method |
Authentication |
/attachment/{attachmentID}/original/{name} |
HTTP/S |
GET |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| download |
bool |
GET |
Force file download |
N/A |
NO |
| name |
string |
PATH |
File name |
N/A |
YES |
| attachmentID |
uint64 |
PATH |
Attachment ID |
N/A |
YES |
Serves preview of an attached file
Method
| URI |
Protocol |
Method |
Authentication |
/attachment/{attachmentID}/preview.{ext} |
HTTP/S |
GET |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| ext |
string |
PATH |
Preview extension/format |
N/A |
YES |
| attachmentID |
uint64 |
PATH |
Attachment ID |
N/A |
YES |
Channels
A channel is a representation of a sequence of messages. It has meta data like channel subject. Channels may be public, private or group.
List channels
Method
| URI |
Protocol |
Method |
Authentication |
/channels/ |
HTTP/S |
GET |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| query |
string |
GET |
Search query |
N/A |
NO |
Create new channel
Method
| URI |
Protocol |
Method |
Authentication |
/channels/ |
HTTP/S |
POST |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| name |
string |
POST |
Name of Channel |
N/A |
YES |
| topic |
string |
POST |
Subject of Channel |
N/A |
NO |
| type |
string |
POST |
Channel type |
N/A |
NO |
| members |
[]string |
POST |
Initial members of the channel |
N/A |
NO |
Update channel details
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID} |
HTTP/S |
PUT |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
| name |
string |
POST |
Name of Channel |
N/A |
NO |
| topic |
string |
POST |
Subject of Channel |
N/A |
NO |
| type |
string |
POST |
Channel type |
N/A |
NO |
| organisationID |
uint64 |
POST |
Move channel to different organisation |
N/A |
NO |
Update channel state
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID}/state |
HTTP/S |
PUT |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
| state |
string |
POST |
Valid values: delete, undelete, archive, unarchive |
N/A |
YES |
Read channel details
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID} |
HTTP/S |
GET |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
List channel members
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID}/members |
HTTP/S |
GET |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
Join channel
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID}/members/{userID} |
HTTP/S |
PUT |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
| userID |
uint64 |
PATH |
Member ID |
N/A |
NO |
Remove member from channel
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID}/members/{userID} |
HTTP/S |
DELETE |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
| userID |
uint64 |
PATH |
Member ID |
N/A |
NO |
Join channel
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID}/invite |
HTTP/S |
POST |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
| userID |
[]uint64 |
POST |
User ID |
N/A |
NO |
Attach file to channel
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID}/attach |
HTTP/S |
POST |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
| replyTo |
uint64 |
POST |
Upload as a reply |
N/A |
NO |
| upload |
*multipart.FileHeader |
POST |
File to upload |
N/A |
YES |
Messages
Messages represent individual messages in the chat system. Messages are typed, indicating the event which triggered the message.
Currently expected message types are:
| Name |
Description |
| CREATE |
The first message when the channel is created |
| TOPIC |
A member changed the topic of the channel |
| RENAME |
A member renamed the channel |
| MESSAGE |
A member posted a message to the channel |
| FILE |
A member uploaded a file to the channel |
The following event types may be sent with a message event:
| Name |
Description |
| CREATED |
A message has been created on a channel |
| EDITED |
A message has been edited by the sender |
| REMOVED |
A message has been removed by the sender |
Post new message to the channel
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID}/messages/ |
HTTP/S |
POST |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| message |
string |
POST |
Message contents (markdown) |
N/A |
YES |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
All messages (channel history)
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID}/messages/ |
HTTP/S |
GET |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| lastMessageID |
uint64 |
GET |
|
N/A |
NO |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
Edit existing message
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID}/messages/{messageID} |
HTTP/S |
PUT |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| messageID |
uint64 |
PATH |
Message ID |
N/A |
YES |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
| message |
string |
POST |
Message contents (markdown) |
N/A |
YES |
Delete existing message
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID}/messages/{messageID} |
HTTP/S |
DELETE |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| messageID |
uint64 |
PATH |
Message ID |
N/A |
YES |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
Returns all replies to a message
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID}/messages/{messageID}/replies |
HTTP/S |
GET |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| messageID |
uint64 |
PATH |
Message ID |
N/A |
YES |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
Reply to a message
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID}/messages/{messageID}/replies |
HTTP/S |
POST |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| messageID |
uint64 |
PATH |
Message ID |
N/A |
YES |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
| message |
string |
POST |
Message contents (markdown) |
N/A |
YES |
Mark message in channel (or thread) as unread
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID}/messages/{messageID}/unread |
HTTP/S |
POST |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| messageID |
uint64 |
PATH |
Message ID |
N/A |
YES |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
Pin message to channel (public bookmark)
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID}/messages/{messageID}/pin |
HTTP/S |
POST |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| messageID |
uint64 |
PATH |
Message ID |
N/A |
YES |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
Pin message to channel (public bookmark)
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID}/messages/{messageID}/pin |
HTTP/S |
DELETE |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| messageID |
uint64 |
PATH |
Message ID |
N/A |
YES |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
Bookmark a message (private bookmark)
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID}/messages/{messageID}/bookmark |
HTTP/S |
POST |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| messageID |
uint64 |
PATH |
Message ID |
N/A |
YES |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
Remove boomark from message (private bookmark)
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID}/messages/{messageID}/bookmark |
HTTP/S |
DELETE |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| messageID |
uint64 |
PATH |
Message ID |
N/A |
YES |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
React to a message
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID}/messages/{messageID}/reaction/{reaction} |
HTTP/S |
POST |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| messageID |
uint64 |
PATH |
Message ID |
N/A |
YES |
| reaction |
string |
PATH |
Reaction |
N/A |
YES |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
Delete reaction from a message
Method
| URI |
Protocol |
Method |
Authentication |
/channels/{channelID}/messages/{messageID}/reaction/{reaction} |
HTTP/S |
DELETE |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| messageID |
uint64 |
PATH |
Message ID |
N/A |
YES |
| reaction |
string |
PATH |
Reaction |
N/A |
YES |
| channelID |
uint64 |
PATH |
Channel ID |
N/A |
YES |
Permissions
List default permissions
Method
| URI |
Protocol |
Method |
Authentication |
/permissions/permissions |
HTTP/S |
GET |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
Retrieve current permission settings
Method
| URI |
Protocol |
Method |
Authentication |
/permissions/permissions/{team} |
HTTP/S |
GET |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| scope |
string |
GET |
Permissions scope |
N/A |
YES |
| resource |
string |
GET |
Permissions resource |
N/A |
YES |
| team |
string |
PATH |
Team ID |
N/A |
YES |
Update permission settings
Method
| URI |
Protocol |
Method |
Authentication |
/permissions/permissions/{team} |
HTTP/S |
POST |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| team |
string |
PATH |
Team ID |
N/A |
YES |
| permissions |
[]rbac.Permission |
POST |
List of permissions to set |
N/A |
YES |
Search entry point
Search for messages
Method
| URI |
Protocol |
Method |
Authentication |
/search/messages |
HTTP/S |
GET |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| inChannel |
uint64 |
GET |
Search only in one channel |
N/A |
NO |
| fromUser |
uint64 |
GET |
Search only from one user |
N/A |
NO |
| firstID |
uint64 |
GET |
Paging; return newer messages only (higher id) |
N/A |
NO |
| lastID |
uint64 |
GET |
Paging; return older messages only (lower id) |
N/A |
NO |
| query |
string |
GET |
Search query |
N/A |
NO |