Files
docs-site/public/api-manifest.json
2026-08-14 00:13:56 +05:00

1248 lines
51 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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
}
}
]
}
]
}