Skip to main content

Participants

2 API calls in this section.

Manage Participants

Communications & Feedback / Messaging / Participants
PUT/messaging/conversations/:conversationId/participants?tenant_id={{tenant_id}}

Manages participants in a conversation by adding, removing, or updating their roles. Supports bulk operations for multiple users. Authorization: - Requires valid authentication token - User must be conversation admin OR have 'manage:tenant' permission OR be system admin - Conversation must be in 'active' status Path Parameters: - conversationId: UUID of the conversation Special Behaviors: - Add: If user was previously removed, they will be reactivated - Remove: Soft delete (sets left_at timestamp) - Update: Changes participant role - All target users must exist in the system

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request PUT "$ONDI_BASE_URL/messaging/conversations/:conversationId/participants?tenant_id={{tenant_id}}" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json" \4  --header "Content-Type: application/json" \5  --data '{6  "action": "add",7  "user_ids": [8    "uuid1",9    "uuid2",10    "uuid3"11  ],12  "role": "member"13}'
Request body
json
1{2  "action": "add",3  "user_ids": [4    "uuid1",5    "uuid2",6    "uuid3"7  ],8  "role": "member"9}

Path parameters

conversationIdRequired
path string

uuid

UUID of the conversation

Query parameters

tenant_idOptional
query string

{{tenant_id}}

UUID of the tenant (required if not in auth token)

Request body fields

actionExample
string

Example field from the request body.

user_idsExample
array<string>

Example field from the request body.

roleExample
string

Example field from the request body.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

Success Response200OK
Partial Success Response207Multi-Status
Error - Users Not Found404Not Found
Error - Missing Role for Action400Bad Request

Update Read Status

Communications & Feedback / Messaging / Participants
GET/messaging/conversations/:conversationId/read-status?message_id=

Updates the last read message for the current user in a conversation. This endpoint helps track which messages have been read by each participant. Authorization: - Requires valid authentication token - User must be a participant in the conversation - User cannot have left the conversation (left_at must be null) Path Parameters: - conversationId: UUID of the conversation Query Parameters: - message_id: UUID of the specific message to mark as read (optional) - If provided, the message must exist in the specified conversation - If not provided, automatically uses the latest message in the conversation Behavior: - Updates the participant's last_read_message_id field - If no message_id is provided, finds and uses the most recent message - Validates that the provided message exists in the conversation - Only participants who haven't left the conversation can update their read status

Send a bearer token in the Authorization header for an authenticated OnDi user session.
Request
curl
1curl --request GET "$ONDI_BASE_URL/messaging/conversations/:conversationId/read-status?message_id=" \2  --header "Authorization: Bearer {{access_token}}" \3  --header "Content-Type: application/json"

Path parameters

conversationIdRequired
path string

uuid

UUID of the conversation

Query parameters

message_idOptional
query string

UUID of the specific message to mark as read (optional). If not provided, marks the latest message as read.

Headers

AuthorizationOptional
header string

Bearer {{access_token}}

Content-TypeOptional
header string

application/json

Responses

Success Response200OK
Success Response (Latest Message)200OK
Error - Not Participant403Forbidden
Error - Message Not Found404Not Found
Error - No Messages in Conversation404Not Found