Download OpenAPI specification:
| email required | string <email> |
| username required | string [ 3 .. 32 ] characters |
| displayName required | string [ 1 .. 64 ] characters |
| password required | string >= 8 characters |
{- "email": "user@example.com",
- "username": "string",
- "displayName": "string",
- "password": "stringst"
}{- "token": "string",
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com",
- "username": "string",
- "displayName": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
}{- "token": "string",
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com",
- "username": "string",
- "displayName": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
}| email required | string <email> |
| password required | string |
{- "email": "user@example.com",
- "password": "string"
}{- "token": "string",
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com",
- "username": "string",
- "displayName": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
}[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "otherUser": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com",
- "username": "string",
- "displayName": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}, - "unreadCount": 0,
- "createdAt": "2019-08-24T14:15:22Z"
}
]| userId required | string <uuid> |
{- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "otherUser": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com",
- "username": "string",
- "displayName": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}, - "unreadCount": 0,
- "createdAt": "2019-08-24T14:15:22Z"
}| name required | string [ 1 .. 64 ] characters |
| description | string |
| isPublic | boolean Default: true |
| isVoice | boolean Default: false |
{- "name": "string",
- "description": "string",
- "isPublic": true,
- "isVoice": false
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "isPublic": true,
- "isVoice": true,
- "isDm": true,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "isMember": true,
- "unreadCount": 0
}[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "isPublic": true,
- "isVoice": true,
- "isDm": true,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "isMember": true,
- "unreadCount": 0
}
][- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "isPublic": true,
- "isVoice": true,
- "isDm": true,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "isMember": true,
- "unreadCount": 0
}
]| channelId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "isPublic": true,
- "isVoice": true,
- "isDm": true,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "isMember": true,
- "unreadCount": 0
}| channelId required | string <uuid> |
| name | string [ 1 .. 64 ] characters |
| description | string |
{- "name": "string",
- "description": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "isPublic": true,
- "isVoice": true,
- "isDm": true,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "isMember": true,
- "unreadCount": 0
}| channelId required | string <uuid> |
{- "channelId": "5f6d08bc-455a-4532-98b8-19e2cee51160",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "role": "owner",
- "joinedAt": "2019-08-24T14:15:22Z",
- "lastReadAt": "2019-08-24T14:15:22Z",
- "username": "string",
- "displayName": "string",
- "email": "string"
}| channelId required | string <uuid> |
[- {
- "channelId": "5f6d08bc-455a-4532-98b8-19e2cee51160",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "role": "owner",
- "joinedAt": "2019-08-24T14:15:22Z",
- "lastReadAt": "2019-08-24T14:15:22Z",
- "username": "string",
- "displayName": "string",
- "email": "string"
}
]| channelId required | string <uuid> |
| userId required | string <uuid> |
| role | string (ChannelRole) Enum: "owner" "admin" "member" "guest" |
{- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "role": "owner"
}{- "channelId": "5f6d08bc-455a-4532-98b8-19e2cee51160",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "role": "owner",
- "joinedAt": "2019-08-24T14:15:22Z",
- "lastReadAt": "2019-08-24T14:15:22Z",
- "username": "string",
- "displayName": "string",
- "email": "string"
}| channelId required | string <uuid> |
| userId required | string <uuid> |
{- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}{- "channelId": "5f6d08bc-455a-4532-98b8-19e2cee51160",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "role": "owner",
- "joinedAt": "2019-08-24T14:15:22Z",
- "lastReadAt": "2019-08-24T14:15:22Z",
- "username": "string",
- "displayName": "string",
- "email": "string"
}| channelId required | string <uuid> |
| userId required | string <uuid> |
| role required | string (ChannelRole) Enum: "owner" "admin" "member" "guest" |
{- "role": "owner"
}{- "channelId": "5f6d08bc-455a-4532-98b8-19e2cee51160",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "role": "owner",
- "joinedAt": "2019-08-24T14:15:22Z",
- "lastReadAt": "2019-08-24T14:15:22Z",
- "username": "string",
- "displayName": "string",
- "email": "string"
}| channelId required | string <uuid> |
[- {
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "displayName": "string",
- "muted": true,
- "deafened": true,
- "joinedAt": "2019-08-24T14:15:22Z"
}
]| channelId required | string <uuid> |
| muted required | boolean |
| deafened required | boolean |
{- "muted": true,
- "deafened": true
}{- "error": "string"
}| channelId required | string <uuid> |
| muted required | boolean |
| deafened required | boolean |
{- "muted": true,
- "deafened": true
}{- "error": "string"
}Opens a persistent SSE connection. Each event has type message and a JSON-encoded Message object as its data. Implemented as a manual Gin route — not generated from this spec.
| channelId required | string <uuid> |
{- "error": "string"
}| channelId required | string <uuid> |
| before | string <date-time> |
| limit | integer Default: 50 |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "channelId": "5f6d08bc-455a-4532-98b8-19e2cee51160",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "displayName": "string",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
- "content": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "replyCount": 0,
- "editedAt": "2019-08-24T14:15:22Z",
- "reactions": [ ]
}
]| channelId required | string <uuid> |
| content required | string non-empty |
| parentId | string <uuid> |
{- "content": "string",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "channelId": "5f6d08bc-455a-4532-98b8-19e2cee51160",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "displayName": "string",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
- "content": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "replyCount": 0,
- "editedAt": "2019-08-24T14:15:22Z",
- "reactions": [ ]
}| channelId required | string <uuid> |
| messageId required | string <uuid> |
| content required | string non-empty |
{- "content": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "channelId": "5f6d08bc-455a-4532-98b8-19e2cee51160",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "displayName": "string",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
- "content": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "replyCount": 0,
- "editedAt": "2019-08-24T14:15:22Z",
- "reactions": [ ]
}| channelId required | string <uuid> |
| file required | string <binary> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "channelId": "5f6d08bc-455a-4532-98b8-19e2cee51160",
- "filename": "string",
- "contentType": "string",
- "size": 0,
- "uploadedBy": "1e2815fd-75c7-4289-86d5-2503daeb59b8",
- "createdAt": "2019-08-24T14:15:22Z",
- "url": "string"
}| channelId required | string <uuid> |
| messageId required | string <uuid> |
| before | string <date-time> |
| limit | integer Default: 50 |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "channelId": "5f6d08bc-455a-4532-98b8-19e2cee51160",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "displayName": "string",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
- "content": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "replyCount": 0,
- "editedAt": "2019-08-24T14:15:22Z",
- "reactions": [ ]
}
]| channelId required | string <uuid> |
| expiresIn | string (InviteExpiry) Enum: "1h" "24h" "7d" "30d" |
{- "expiresIn": "1h"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "channelId": "5f6d08bc-455a-4532-98b8-19e2cee51160",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}| channelId required | string <uuid> |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "channelId": "5f6d08bc-455a-4532-98b8-19e2cee51160",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}
]| inviteCode required | string <uuid> |
{- "invite": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "channelId": "5f6d08bc-455a-4532-98b8-19e2cee51160",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}, - "channel": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "isVoice": true
}, - "alreadyMember": true
}| inviteCode required | string <uuid> |
{- "channelId": "5f6d08bc-455a-4532-98b8-19e2cee51160",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "role": "owner",
- "joinedAt": "2019-08-24T14:15:22Z",
- "lastReadAt": "2019-08-24T14:15:22Z",
- "username": "string",
- "displayName": "string",
- "email": "string"
}| endpoint required | string |
| p256dh required | string |
| auth required | string |
{- "endpoint": "string",
- "p256dh": "string",
- "auth": "string"
}{- "error": "string"
}| endpoint required | string |
{- "endpoint": "string"
}{- "error": "string"
}| name required | string Emoji name (e.g., "serpent_hype") |
| image required | string <binary> Image file (PNG, JPG, GIF, etc.) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "imageUrl": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z"
}