/meПрофиль, баланс сатоши и лимиты
Подписки, серверы и проверки — в одном API.
Меньше ручной работы. Больше контроля.
{
"success": true,
"data": {
"…": "данные вашего профиля"
},
"meta": {
"version": "1",
"requestId": "REQUEST_UUID"
}
}Откройте ShareSub API в основном боте и скопируйте личный ключ. Доступ к разделу выдаёт администратор. API работает только с вашими подписками и устройствами; в ресейл-ботах он недоступен.
Базовый адрес: https://api.sharesub.ru/v1. Для каждого метода нужен заголовок Authorization: Bearer YOUR_API_KEY. Передавайте JSON с Content-Type: application/json.
curl 'https://api.sharesub.ru/v1/me' \
-H 'Authorization: Bearer YOUR_API_KEY'Ваш ключ — только ваш. Не публикуйте его и не передавайте в URL. Перевыпуск в боте немедленно отключает старый ключ. Не вставляйте личный ключ в публичные примеры.
Один запрос принимает от 1 до 12 подписок. Сервер возвращает идентификатор пакета — дальше можно наблюдать за импортом и проверками, не удерживая соединение.
curl 'https://api.sharesub.ru/v1/subscriptions/import' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"subscriptions":[
{"url":"https://provider.example/sub/token","name":"Мой VPN"},
{"url":"https://another.example/sub/token","name":"Второй VPN"}
]}'202 Accepted — это очередь, не результат проверки. Импорты разных пользователей и их серверы проверяются последовательно одним обработчиком. Повторный домен провайдера не создаёт дубликат. Поддерживаются те же конфигурации и правила, что в боте.
{
"success": true,
"data": {
"batchId": "UUID",
"status": "QUEUED",
"accepted": 2,
"pollUrl": "https://api.sharesub.ru/v1/imports/UUID",
"jobs": [
{
"id": "JOB_UUID",
"status": "QUEUED"
}
]
},
"meta": {
"requestId": "REQUEST_UUID",
"timestamp": "ISO-8601",
"version": "1"
}
}QUEUED→FETCHING→CHECKING→COMPLETEDОпрашивайте GET /imports/{batchId} или GET /jobs/{jobId} раз в 3–5 секунд. Неуспешные финальные стадии: FAILED и CANCELLED. Поле progress содержит total, checked, working, failed и percent. Ping и результат каждого сервера доступны в GET /subscriptions/{id}/hosts, поле check (latencyMs — задержка).
Если ни один сервер не работает, подписка отправляется в архив, в активный пул не попадает и сатоши не начисляются. История пакетов доступна 30 дней.
Лимит импорта считается по подпискам, а не HTTP-запросам: пакет из 12 расходует весь минутный лимит. Ключи одного пользователя разделяют лимиты; перевыпуск их не обнуляет. Не отправляйте заново успешно принятый пакет — храните batchId и опрашивайте статус.
К пути добавьте https://api.sharesub.ru/v1. Идентификаторы подписок берите из /subscriptions, серверов — из /subscriptions/{id}/hosts. Байты возвращаются строками, даты — ISO 8601 UTC. Пагинация: page и limit, от 1 до 50 элементов на страницу.
/meПрофиль, баланс сатоши и лимиты
/settingsНастройки: isAnonymous, notificationsEnabled, showHostExpiry, groupServers (boolean)
/subscriptionПерсональная ссылка подключения
/subscription/rotateПеревыпустить ссылку; старая ссылка и устройства отключаются
/subscription/shareВременная ссылка: 1 час, раз в сутки
/devicesСписок своих устройств
/devices/{key}Удалить своё устройство по deviceKey
/subscriptions/importПакетный импорт, 1–12 подписок. Ответ 202 и batchId
/imports/{batchId}Прогресс всех подписок пакета; история 30 дней
/jobs/{jobId}Прогресс отдельного импорта, проверки или синхронизации
/subscriptions?scope=active&page=1&limit=20Свои подписки. scope: active или deleted; limit: 1–50
/subscriptions/{id}Статус, срок, трафик провайдера и число хостов
/subscriptions/{id}/hosts?page=1&limit=20Серверы, последние проверки, ping (latencyMs) и защита
/subscriptions/{id}/nameПереименовать: {"name":"Мой VPN"}, до 32 символов
/subscriptions/{id}/urlЗаменить ссылку через очередь: {"url":"https://provider.example/sub/token"}; затем запустите sync
/subscriptions/{id}Переместить в архив на 3 дня
/subscriptions/{id}/purgeНавсегда удалить свою архивную подписку
/subscriptions/{id}/syncСинхронизация через очередь; не чаще раза в минуту на пользователя
/subscriptions/{id}/restoreВосстановить из архива только после успешной проверки
/subscriptions/{id}/deviceОбновить идентификатор устройства провайдера; раз в минуту
/subscriptions/{id}/hosts/{hostId}Выбрать/исключить сервер: {"selected":true}
/subscriptions/{id}/hostsВыбрать/исключить все доступные серверы: {"selected":true}
/subscriptions/{id}/hosts/{hostId}/checkПоставить повторную проверку сервера в последовательную очередь
/subscriptions/{id}/protectionShareSub Nodes: {"enabled":true}; БС-хосты остаются без защиты
/shopКаталог магазина
/shop/purchasesСвои покупки
/shop/{productId}/buyКупить товар за сатоши
Ничего не найдено. Попробуйте другой запрос или HTTP-метод.
В ответе всегда есть результат операции и метаданные. Сохраняйте requestId — он помогает найти конкретный запрос при диагностике.
{
"success": false,
"error": {
"code": "RATE_LIMITED",
"message": "Лимит исчерпан.",
"retryAfterSeconds": 42
},
"meta": {
"requestId": "REQUEST_UUID",
"timestamp": "ISO-8601",
"version": "1"
}
}400Некорректные параметры запроса.401Ключ не передан, неверен или отозван.403Аккаунт неактивен.404Ресурс не найден или принадлежит другому пользователю.409Конфликт состояния ресурса.429Лимит исчерпан. Учитывайте заголовок Retry-After.500 / 503Временная недоступность сервиса.PROVIDER_ALREADY_EXISTSNO_SUPPORTED_HOSTSNO_WORKING_HOSTSSUBSCRIPTION_EXPIREDTRAFFIC_EXHAUSTEDACCESS_REVOKEDIMPORT_FAILEDПолучите личный ключ в основном боте ShareSub. Подключите свою автоматизацию — подписки и проверки останутся под вашим контролем.
Вернуться к быстрому старту