API Reference
Полная документация всех endpoints Enot Messenger API
Base URL
https://api.enot.space
Все API запросы должны использовать HTTPS протокол.
Аутентификация
POST /api/auth/register
Регистрация нового пользователя
Request Body:
{
"username": "string",
"email": "string",
"password": "string"
}
POST /api/auth/login
Вход в систему (username или email)
Request Body:
{
"username": "string", // или "email"
"password": "string"
}
GET /api/auth/me
Получить текущего пользователя
Требуется JWT токен в заголовке Authorization
POST /api/auth/logout
Выход из текущей сессии
POST /api/auth/logout-all
Выход из всех сессий
PUT /api/auth/display-name
Обновить отображаемое имя
Request Body:
{
"display_name": "string"
}
Серверы
POST /api/servers
Создать новый сервер
Request Body:
{
"name": "string",
"description": "string"
}
GET /api/servers
Получить список серверов пользователя
GET /api/servers/:id
Получить информацию о сервере
PUT /api/servers/:id
Обновить сервер
Request Body:
{
"name": "string",
"description": "string"
}
DELETE /api/servers/:id
Удалить сервер
GET /api/servers/:id/members
Получить список участников сервера
Каналы
POST /api/servers/:server_id/channels
Создать новый канал
Request Body:
{
"name": "string",
"type": "text" | "voice"
}
GET /api/servers/:server_id/channels
Получить список каналов сервера
GET /api/channels/:id
Получить информацию о канале
PUT /api/channels/:id
Обновить канал
DELETE /api/channels/:id
Удалить канал
GET /api/channels/:id/voice-states
Получить список пользователей в голосовом канале
Сообщения
POST /api/channels/:channel_id/messages
Отправить сообщение в канал
Request Body:
{
"content": "string"
}
GET /api/channels/:channel_id/messages
Получить сообщения канала (пагинация)
Query Parameters:
?limit=50&offset=0
GET /api/messages/:id
Получить сообщение по ID
PUT /api/messages/:id
Редактировать сообщение
DELETE /api/messages/:id
Удалить сообщение
Файлы
POST /api/files/upload-url
Получить pre-signed URL для загрузки файла
Request Body:
{
"filename": "string",
"content_type": "string",
"size": number
}
POST /api/files
Создать запись о файле после загрузки
GET /api/files/:id
Получить информацию о файле
GET /api/files/:id/download-url
Получить pre-signed URL для скачивания
DELETE /api/files/:id
Удалить файл
GET /api/messages/:message_id/files
Получить файлы сообщения
Личные сообщения
POST /api/dm/messages
Отправить личное сообщение
Request Body:
{
"recipient_id": number,
"content": "string"
}
GET /api/dm/:user_id/messages
Получить историю личных сообщений
GET /api/dm/conversations
Получить список всех переписок
POST /api/dm/messages/:id/read
Пометить сообщение как прочитанное
POST /api/dm/:user_id/read-all
Пометить все сообщения как прочитанные
PUT /api/dm/messages/:id
Редактировать личное сообщение
DELETE /api/dm/messages/:id
Удалить личное сообщение
DELETE /api/dm/:user_id/hide
Скрыть переписку
Друзья
POST /api/friends/request
Отправить запрос в друзья
Request Body:
{
"friend_id": number
}
GET /api/friends
Получить список друзей
GET /api/friends/pending
Получить входящие запросы
GET /api/friends/sent
Получить исходящие запросы
GET /api/friends/blocked
Получить заблокированных пользователей
POST /api/friends/:id/accept
Принять запрос в друзья
POST /api/friends/:id/decline
Отклонить запрос
POST /api/friends/:id/cancel
Отменить исходящий запрос
DELETE /api/friends/:id
Удалить из друзей
POST /api/friends/:id/block
Заблокировать пользователя
POST /api/friends/:id/unblock
Разблокировать пользователя
GET /api/users/search
Поиск пользователей по username
Query Parameters:
?q=username
Приглашения
POST /api/invites
Создать приглашение на сервер
Request Body:
{
"server_id": number,
"expires_in": number, // секунды
"max_uses": number
}
GET /api/servers/:id/invites
Получить приглашения сервера
DELETE /api/invites/:id
Удалить приглашение
POST /api/invites/:code/join
Присоединиться к серверу по коду
Роли
POST /api/servers/:server_id/roles
Создать роль
Request Body:
{
"name": "string",
"color": "string",
"permissions": number
}
GET /api/servers/:server_id/roles
Получить роли сервера
GET /api/roles/:id
Получить роль
PUT /api/roles/:id
Обновить роль
DELETE /api/roles/:id
Удалить роль
POST /api/servers/:server_id/members/:user_id/roles/:role_id
Назначить роль участнику
DELETE /api/servers/:server_id/members/:user_id/roles/:role_id
Снять роль с участника
GET /api/servers/:server_id/members/:user_id/roles
Получить роли участника
Дополнительная информация
- Все endpoints требуют JWT токен в заголовке Authorization (кроме register/login)
- Формат токена:
Authorization: Bearer YOUR_JWT_TOKEN - Все даты в формате ISO 8601 (UTC)
- Пагинация: используйте параметры
limitиoffset - Rate limiting применяется ко всем endpoints
- WebSocket endpoint:
wss://api.enot.space/ws?token=YOUR_JWT_TOKEN