Working with chat participants

TrueConfAbout 15 min

Working with chat participants

Client requests

Add participant to chat

Adds a user to a group chat or channel. Appropriate permissions are required to perform this operation.

Request:

{
  "type": 1,
  "id": 1,
  "method": "addChatParticipant",
  "payload": {
    "chatId": "c8c3eee8-9ad0-4638-9692-ad16391a4256",
    "userId": "user@video.example.com",
    "displayHistory": false
  }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
methodstringYesCommand addChatParticipant
chatIdstringYesChat ID where the user is added
userIdstringYesTrueConf ID of the user being added to the chat
displayHistoryboolNo5.5.3+ Chat history display flag. If true, the user will see previous messages.

Response:

{
  "type": 2,
  "id": 1,
  "payload": {}
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesAn identifier matching the number sent in the original request, used to link the request and response.
payloadobjectYesIn case of success, you will receive an empty object.

In the event of an error, a message containing the errorCode parameter is returned. A list of possible values is available in the corresponding section of the documentation.

Remove chat participant

Removes the specified participant from the chat. This can only be used in group chats and channels. Appropriate permissions are required to perform this operation.

Request:

{
  "type": 1,
  "id": 1,
  "method": "removeChatParticipant",
  "payload": {
    "chatId": "c8c3eee8-9ad0-4638-9692-ad16391a4256",
    "userId": "user@video.example.com",
    "clearHistory" : false
  }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
methodstringYesCommand removeChatParticipant
chatIdstringYesChat ID from which the user is being removed
userIdstringYesTrueConf ID of the user to be deleted
clearHistoryboolNo5.5.3+ If true, the chat will be cleared when the participant is removed. By default, it is false.

Response:

{
  "type": 2,
  "id": 1,
  "payload": {}
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesAn identifier matching the number sent in the original request, used to link the request and response.
payloadobjectYesIn case of success, you will receive an empty object.

In the event of an error, a message containing the errorCode parameter is returned. A list of possible values is available in the corresponding section of the documentation.

Change participant role 5.5.2+

Allows you to change the role of a chat participant. To change a role, you must have the appropriate permission. You will also receive a notification when the role is changed for any chat participant.

Request:

{
    "type": 1,
    "id": 1,
    "method": "changeParticipantRole",
    "payload": {
        "chatId": "2b896a6ef210d6b2dcaebc2186c9a7974d616054",
        "userId": "user@video.example.com",
        "role": "admin"
    }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
methodstringYesCommand changeParticipantRole
chatIdstringYesChat ID
userIdstringYesTrueConf ID of the user whose role is being changed
rolestringYesNew user role

Response:

{
  "type": 2,
  "id": 1,
  "payload": {}
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesAn identifier matching the number sent in the original request, used to link the request and response.
payloadobjectYesIn case of success, you will receive an empty object.

In the event of an error, a message containing the errorCode parameter is returned. A list of possible values is available in the corresponding section of the documentation.

Get chat participant 5.5.3+

Returns a participant of the specified chat, including their role and type.

Request:

{
  "type": 1,
  "id": 1,
  "method": "getChatParticipant",
  "payload": {
    "chatId": "c8c3eee8-9ad0-4638-9692-ad16391a4256",
    "userId": "user@video.example.com",

  }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
methodstringYesCommand getChatParticipant
chatIdstringYesChat ID
userIdstringYesTrueConf ID of the requested user

Response:

{
  "type": 2,
  "id": 1,
  "payload": {
    "userId": "user@video.example.com",
    "role": "user",
    "type": 1
  }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesAn identifier matching the number sent in the original request, used to link the request and response.
userIdstringYesTrueConf ID of the user
rolestringYesUser role (see description)
typeuint32YesUser type (see description)

In the event of an error, a message containing the errorCode parameter is returned. A list of possible values is available in the corresponding section of the documentation.

Get chat participants

Returns a list of all participants in the specified chat, including their role and type.

Request:

{
  "type": 1,
  "id": 1,
  "method": "getChatParticipants",
  "payload": {
    "chatId": "c8c3eee8-9ad0-4638-9692-ad16391a4256",
    "pageSize": 100,
    "pageNumber": 1
  }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
methodstringYesCommand getChatParticipants
chatIdstringYesChat ID
pageSizeuint32YesNumber of records with information about chat participants in the response to the request
pageNumberuint32YesThe offset at which the participant list will be returned. It is calculated using the formula startOffset = pageSize * pageNumber.

Response:

ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesAn identifier matching the number sent in the original request, used to link the request and response.
participantsArrayYesList of chat participants, presented as ChatParticipant objects

In the event of an error, a message containing the errorCode parameter is returned. A list of possible values is available in the corresponding section of the documentation.

Verify participant in chat Deprecated in 5.5.3+

Use the getChatParticipant request.

Request:

{
  "type": 1,
  "id": 1,
  "method": "hasChatParticipant",
  "payload": {
    "chatId": "c8c3eee8-9ad0-4638-9692-ad16391a4256",
    "userId": "user@video.example.com"
  }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
methodstringYesThe hasChatParticipant command
chatIdstringYesChat ID where the user's presence is checked
userIdstringYesTrueConf ID of the user being verified

Response:

{
  "type": 2,
  "id": 1,
  "payload": {
    "result": true
  }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesAn identifier matching the number sent in the original request, used to link the request and response.
resultbooleanYesFlag indicating the presence of a participant in the chat. If true — the participant is present in the chat.

In the event of an error, a message containing the errorCode parameter is returned. A list of possible values is available in the corresponding section of the documentation.

Server notifications

Participant added to chat

The server sends a notification when a new participant is added to a group chat or channel.

Notification from the server:

ParameterTypeMandatoryDescription
methodstringYesCommand addChatParticipant
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incrementing value assigned by the sender. Read more here
chatIdstringYesChat ID where the user was added
userIdstringYesTrueConf ID of the user who was added to the chat
userRolestringYes5.5.2+ Role of the user who added a participant to the chat
addedBy.idstringYesUnique identifier of the user who added a new participant. This can be a TrueConf ID or a server name, depending on addedBy.type.
addedBy.typeuint32YesThe type of user who added a new participant. See EnvelopeAuthorTypeEnum
timestampuint64YesTimestamp of adding a participant to the chat in UNIX timestamp format (in milliseconds)

Response from client:

{
    "type": 2,
    "id": 123456
}
FieldTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesMessage ID being replied to (see more)

Chat participant removed

The server sends a notification when a participant has been removed from a group chat or channel.

Notification from the server:

{
  "method": "removedChatParticipant",
  "type": 1,
  "id": 1,
  "payload": {
    "chatId": "c8c3eee8-9ad0-4638-9692-ad16391a4256",
    "userId": "user@video.example.com",
    "removedBy": {
      "id": "admin@video.example.com",
      "type": 1
    },
    "timestamp": "1735370778"
  }
}
ParameterTypeMandatoryDescription
methodstringYesCommand removeChatParticipant
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
chatIdstringYesChat ID where the user was removed
userIdstringYesTrueConf ID of the user who was removed from the chat
removedBy.idstringYesUnique identifier of the user who removed a participant from the chat. This is either a TrueConf ID or the name of the server from which the message was received. The type of identifier depends on the removedBy.type field.
removedBy.typeuint32YesThe type of user who removed a participant from the chat. For more details, see EnvelopeAuthorTypeEnum.
timestampuint64YesTimestamp of participant removal from chat in UNIX timestamp format with millisecond precision.

Response from client:

{
    "type": 2,
    "id": 123456
}
FieldTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesMessage ID being replied to (see more)

Participant role changed 5.5.2+

The server sends a notification when a chat participant's role has changed.

Request:

{
    "type": 1,
    "id": 1,
    "method": "changeParticipantRole",
    "payload": {
        "chatId": "7e5ea3e8b5ed63e1443b2e4dcdd68b9f196abae1",
        "userId": "user@video.example.com",
        "role": "admin",
        "timestamp": 1760594447544
    }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
methodstringYesCommand changeParticipantRole
chatIdstringYesChat ID
userIdstringYesTrueConf ID of the user whose role has changed
rolestringYesNew user role
timestampuint64YesTimestamp of the chat participant role change in UNIX timestamp format with millisecond precision.

Response from client:

{
    "type": 2,
    "id": 123456
}
FieldTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesMessage ID being replied to (see more)