{ "openapi": "3.1.0", "info": { "title": "OVE Messenger API", "version": "1.0.0", "description": "OVE Messenger user, bot, OAuth, files, calls and realtime updates API." }, "servers": [ { "url": "https://ms.ove.rs" } ], "paths": { "/register": { "post": { "tags": [ "Аккаунт" ], "summary": "Регистрация аккаунта", "description": "Регистрация аккаунта. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_register", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" }, "example": { "email": "you@example.com", "password": "correct horse battery staple" } } } } } }, "/login": { "post": { "tags": [ "Аккаунт" ], "summary": "Вход по паролю", "description": "Вход по паролю. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_login", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" }, "example": { "email": "you@example.com", "password": "correct horse battery staple" } } } } } }, "/auth/email/start": { "post": { "tags": [ "Аккаунт" ], "summary": "Запрос email-кода", "description": "Запрос email-кода. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_auth_email_start", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" }, "example": { "email": "you@example.com" } } } } } }, "/auth/email/verify": { "post": { "tags": [ "Аккаунт" ], "summary": "Подтверждение email-кода", "description": "Подтверждение email-кода. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_auth_email_verify", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" }, "example": { "email": "you@example.com", "code": "123456" } } } } } }, "/.well-known/openid-configuration": { "get": { "tags": [ "OAuth" ], "summary": "OIDC Discovery", "description": "OIDC Discovery. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get__well_known_openid_configuration", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } } } }, "/.well-known/oauth-authorization-server": { "get": { "tags": [ "OAuth" ], "summary": "OAuth Server Metadata", "description": "OAuth Server Metadata. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get__well_known_oauth_authorization_server", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } } } }, "/oauth/jwks.json": { "get": { "tags": [ "OAuth" ], "summary": "Публичные ключи OIDC", "description": "Публичные ключи OIDC. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_oauth_jwks_json", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } } } }, "/oauth/device_authorization": { "post": { "tags": [ "OAuth" ], "summary": "Запуск Device Flow", "description": "Создает device_code, user_code и verification URI для универсального входа через Messenger.", "operationId": "post_oauth_device_authorization", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "oauthClient": [] } ] } }, "/oauth/device": { "get": { "tags": [ "OAuth" ], "summary": "Страница подтверждения Device Flow", "description": "Страница подтверждения Device Flow. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_oauth_device", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } } } }, "/oauth/token": { "post": { "tags": [ "OAuth" ], "summary": "Обмен device code на токены", "description": "Обменивает подтвержденный device_code на OIDC access/id token. Во время ожидания возвращает authorization_pending.", "operationId": "post_oauth_token", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "oauthClient": [] } ] } }, "/oauth/userinfo": { "get": { "tags": [ "OAuth" ], "summary": "Профиль OIDC", "description": "Профиль OIDC. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_oauth_userinfo", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/oauth/device/request": { "get": { "tags": [ "OAuth" ], "summary": "Данные запроса входа", "description": "Данные запроса входа. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_oauth_device_request", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/oauth/device/decision": { "post": { "tags": [ "OAuth" ], "summary": "Решение пользователя", "description": "Решение пользователя. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_oauth_device_decision", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/me": { "get": { "tags": [ "Аккаунт" ], "summary": "Текущий пользователь", "description": "Текущий пользователь. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_me", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/account/delete": { "post": { "tags": [ "Аккаунт" ], "summary": "Удаление аккаунта", "description": "Удаление аккаунта. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_account_delete", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/username": { "post": { "tags": [ "Аккаунт" ], "summary": "Установка username", "description": "Установка username. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_username", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/name": { "post": { "tags": [ "Аккаунт" ], "summary": "Изменение отображаемого имени", "description": "Изменение отображаемого имени. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_name", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/profiles/description": { "post": { "tags": [ "Аккаунт" ], "summary": "Описание профиля, бота или чата", "description": "Описание профиля, бота или чата. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_profiles_description", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/privacy": { "post": { "tags": [ "Аккаунт" ], "summary": "Настройки приватности", "description": "Настройки приватности. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_privacy", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/contacts": { "get": { "tags": [ "Контакты" ], "summary": "Список контактов", "description": "Список контактов. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_contacts", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/contacts/add": { "post": { "tags": [ "Контакты" ], "summary": "Добавление контакта", "description": "Добавление контакта. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_contacts_add", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/contacts/delete": { "post": { "tags": [ "Контакты" ], "summary": "Удаление контакта", "description": "Удаление контакта. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_contacts_delete", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/groups": { "post": { "tags": [ "Чаты" ], "summary": "Создание группы", "description": "Создание группы. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_groups", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/channels": { "post": { "tags": [ "Чаты" ], "summary": "Создание канала", "description": "Создание канала. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_channels", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/chats/title": { "post": { "tags": [ "Чаты" ], "summary": "Изменение названия чата", "description": "Изменение названия чата. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_chats_title", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/channels/username": { "post": { "tags": [ "Чаты" ], "summary": "Username канала", "description": "Username канала. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_channels_username", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/channels/comments/settings": { "post": { "tags": [ "Чаты" ], "summary": "Настройки комментариев канала", "description": "Настройки комментариев канала. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_channels_comments_settings", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/channels/comments/send": { "post": { "tags": [ "Чаты" ], "summary": "Комментарий к публикации", "description": "Комментарий к публикации. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_channels_comments_send", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/channels/comments": { "get": { "tags": [ "Чаты" ], "summary": "Комментарии к публикации", "description": "Комментарии к публикации. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_channels_comments", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/chats/members/add": { "post": { "tags": [ "Чаты" ], "summary": "Добавление участника", "description": "Добавление участника. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_chats_members_add", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/chats/members/remove": { "post": { "tags": [ "Чаты" ], "summary": "Удаление участника", "description": "Удаление участника. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_chats_members_remove", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/cloud-password": { "post": { "tags": [ "Безопасность" ], "summary": "Облачный пароль", "description": "Облачный пароль. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_cloud_password", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/cloud-password/reset": { "post": { "tags": [ "Безопасность" ], "summary": "Сброс облачного пароля", "description": "Сброс облачного пароля. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_cloud_password_reset", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/sessions": { "get": { "tags": [ "Безопасность" ], "summary": "Активные сессии", "description": "Активные сессии. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_sessions", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/sessions/revoke": { "post": { "tags": [ "Безопасность" ], "summary": "Завершение сессии", "description": "Завершение сессии. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_sessions_revoke", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/sessions/revoke-others": { "post": { "tags": [ "Безопасность" ], "summary": "Завершение других сессий", "description": "Завершение других сессий. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_sessions_revoke_others", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/bots": { "post": { "tags": [ "Боты" ], "summary": "Создание бота", "description": "Создание бота. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_bots", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" }, "example": { "username": "shop_helper_bot", "name": "Shop helper" } } } } } }, "/bots/token/reset": { "post": { "tags": [ "Боты" ], "summary": "Перевыпуск bot token", "description": "Перевыпуск bot token. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_bots_token_reset", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/e2e/key": { "post": { "tags": [ "E2E" ], "summary": "Публикация E2E-ключа", "description": "Публикация E2E-ключа. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_e2e_key", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] }, "get": { "tags": [ "E2E" ], "summary": "Публичный E2E-ключ", "description": "Публичный E2E-ключ. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_e2e_key", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/e2e/backup": { "post": { "tags": [ "E2E" ], "summary": "Сохранение E2E-копии", "description": "Сохранение E2E-копии. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_e2e_backup", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] }, "get": { "tags": [ "E2E" ], "summary": "Резервная копия E2E", "description": "Резервная копия E2E. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_e2e_backup", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/e2e/reset": { "post": { "tags": [ "E2E" ], "summary": "Сброс E2E-ключей", "description": "Сброс E2E-ключей. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_e2e_reset", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/wallet": { "get": { "tags": [ "Dastars" ], "summary": "Баланс Dastars", "description": "Баланс Dastars. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_wallet", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/wallet/send": { "post": { "tags": [ "Dastars" ], "summary": "Перевод Dastars", "description": "Перевод Dastars. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_wallet_send", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/wallet/history": { "get": { "tags": [ "Dastars" ], "summary": "История Dastars", "description": "История Dastars. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_wallet_history", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/call": { "post": { "tags": [ "Звонки" ], "summary": "Создание звонка", "description": "Создание звонка. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_call", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/voice-ticket": { "post": { "tags": [ "Звонки" ], "summary": "Билет голосовой сессии", "description": "Билет голосовой сессии. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_voice_ticket", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/voice/participants": { "get": { "tags": [ "Звонки" ], "summary": "Участники голосовой сессии", "description": "Участники голосовой сессии. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_voice_participants", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/voice": { "get": { "tags": [ "Звонки" ], "summary": "Голосовой WebSocket", "description": "Переключает соединение на WebSocket после получения voice ticket.", "operationId": "get_voice", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/send": { "post": { "tags": [ "Сообщения" ], "summary": "Отправка текстового сообщения", "description": "Отправляет сообщение без медиа. Для клиентской очереди используйте стабильный client_message_id.", "operationId": "post_send", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" }, "example": { "to": 42, "text": "Привет!", "client_message_id": "0190f6d4-example" } } } } } }, "/edit": { "post": { "tags": [ "Сообщения" ], "summary": "Редактирование сообщения", "description": "Редактирование сообщения. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_edit", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" }, "example": { "chat_id": 42, "message_id": 1001, "text": "Исправленный текст" } } } } } }, "/callback": { "post": { "tags": [ "Боты" ], "summary": "Callback кнопки", "description": "Callback кнопки. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_callback", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/reactions": { "post": { "tags": [ "Реакции" ], "summary": "Emoji-реакция", "description": "Emoji-реакция. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_reactions", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" }, "example": { "chat_id": 42, "message_id": 1001, "emoji": "🔥" } } } } } }, "/reactions/paid": { "post": { "tags": [ "Реакции" ], "summary": "Платная реакция Dastars", "description": "Переводит указанное количество Dastars автору сообщения; для бота — его владельцу. amount может быть больше 1.", "operationId": "post_reactions_paid", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" }, "example": { "chat_id": 42, "message_id": 1001, "amount": 5 } } } } } }, "/read": { "post": { "tags": [ "Сообщения" ], "summary": "Отметка о прочтении", "description": "Отметка о прочтении. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_read", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/delete": { "post": { "tags": [ "Сообщения" ], "summary": "Удаление сообщения", "description": "Удаление сообщения. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_delete", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/favorite": { "post": { "tags": [ "Сообщения" ], "summary": "Избранное сообщение", "description": "Избранное сообщение. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_favorite", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/media/quote": { "post": { "tags": [ "Файлы" ], "summary": "Расчет стоимости медиа", "description": "Рассчитывает единую стоимость новых вложений: сумма байтов округляется вверх до MiB один раз на сообщение.", "operationId": "post_media_quote", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" }, "example": { "media": [ { "client_id": "attachment-1", "name": "photo.jpg", "mime": "image/jpeg", "size": 524288 } ] } } } } } }, "/messages/prepare": { "post": { "tags": [ "Файлы" ], "summary": "Подготовка сообщения с медиа", "description": "Атомарно резервирует оплату и выдает до 10 upload tickets. Текст и media[] опциональны по отдельности, но сообщение не может быть пустым.", "operationId": "post_messages_prepare", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" }, "example": { "to": 42, "text": "Caption", "client_message_id": "0190f6d4-media", "media": [ { "client_id": "attachment-1", "name": "photo.jpg", "mime": "image/jpeg", "size": 524288 } ] } } } } } }, "/messages/commit": { "post": { "tags": [ "Файлы" ], "summary": "Публикация сообщения с медиа", "description": "Проверяет все загруженные вложения, одним платежом списывает DSR и публикует или редактирует одно сообщение.", "operationId": "post_messages_commit", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" }, "example": { "operation_id": "message-op-1-0190f6d4-media" } } } } } }, "/messages/cancel": { "post": { "tags": [ "Файлы" ], "summary": "Отмена сообщения с медиа", "description": "Удаляет незавершенные загрузки и отменяет резерв оплаты.", "operationId": "post_messages_cancel", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" }, "example": { "operation_id": "message-op-1-0190f6d4-media" } } } } } }, "/forward": { "post": { "tags": [ "Файлы" ], "summary": "Пересылка сообщения с медиа", "description": "Пересылка сообщения с медиа. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_forward", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" }, "example": { "message_id": 1001, "to": 42, "client_message_id": "0190f6d4-forward" } } } } } }, "/file/ticket": { "get": { "tags": [ "Файлы" ], "summary": "Билет скачивания файла", "description": "Билет скачивания файла. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_file_ticket", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/nodes/status": { "get": { "tags": [ "Сервис" ], "summary": "Статус сервисных узлов", "description": "Статус сервисных узлов. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_nodes_status", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/chats": { "get": { "tags": [ "Чаты" ], "summary": "Список чатов", "description": "Список чатов. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_chats", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/chats/delete": { "post": { "tags": [ "Чаты" ], "summary": "Удаление чата", "description": "Удаление чата. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_chats_delete", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/users/ban": { "post": { "tags": [ "Модерация" ], "summary": "Блокировка пользователя", "description": "Блокировка пользователя. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_users_ban", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/users/unban": { "post": { "tags": [ "Модерация" ], "summary": "Разблокировка пользователя", "description": "Разблокировка пользователя. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_users_unban", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/history": { "get": { "tags": [ "Сообщения" ], "summary": "История сообщений", "description": "История сообщений. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_history", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/updates": { "get": { "tags": [ "Updates" ], "summary": "Очередь обновлений", "description": "Long polling событий клиента или бота. Bot updates долговечны и остаются до явного ACK.", "operationId": "get_updates", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ] } }, "/updates/ack": { "post": { "tags": [ "Updates" ], "summary": "Подтверждение обновлений", "description": "Подтверждение обновлений. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "post_updates_ack", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" }, "example": { "update_id": 2048 } } } } } }, "/file/{id}": { "get": { "tags": [ "Файлы" ], "summary": "Скачивание файла", "description": "Скачивание файла. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_file_id", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/health/live": { "get": { "tags": [ "Сервис" ], "summary": "Проверка процесса Messenger", "description": "Проверка процесса Messenger. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_health_live", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } } } }, "/health/ready": { "get": { "tags": [ "Сервис" ], "summary": "Готовность Messenger", "description": "Готовность Messenger. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_health_ready", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } } } }, "/metrics": { "get": { "tags": [ "Сервис" ], "summary": "Метрики Messenger", "description": "Метрики Messenger. Возвращает JSON-ответ или стандартную JSON-ошибку.", "operationId": "get_metrics", "responses": { "200": { "description": "Успешный ответ" }, "400": { "description": "Ошибка запроса" }, "401": { "description": "Ошибка авторизации" } } } } }, "components": { "securitySchemes": { "bearerAuth": { "type": "http", "scheme": "bearer" }, "oauthClient": { "type": "http", "scheme": "basic", "description": "OAuth client_id/client_secret. Device Authorization Grant не имеет отдельного стандартного flow в OpenAPI 3.1; discovery доступен в /.well-known/oauth-authorization-server." } }, "schemas": { "Error": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } }