Chat API Documentation
Base URL
/api/chat
1. Create / Get Room
POST /api/chat/room
Request
Query Param:
receiverId (Long) → required
Success Response (200)
"room-123456"
Errors
400 Bad Request
"status": 400,
"error": "Bad Request",
"message": "receiverId is required"
}
{
"status": 400,
"error": "Bad Request",
"message": "Cannot create chat with yourself"
}
404 Not Found
{
"status": 404,
"error": "Not Found",
"message": "Receiver not found"
}
401 Unauthorized
{
"status": 401,
"error": "Unauthorized",
"message": "User not authenticated"
}
2. Send Message
POST /api/chat/send
Content-Type: multipart/form-data
ENUM: MESSAGE TYPE:->TEXT, IMAGE, VOICE, VIDEO,FILE
Request
Field Type Required
content String optional
mediaFiles List optional
type MessageType optional
roomId String required
Validation Rules: content OR mediaFiles
Success Response (200)
{
"id": "msg-1",
"roomId": "room-123",
"senderId": 1,
"senderName": "Menna",
"senderRole": "USER", // ASSISTANT, SYSTEM
"senderUserType": "CONSUMER",
"receiverId": 2,
"receiverName": "Ahmed",
"content": "Hello",
"type": "TEXT",
"mediaUrls": [],
"timestamp": "2026-04-18T15:30:00",
"read": false
}
Errors
400 Bad Request
{
"message": "roomId is required"
}
{
"message": "Message must contain content or media"
}
{
"message": "Only image/video files are allowed"
}
401 Unauthorized
"message": "User not authenticated"
403 Forbidden
{
"message": "You are not allowed in this room"
}
404 Not Found
"message": "Room not found"
3. Get Messages
GET /api/chat/messages
Request Params
Param Type Required
roomId String YES
page int YES
size int YES
Success Response (200)
[
{
"id": "a6c62283-4409-4c2f-9dfb-2e560f377a26",
"roomId": "0684c2c8-df5f-4979-a7d2-117b91828c44",
"senderId": 54,
"senderName": "omar",
"senderRole": "USER",
"senderUserType": "CONSUMER",
"receiverId": 53,
"receiverName": "NADA",
"content": "hello",
"type": "TEXT",
"mediaUrls": [],
"timestamp": "2026-03-27T00:01:11.506242",
"read": true
}
]
Errors
400
{
"message": "roomId is required"
}
{
"message": "Invalid pagination parameters"
}
403
{
"message": "You are not allowed in this room"
}
404
{
"message": "Room not found"
}
4. Get Unread Count
GET /api/chat/unread
Request
roomId (String) → required
Success Response (200)
Errors
400
{
"message": "roomId is required"
}
403
{
"message": "You are not allowed in this room"
}
404
{
"message": "Room not found"
}
5. Delete Message
DELETE /api/chat/message/{id}
Success Response (204)
No Content
Errors
401
{
"message": "User not authenticated"
}
403
{
"message": "You cannot delete this message"
}
404
{
"message": "Message not found"
}