Skip to main content
Version: v0.16

Chat API Reference

API reference for the Chat module.

Rooms

Create Room

POST /chat/rooms
Authorization: Bearer {userToken}

Request Body:

{
"roomName": "Project Discussion",
"users": ["userId1", "userId2"]
}

Response:

{
"roomId": "..."
}

Get Rooms

GET /chat/rooms
Authorization: Bearer {userToken}

Get Room

GET /chat/rooms/{roomId}
Authorization: Bearer {userToken}

Add Users to Room

PUT /chat/rooms/{roomId}/addUsers
Authorization: Bearer {userToken}

Request Body:

{
"users": ["userId3", "userId4"]
}

Leave Room

PUT /chat/leave/{roomId}
Authorization: Bearer {userToken}

Messages

Get Room Messages

GET /chat/rooms/{roomId}/messages
Authorization: Bearer {userToken}

Delete Message

DELETE /chat/messages/{messageId}
Authorization: Bearer {userToken}

WebSocket Events

Connect

const socket = io('http://localhost:3001/chat/', {
path: '/realtime',
auth: { token: userAccessToken }
});

Send Message

Event: message

socket.emit('message', roomId, 'Hello!');

Receive Message

socket.on('message', (data) => {
console.log('New message:', data);
});

Join Room

socket.emit('join', roomId);

Leave Room

socket.emit('leave', roomId);

Admin API

Get All Rooms

GET /admin/chat/rooms
masterkey: {masterKey}

Get Room Messages (Admin)

GET /admin/chat/rooms/{roomId}/messages
masterkey: {masterKey}

Delete Room

DELETE /admin/chat/rooms/{roomId}
masterkey: {masterKey}