Справочник API
Полный перечень эндпоинтов. Базовый путь: /api/v1. Требуется Authorization: Bearer <token>, кроме отмеченных.
Authentication
| Метод | Путь | Описание | Ответы |
| POST | /auth/register | Регистрация (user: email или phone, password, display_name) | 201 AuthResponse; 422 |
| POST | /auth/login | Вход (email+password или phone+password) | 200 AuthResponse; 401 |
| POST | /auth/verify-2fa | Подтверждение 2FA (token, code) | 200; 401 |
| POST | /auth/refresh | Обновление токена (refresh_token) | 200 access_token; 401 |
Users
| Метод | Путь | Описание | Ответы |
| GET | /users/me | Текущий пользователь | 200 user |
| PATCH | /users/me | Обновить профиль | 200 user |
| GET | /users/search?q= | Поиск пользователей | 200 users[] |
| GET | /users/:id | Пользователь по ID | 200 user; 404 |
Chats
| Метод | Путь | Описание | Ответы |
| GET | /chats | Список чатов | 200 chats[] |
| POST | /chats/direct | Создать личный чат (user_id) | 201 chat |
| POST | /chats/group | Создать групповой чат (chat.name, member_ids?) | 201 chat |
| GET | /chats/:id | Получить чат | 200 chat; 404 |
| PATCH | /chats/:id | Обновить чат | 200 chat |
| DELETE | /chats/:id | Удалить чат | 204 |
| GET | /chats/:id/messages | Сообщения (limit?, before?) | 200 messages[] |
Files
| Метод | Путь | Описание | Ответы |
| POST | /files/upload | Загрузить (multipart: file, chat_id?) | 201 file |
| GET | /files/:id | Информация о файле | 200 file; 404 |
| GET | /files/:id/download | URL для скачивания | 200 url, expires_in |
| DELETE | /files/:id | Удалить файл | 204 |
Calls
| Метод | Путь | Описание | Ответы |
| POST | /calls/start | Начать звонок (chat_id, type?) | 201 call |
| GET | /calls/:id | Информация о звонке (chat_type, participants) | 200 call |
| POST | /calls/:id/join | Присоединиться | 200 call |
| POST | /calls/:id/leave | Покинуть звонок | 200 |
| GET | /calls/:id/token | Токен LiveKit | 200 token, room_name, livekit_url |
| POST | /calls/:id/invite | Пригласить (body: user_id), только хост в группе | 200 call; 403 |
| POST | /calls/:id/participants/:user_id/remove | Исключить участника, только инициатор | 200 call; 403 |
Mini Apps
| Метод | Путь | Описание | Ответы |
| GET | /miniapps | Список мини-приложений | 200 apps[] |
Схемы
User: id, email, phone, username, display_name, avatar_url, bio, status, last_seen.
Chat: id, type, name, description, avatar_url, members[], last_message, created_at, updated_at.
Message: id, content, content_type, sender, reply_to_id, edited_at, created_at.
Call: id, type, status, room_name, chat_id, initiator_id, participants[], chat_type.