Participants
2 API calls in this section.
Manage Participants
/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
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}'1{2 "action": "add",3 "user_ids": [4 "uuid1",5 "uuid2",6 "uuid3"7 ],8 "role": "member"9}Path parameters
conversationIdRequireduuid
UUID of the conversation
Query parameters
tenant_idOptional{{tenant_id}}
UUID of the tenant (required if not in auth token)
Request body fields
actionExampleExample field from the request body.
user_idsExampleExample field from the request body.
roleExampleExample field from the request body.
Headers
AuthorizationOptionalBearer {{access_token}}
Content-TypeOptionalapplication/json
Responses
Update Read Status
/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
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
conversationIdRequireduuid
UUID of the conversation
Query parameters
message_idOptionalUUID of the specific message to mark as read (optional). If not provided, marks the latest message as read.
Headers
AuthorizationOptionalBearer {{access_token}}
Content-TypeOptionalapplication/json