Skip to main content

Get Messages

Retrieve messages from a channel.
GET /api/messages/:channel_id?limit=50&before=message_id

Parameters

  • channel_id (required) - Channel UUID
  • limit (optional) - Number of messages (default: 50, max: 100)
  • before (optional) - Get messages before this message ID

Response

[
  {
    "id": "msg-uuid",
    "content": "Hello world!",
    "author": {
      "id": "user-uuid",
      "username": "user123",
      "avatar": "https://..."
    },
    "channel_id": "channel-uuid",
    "created_at": "2024-01-01T00:00:00Z",
    "edited_at": null,
    "attachments": [],
    "reactions": []
  }
]

Send Message

Send a new message to a channel.
POST /api/messages/:channel_id
Authorization: Bearer TOKEN

Request Body

{
  "content": "Hello world!",
  "attachments": []
}

Response

{
  "id": "msg-uuid",
  "content": "Hello world!",
  "author": {...},
  "created_at": "2024-01-01T00:00:00Z"
}

Edit Message

Edit your own message.
PATCH /api/messages/:channel_id/:message_id
Authorization: Bearer TOKEN

Request Body

{
  "content": "Updated message"
}

Delete Message

Delete your own message.
DELETE /api/messages/:channel_id/:message_id
Authorization: Bearer TOKEN

Add Reaction

React to a message with emoji.
POST /api/messages/:message_id/reactions
Authorization: Bearer TOKEN

Request Body

{
  "emoji": "👍"
}

Remove Reaction

Remove your reaction from a message.
DELETE /api/messages/:message_id/reactions/:emoji
Authorization: Bearer TOKEN

Get Reactions

Get all reactions for a message.
GET /api/messages/:message_id/reactions

Response

[
  {
    "emoji": "👍",
    "count": 5,
    "users": [...]
  }
]

Typing Indicator

Show typing indicator in a channel.
POST /api/channels/:channel_id/typing
Authorization: Bearer TOKEN
Automatically cleared after 5 seconds.

WebSocket Events

Real-time message updates via WebSocket:

New Message

{
  "type": "message",
  "data": {
    "id": "msg-uuid",
    "content": "Hello!",
    "author": {...}
  }
}

Message Edited

{
  "type": "message_update",
  "data": {
    "id": "msg-uuid",
    "content": "Updated",
    "edited_at": "2024-01-01T00:00:00Z"
  }
}

Message Deleted

{
  "type": "message_delete",
  "data": {
    "id": "msg-uuid",
    "channel_id": "channel-uuid"
  }
}

Next Steps