1248 lines
51 KiB
JSON
1248 lines
51 KiB
JSON
{
|
||
"version": 1,
|
||
"generated_from": [
|
||
"micro-chat/micromsg/src/app_routes.rs",
|
||
"crypto-gateway/crates/gateway-api/src/main.rs",
|
||
"crypto-gateway/crates/gateway-api/src/web.rs",
|
||
"donations/src/main.rs"
|
||
],
|
||
"total_endpoints": 119,
|
||
"services": [
|
||
{
|
||
"id": "messenger",
|
||
"name": "Messenger",
|
||
"base_url": "https://ms.ove.rs",
|
||
"description": "OVE Messenger user, bot, OAuth, files, calls and realtime updates API.",
|
||
"endpoints": [
|
||
{
|
||
"method": "POST",
|
||
"path": "/register",
|
||
"group": "Аккаунт",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "Регистрация аккаунта",
|
||
"description": "Регистрация аккаунта. Возвращает JSON-ответ или стандартную JSON-ошибку.",
|
||
"body": {
|
||
"email": "you@example.com",
|
||
"password": "correct horse battery staple"
|
||
}
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/login",
|
||
"group": "Аккаунт",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "Вход по паролю",
|
||
"description": "Вход по паролю. Возвращает JSON-ответ или стандартную JSON-ошибку.",
|
||
"body": {
|
||
"email": "you@example.com",
|
||
"password": "correct horse battery staple"
|
||
}
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/auth/email/start",
|
||
"group": "Аккаунт",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "Запрос email-кода",
|
||
"description": "Запрос email-кода. Возвращает JSON-ответ или стандартную JSON-ошибку.",
|
||
"body": {
|
||
"email": "you@example.com"
|
||
}
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/auth/email/verify",
|
||
"group": "Аккаунт",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "Подтверждение email-кода",
|
||
"description": "Подтверждение email-кода. Возвращает JSON-ответ или стандартную JSON-ошибку.",
|
||
"body": {
|
||
"email": "you@example.com",
|
||
"code": "123456"
|
||
}
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/.well-known/openid-configuration",
|
||
"group": "OAuth",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "OIDC Discovery",
|
||
"description": "OIDC Discovery. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/.well-known/oauth-authorization-server",
|
||
"group": "OAuth",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "OAuth Server Metadata",
|
||
"description": "OAuth Server Metadata. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/oauth/jwks.json",
|
||
"group": "OAuth",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "Публичные ключи OIDC",
|
||
"description": "Публичные ключи OIDC. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/oauth/device_authorization",
|
||
"group": "OAuth",
|
||
"auth": "oauth_client",
|
||
"auth_label": "OAuth client",
|
||
"title": "Запуск Device Flow",
|
||
"description": "Создает device_code, user_code и verification URI для универсального входа через Messenger."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/oauth/device",
|
||
"group": "OAuth",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "Страница подтверждения Device Flow",
|
||
"description": "Страница подтверждения Device Flow. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/oauth/token",
|
||
"group": "OAuth",
|
||
"auth": "oauth_client",
|
||
"auth_label": "OAuth client",
|
||
"title": "Обмен device code на токены",
|
||
"description": "Обменивает подтвержденный device_code на OIDC access/id token. Во время ожидания возвращает authorization_pending."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/oauth/userinfo",
|
||
"group": "OAuth",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Профиль OIDC",
|
||
"description": "Профиль OIDC. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/oauth/device/request",
|
||
"group": "OAuth",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Данные запроса входа",
|
||
"description": "Данные запроса входа. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/oauth/device/decision",
|
||
"group": "OAuth",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Решение пользователя",
|
||
"description": "Решение пользователя. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/me",
|
||
"group": "Аккаунт",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Текущий пользователь",
|
||
"description": "Текущий пользователь. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/account/delete",
|
||
"group": "Аккаунт",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Удаление аккаунта",
|
||
"description": "Удаление аккаунта. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/username",
|
||
"group": "Аккаунт",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Установка username",
|
||
"description": "Установка username. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/name",
|
||
"group": "Аккаунт",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Изменение отображаемого имени",
|
||
"description": "Изменение отображаемого имени. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/profiles/description",
|
||
"group": "Аккаунт",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Описание профиля, бота или чата",
|
||
"description": "Описание профиля, бота или чата. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/privacy",
|
||
"group": "Аккаунт",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Настройки приватности",
|
||
"description": "Настройки приватности. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/contacts",
|
||
"group": "Контакты",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Список контактов",
|
||
"description": "Список контактов. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/contacts/add",
|
||
"group": "Контакты",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Добавление контакта",
|
||
"description": "Добавление контакта. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/contacts/delete",
|
||
"group": "Контакты",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Удаление контакта",
|
||
"description": "Удаление контакта. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/groups",
|
||
"group": "Чаты",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Создание группы",
|
||
"description": "Создание группы. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/channels",
|
||
"group": "Чаты",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Создание канала",
|
||
"description": "Создание канала. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/chats/title",
|
||
"group": "Чаты",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Изменение названия чата",
|
||
"description": "Изменение названия чата. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/channels/username",
|
||
"group": "Чаты",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Username канала",
|
||
"description": "Username канала. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/channels/comments/settings",
|
||
"group": "Чаты",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Настройки комментариев канала",
|
||
"description": "Настройки комментариев канала. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/channels/comments/send",
|
||
"group": "Чаты",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Комментарий к публикации",
|
||
"description": "Комментарий к публикации. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/channels/comments",
|
||
"group": "Чаты",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Комментарии к публикации",
|
||
"description": "Комментарии к публикации. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/chats/members/add",
|
||
"group": "Чаты",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Добавление участника",
|
||
"description": "Добавление участника. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/chats/members/remove",
|
||
"group": "Чаты",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Удаление участника",
|
||
"description": "Удаление участника. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/cloud-password",
|
||
"group": "Безопасность",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Облачный пароль",
|
||
"description": "Облачный пароль. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/cloud-password/reset",
|
||
"group": "Безопасность",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Сброс облачного пароля",
|
||
"description": "Сброс облачного пароля. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/sessions",
|
||
"group": "Безопасность",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Активные сессии",
|
||
"description": "Активные сессии. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/sessions/revoke",
|
||
"group": "Безопасность",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Завершение сессии",
|
||
"description": "Завершение сессии. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/sessions/revoke-others",
|
||
"group": "Безопасность",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Завершение других сессий",
|
||
"description": "Завершение других сессий. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/bots",
|
||
"group": "Боты",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Создание бота",
|
||
"description": "Создание бота. Возвращает JSON-ответ или стандартную JSON-ошибку.",
|
||
"body": {
|
||
"username": "shop_helper_bot",
|
||
"name": "Shop helper"
|
||
}
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/bots/token/reset",
|
||
"group": "Боты",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Перевыпуск bot token",
|
||
"description": "Перевыпуск bot token. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/e2e/key",
|
||
"group": "E2E",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Публикация E2E-ключа",
|
||
"description": "Публикация E2E-ключа. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/e2e/key",
|
||
"group": "E2E",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Публичный E2E-ключ",
|
||
"description": "Публичный E2E-ключ. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/e2e/backup",
|
||
"group": "E2E",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Сохранение E2E-копии",
|
||
"description": "Сохранение E2E-копии. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/e2e/backup",
|
||
"group": "E2E",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Резервная копия E2E",
|
||
"description": "Резервная копия E2E. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/e2e/reset",
|
||
"group": "E2E",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Сброс E2E-ключей",
|
||
"description": "Сброс E2E-ключей. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/wallet",
|
||
"group": "Dastars",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Баланс Dastars",
|
||
"description": "Баланс Dastars. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/wallet/send",
|
||
"group": "Dastars",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Перевод Dastars",
|
||
"description": "Перевод Dastars. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/wallet/history",
|
||
"group": "Dastars",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "История Dastars",
|
||
"description": "История Dastars. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/call",
|
||
"group": "Звонки",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Создание звонка",
|
||
"description": "Создание звонка. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/voice-ticket",
|
||
"group": "Звонки",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Билет голосовой сессии",
|
||
"description": "Билет голосовой сессии. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/voice/participants",
|
||
"group": "Звонки",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Участники голосовой сессии",
|
||
"description": "Участники голосовой сессии. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/voice",
|
||
"group": "Звонки",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Голосовой WebSocket",
|
||
"description": "Переключает соединение на WebSocket после получения voice ticket."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/send",
|
||
"group": "Сообщения",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Отправка текстового сообщения",
|
||
"description": "Отправляет сообщение без медиа. Для клиентской очереди используйте стабильный client_message_id.",
|
||
"body": {
|
||
"to": 42,
|
||
"text": "Привет!",
|
||
"client_message_id": "0190f6d4-example"
|
||
}
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/edit",
|
||
"group": "Сообщения",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Редактирование сообщения",
|
||
"description": "Редактирование сообщения. Возвращает JSON-ответ или стандартную JSON-ошибку.",
|
||
"body": {
|
||
"chat_id": 42,
|
||
"message_id": 1001,
|
||
"text": "Исправленный текст"
|
||
}
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/callback",
|
||
"group": "Боты",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Callback кнопки",
|
||
"description": "Callback кнопки. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/reactions",
|
||
"group": "Реакции",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Emoji-реакция",
|
||
"description": "Emoji-реакция. Возвращает JSON-ответ или стандартную JSON-ошибку.",
|
||
"body": {
|
||
"chat_id": 42,
|
||
"message_id": 1001,
|
||
"emoji": "🔥"
|
||
}
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/reactions/paid",
|
||
"group": "Реакции",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Платная реакция Dastars",
|
||
"description": "Переводит указанное количество Dastars автору сообщения; для бота — его владельцу. amount может быть больше 1.",
|
||
"body": {
|
||
"chat_id": 42,
|
||
"message_id": 1001,
|
||
"amount": 5
|
||
}
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/read",
|
||
"group": "Сообщения",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Отметка о прочтении",
|
||
"description": "Отметка о прочтении. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/delete",
|
||
"group": "Сообщения",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Удаление сообщения",
|
||
"description": "Удаление сообщения. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/favorite",
|
||
"group": "Сообщения",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Избранное сообщение",
|
||
"description": "Избранное сообщение. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/media/quote",
|
||
"group": "Файлы",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Расчет стоимости медиа",
|
||
"description": "Рассчитывает единую стоимость новых вложений: сумма байтов округляется вверх до MiB один раз на сообщение.",
|
||
"body": {
|
||
"media": [
|
||
{
|
||
"client_id": "attachment-1",
|
||
"name": "photo.jpg",
|
||
"mime": "image/jpeg",
|
||
"size": 524288
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/messages/prepare",
|
||
"group": "Файлы",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Подготовка сообщения с медиа",
|
||
"description": "Атомарно резервирует оплату и выдает до 10 upload tickets. Текст и media[] опциональны по отдельности, но сообщение не может быть пустым.",
|
||
"body": {
|
||
"to": 42,
|
||
"text": "Caption",
|
||
"client_message_id": "0190f6d4-media",
|
||
"media": [
|
||
{
|
||
"client_id": "attachment-1",
|
||
"name": "photo.jpg",
|
||
"mime": "image/jpeg",
|
||
"size": 524288
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/messages/commit",
|
||
"group": "Файлы",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Публикация сообщения с медиа",
|
||
"description": "Проверяет все загруженные вложения, одним платежом списывает DSR и публикует или редактирует одно сообщение.",
|
||
"body": {
|
||
"operation_id": "message-op-1-0190f6d4-media"
|
||
}
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/messages/cancel",
|
||
"group": "Файлы",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Отмена сообщения с медиа",
|
||
"description": "Удаляет незавершенные загрузки и отменяет резерв оплаты.",
|
||
"body": {
|
||
"operation_id": "message-op-1-0190f6d4-media"
|
||
}
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/forward",
|
||
"group": "Файлы",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Пересылка сообщения с медиа",
|
||
"description": "Пересылка сообщения с медиа. Возвращает JSON-ответ или стандартную JSON-ошибку.",
|
||
"body": {
|
||
"message_id": 1001,
|
||
"to": 42,
|
||
"client_message_id": "0190f6d4-forward"
|
||
}
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/file/ticket",
|
||
"group": "Файлы",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Билет скачивания файла",
|
||
"description": "Билет скачивания файла. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/nodes/status",
|
||
"group": "Сервис",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Статус сервисных узлов",
|
||
"description": "Статус сервисных узлов. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/chats",
|
||
"group": "Чаты",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Список чатов",
|
||
"description": "Список чатов. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/chats/delete",
|
||
"group": "Чаты",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Удаление чата",
|
||
"description": "Удаление чата. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/users/ban",
|
||
"group": "Модерация",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Блокировка пользователя",
|
||
"description": "Блокировка пользователя. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/users/unban",
|
||
"group": "Модерация",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Разблокировка пользователя",
|
||
"description": "Разблокировка пользователя. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/history",
|
||
"group": "Сообщения",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "История сообщений",
|
||
"description": "История сообщений. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/updates",
|
||
"group": "Updates",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Очередь обновлений",
|
||
"description": "Long polling событий клиента или бота. Bot updates долговечны и остаются до явного ACK."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/updates/ack",
|
||
"group": "Updates",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Подтверждение обновлений",
|
||
"description": "Подтверждение обновлений. Возвращает JSON-ответ или стандартную JSON-ошибку.",
|
||
"body": {
|
||
"update_id": 2048
|
||
}
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/file/{id}",
|
||
"group": "Файлы",
|
||
"auth": "bearer",
|
||
"auth_label": "Bearer",
|
||
"title": "Скачивание файла",
|
||
"description": "Скачивание файла. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/health/live",
|
||
"group": "Сервис",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "Проверка процесса Messenger",
|
||
"description": "Проверка процесса Messenger. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/health/ready",
|
||
"group": "Сервис",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "Готовность Messenger",
|
||
"description": "Готовность Messenger. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/metrics",
|
||
"group": "Сервис",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "Метрики Messenger",
|
||
"description": "Метрики Messenger. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"id": "gateway",
|
||
"name": "Crypto Gateway",
|
||
"base_url": "https://cr.ove.rs",
|
||
"description": "OVE multi-merchant cryptocurrency payments, checkout and operator API.",
|
||
"endpoints": [
|
||
{
|
||
"method": "GET",
|
||
"path": "/health",
|
||
"group": "Сервис",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "Состояние Gateway",
|
||
"description": "Состояние Gateway. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/v1/assets",
|
||
"group": "Сервис",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "Доступные активы",
|
||
"description": "Возвращает только пары asset/network, для которых wallet seed готов к работе."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/v1/invoices",
|
||
"group": "Invoices",
|
||
"auth": "hmac",
|
||
"auth_label": "HMAC",
|
||
"title": "Список invoices",
|
||
"description": "Создает invoice или возвращает историю с cursor pagination, в зависимости от HTTP-метода."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/v1/invoices",
|
||
"group": "Invoices",
|
||
"auth": "hmac",
|
||
"auth_label": "HMAC",
|
||
"title": "Создание invoice",
|
||
"description": "Создает invoice или возвращает историю с cursor pagination, в зависимости от HTTP-метода.",
|
||
"body": {
|
||
"merchant_order_id": "order-123",
|
||
"asset": "USDT",
|
||
"network": "tron",
|
||
"amount_atomic": "25000000",
|
||
"expires_in_seconds": 1800,
|
||
"description": "Order 123",
|
||
"success_url": "https://merchant.example/orders/123",
|
||
"metadata": {
|
||
"customer": "42"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/v1/invoices/{invoice_id}",
|
||
"group": "Invoices",
|
||
"auth": "hmac",
|
||
"auth_label": "HMAC",
|
||
"title": "Получение invoice",
|
||
"description": "Получение invoice. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/v1/withdrawals",
|
||
"group": "Withdrawals",
|
||
"auth": "hmac",
|
||
"auth_label": "HMAC",
|
||
"title": "Список withdrawals",
|
||
"description": "Создает withdrawal или возвращает историю. Для token assets разрешен только fee_mode=additional."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/v1/withdrawals",
|
||
"group": "Withdrawals",
|
||
"auth": "hmac",
|
||
"auth_label": "HMAC",
|
||
"title": "Создание withdrawal",
|
||
"description": "Создает withdrawal или возвращает историю. Для token assets разрешен только fee_mode=additional.",
|
||
"body": {
|
||
"asset": "USDT",
|
||
"network": "tron",
|
||
"amount_atomic": "10000000",
|
||
"address": "T...",
|
||
"fee_mode": "additional",
|
||
"metadata": {
|
||
"payout": "p-123"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/v1/withdrawals/{withdrawal_id}",
|
||
"group": "Withdrawals",
|
||
"auth": "hmac",
|
||
"auth_label": "HMAC",
|
||
"title": "Получение withdrawal",
|
||
"description": "Получение withdrawal. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/v1/balances",
|
||
"group": "Баланс",
|
||
"auth": "hmac",
|
||
"auth_label": "HMAC",
|
||
"title": "Merchant-балансы",
|
||
"description": "Merchant-балансы. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/v1/api-keys",
|
||
"group": "Ключи",
|
||
"auth": "hmac",
|
||
"auth_label": "HMAC",
|
||
"title": "Список API-ключей",
|
||
"description": "Список API-ключей. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/admin/v1/status",
|
||
"group": "Operator",
|
||
"auth": "admin",
|
||
"auth_label": "Admin Bearer",
|
||
"title": "Операторский статус",
|
||
"description": "Операторский статус. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/admin/v1/callbacks",
|
||
"group": "Operator",
|
||
"auth": "admin",
|
||
"auth_label": "Admin Bearer",
|
||
"title": "Инциденты callbacks",
|
||
"description": "Инциденты callbacks. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/admin/v1/consolidations",
|
||
"group": "Operator",
|
||
"auth": "admin",
|
||
"auth_label": "Admin Bearer",
|
||
"title": "Инциденты консолидации",
|
||
"description": "Инциденты консолидации. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/admin/v1/callbacks/{callback_id}/retry",
|
||
"group": "Operator",
|
||
"auth": "admin",
|
||
"auth_label": "Admin Bearer",
|
||
"title": "Повтор callback",
|
||
"description": "Повтор callback. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/admin/v1/merchants",
|
||
"group": "Operator",
|
||
"auth": "admin",
|
||
"auth_label": "Admin Bearer",
|
||
"title": "Создание merchant",
|
||
"description": "Создание merchant. Возвращает JSON-ответ или стандартную JSON-ошибку.",
|
||
"body": {
|
||
"name": "Example shop",
|
||
"callback_url": "https://merchant.example/payments",
|
||
"callback_hosts": [
|
||
"merchant.example"
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/admin/v1/fee-policies",
|
||
"group": "Operator",
|
||
"auth": "admin",
|
||
"auth_label": "Admin Bearer",
|
||
"title": "Глобальная fee policy",
|
||
"description": "Глобальная fee policy. Возвращает JSON-ответ или стандартную JSON-ошибку.",
|
||
"body": {
|
||
"asset": "USDT",
|
||
"network": "tron",
|
||
"platform_fee_basis_points": 500,
|
||
"platform_fee_cap_atomic": "10000000"
|
||
}
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/admin/v1/merchants/{merchant_id}/api-keys",
|
||
"group": "Operator",
|
||
"auth": "admin",
|
||
"auth_label": "Admin Bearer",
|
||
"title": "Выпуск merchant API-ключа",
|
||
"description": "Выпуск merchant API-ключа. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "DELETE",
|
||
"path": "/admin/v1/merchants/{merchant_id}/api-keys/{api_key_id}",
|
||
"group": "Operator",
|
||
"auth": "admin",
|
||
"auth_label": "Admin Bearer",
|
||
"title": "Отзыв merchant API-ключа",
|
||
"description": "Отзыв merchant API-ключа. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/admin/v1/merchants/{merchant_id}/policies",
|
||
"group": "Operator",
|
||
"auth": "admin",
|
||
"auth_label": "Admin Bearer",
|
||
"title": "Merchant policy",
|
||
"description": "Merchant policy. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/admin/v1/withdrawals/{withdrawal_id}/resolve",
|
||
"group": "Operator",
|
||
"auth": "admin",
|
||
"auth_label": "Admin Bearer",
|
||
"title": "Решение manual review",
|
||
"description": "Решение manual review. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/admin/v1/consolidations/{consolidation_id}/retry",
|
||
"group": "Operator",
|
||
"auth": "admin",
|
||
"auth_label": "Admin Bearer",
|
||
"title": "Повтор консолидации",
|
||
"description": "Повтор консолидации. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/pay/{token}",
|
||
"group": "Checkout",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "Hosted checkout",
|
||
"description": "Публичная HTML-страница оплаты с QR, серверно-синхронизированным таймером и live status."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/pay/{token}/status",
|
||
"group": "Checkout",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "Статус hosted checkout",
|
||
"description": "JSON-состояние checkout для polling; включает серверное время и срок действия."
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"id": "donations",
|
||
"name": "Donations",
|
||
"base_url": "https://do.ove.rs",
|
||
"description": "OVE donation pages, Messenger login, Crypto Gateway payments and OBS alerts.",
|
||
"endpoints": [
|
||
{
|
||
"method": "GET",
|
||
"path": "/health",
|
||
"group": "Сервис",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "Состояние Gateway",
|
||
"description": "Состояние Gateway. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/api/assets",
|
||
"group": "Сервис",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "Активы для донатов",
|
||
"description": "Активы для донатов. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/api/auth/start",
|
||
"group": "Авторизация",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "Вход стримера через Messenger",
|
||
"description": "Вход стримера через Messenger. Возвращает JSON-ответ или стандартную JSON-ошибку.",
|
||
"body": {
|
||
"email": "streamer@example.com"
|
||
}
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/api/auth/poll/{flow}",
|
||
"group": "Авторизация",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "Статус входа стримера",
|
||
"description": "Статус входа стримера. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/api/logout",
|
||
"group": "Авторизация",
|
||
"auth": "session",
|
||
"auth_label": "Secure session",
|
||
"title": "Выход из Donation Service",
|
||
"description": "Выход из Donation Service. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/api/me",
|
||
"group": "Стример",
|
||
"auth": "session",
|
||
"auth_label": "Secure session",
|
||
"title": "Панель стримера",
|
||
"description": "Панель стримера. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "PATCH",
|
||
"path": "/api/profile",
|
||
"group": "Стример",
|
||
"auth": "session",
|
||
"auth_label": "Secure session",
|
||
"title": "Настройки страницы и OBS",
|
||
"description": "Настройки страницы и OBS. Возвращает JSON-ответ или стандартную JSON-ошибку.",
|
||
"body": {
|
||
"display_name": "My channel",
|
||
"slug": "my-channel",
|
||
"accent_color": "#b9f541",
|
||
"duration_seconds": 8,
|
||
"show_donor_name": true,
|
||
"show_message": true
|
||
}
|
||
},
|
||
{
|
||
"method": "PUT",
|
||
"path": "/api/sound",
|
||
"group": "OBS",
|
||
"auth": "session",
|
||
"auth_label": "Secure session",
|
||
"title": "Загрузка звука",
|
||
"description": "Загрузка звука. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "DELETE",
|
||
"path": "/api/sound",
|
||
"group": "OBS",
|
||
"auth": "session",
|
||
"auth_label": "Secure session",
|
||
"title": "Удаление звука",
|
||
"description": "Удаление звука. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/api/widget/rotate",
|
||
"group": "OBS",
|
||
"auth": "session",
|
||
"auth_label": "Secure session",
|
||
"title": "Ротация секретной OBS-ссылки",
|
||
"description": "Ротация секретной OBS-ссылки. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/api/widget/test",
|
||
"group": "OBS",
|
||
"auth": "session",
|
||
"auth_label": "Secure session",
|
||
"title": "Тестовый OBS alert",
|
||
"description": "Тестовый OBS alert. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/api/widget/{token}/config",
|
||
"group": "OBS",
|
||
"auth": "widget",
|
||
"auth_label": "Widget token",
|
||
"title": "Конфигурация OBS-виджета",
|
||
"description": "Конфигурация OBS-виджета. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/api/widget/{token}/events",
|
||
"group": "OBS",
|
||
"auth": "widget",
|
||
"auth_label": "Widget token",
|
||
"title": "SSE-события OBS-виджета",
|
||
"description": "Долгоживущий SSE-поток для OBS Browser Source. Виджет сам ставит alerts в очередь."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/api/public/creators/{slug}",
|
||
"group": "Донаты",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "Публичная страница стримера",
|
||
"description": "Публичная страница стримера. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/api/public/donations",
|
||
"group": "Донаты",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "Создание доната",
|
||
"description": "Создает Gateway invoice с комиссией 5%. cover_fee=false удерживает комиссию из суммы; cover_fee=true точно увеличивает платеж так, чтобы стример получил введенную сумму после комиссии. Все расчеты выполняются в atomic без float.",
|
||
"body": {
|
||
"slug": "my-channel",
|
||
"donor_name": "Anonymous",
|
||
"message": "Great stream!",
|
||
"asset": "USDT",
|
||
"network": "tron",
|
||
"amount": "25.5",
|
||
"cover_fee": true
|
||
}
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/api/public/donations/{token}/status",
|
||
"group": "Донаты",
|
||
"auth": "public",
|
||
"auth_label": "public",
|
||
"title": "Статус доната",
|
||
"description": "Статус доната. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "POST",
|
||
"path": "/api/withdrawals",
|
||
"group": "Вывод",
|
||
"auth": "session",
|
||
"auth_label": "Secure session",
|
||
"title": "Запрос вывода",
|
||
"description": "Резервирует баланс и запускает новый Messenger Device Flow с описанием суммы и адреса.",
|
||
"body": {
|
||
"asset": "USDT",
|
||
"network": "tron",
|
||
"amount": "10",
|
||
"address": "TExampleRecipientAddress"
|
||
}
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/api/withdrawals/{flow}/poll",
|
||
"group": "Вывод",
|
||
"auth": "session",
|
||
"auth_label": "Secure session",
|
||
"title": "Подтверждение вывода через Messenger",
|
||
"description": "После свайпа тем же Messenger-пользователем идемпотентно отправляет withdrawal в Gateway."
|
||
},
|
||
{
|
||
"method": "GET",
|
||
"path": "/api/admin/status",
|
||
"group": "Оператор",
|
||
"auth": "session",
|
||
"auth_label": "Secure session",
|
||
"title": "Статус Donation Service",
|
||
"description": "Статус Donation Service. Возвращает JSON-ответ или стандартную JSON-ошибку."
|
||
},
|
||
{
|
||
"method": "PATCH",
|
||
"path": "/api/admin/creators/{creator_id}/blocked",
|
||
"group": "Оператор",
|
||
"auth": "session",
|
||
"auth_label": "Secure session",
|
||
"title": "Блокировка страницы стримера",
|
||
"description": "Блокировка страницы стримера. Возвращает JSON-ответ или стандартную JSON-ошибку.",
|
||
"body": {
|
||
"blocked": true
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|