ShareSubDevelopers
One API. Your entire network.

Ваш VPN.Ваши правила.

Подписки, серверы и проверки — в одном API.
Меньше ручной работы. Больше контроля.

SHARESUB API / PERSONAL ACCESS / HTTPS
api.sharesub.ru / v1JSON
GET/v1/me → 200 OK
{
  "success": true,
  "data": {
    "…": "данные вашего профиля"
  },
  "meta": {
    "version": "1",
    "requestId": "REQUEST_UUID"
  }
}
Bearer authenticationПример ответа
01 — Connect. Build. Repeat.
12 / минПодписок на пользователя
До 12 за разПодписок в одном запросе
По очередиБез одновременного запуска проверок
01 / GETTING STARTED

Один ключ. Всё под контролем.

Откройте ShareSub API в основном боте и скопируйте личный ключ. Доступ к разделу выдаёт администратор. API работает только с вашими подписками и устройствами; в ресейл-ботах он недоступен.

01Получите ключОсновной бот → ShareSub API
02Добавьте заголовокAuthorization: Bearer YOUR_API_KEY
03Отправьте запросHTTPS · JSON · API v1

Базовый адрес: https://api.sharesub.ru/v1. Для каждого метода нужен заголовок Authorization: Bearer YOUR_API_KEY. Передавайте JSON с Content-Type: application/json.

cURL / первый запрос
curl 'https://api.sharesub.ru/v1/me' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Ваш ключ — только ваш. Не публикуйте его и не передавайте в URL. Перевыпуск в боте немедленно отключает старый ключ. Не вставляйте личный ключ в публичные примеры.

02 / IMPORT & CHECK

Добавьте подписки. Следите за прогрессом.

Один запрос принимает от 1 до 12 подписок. Сервер возвращает идентификатор пакета — дальше можно наблюдать за импортом и проверками, не удерживая соединение.

cURL / пакетный импорт
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 — это очередь, не результат проверки. Импорты разных пользователей и их серверы проверяются последовательно одним обработчиком. Повторный домен провайдера не создаёт дубликат. Поддерживаются те же конфигурации и правила, что в боте.

JSON / 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"
  }
}

От запроса до рабочего сервера

QUEUEDFETCHINGCHECKINGCOMPLETED

Опрашивайте GET /imports/{batchId} или GET /jobs/{jobId} раз в 3–5 секунд. Неуспешные финальные стадии: FAILED и CANCELLED. Поле progress содержит total, checked, working, failed и percent. Ping и результат каждого сервера доступны в GET /subscriptions/{id}/hosts, поле check (latencyMs — задержка).

Если ни один сервер не работает, подписка отправляется в архив, в активный пул не попадает и сатоши не начисляются. История пакетов доступна 30 дней.

Лимиты без сюрпризов

Импорт подписок12 за скользящие 60 секунд
Все HTTP-запросы120 / мин на пользователя
Незавершённые задания48 на пользователя · 240 на сервис
Повторные проверки хостов12 / мин

Лимит импорта считается по подпискам, а не HTTP-запросам: пакет из 12 расходует весь минутный лимит. Ключи одного пользователя разделяют лимиты; перевыпуск их не обнуляет. Не отправляйте заново успешно принятый пакет — храните batchId и опрашивайте статус.

03 / API REFERENCE

Найдётся метод для каждого действия.

К пути добавьте https://api.sharesub.ru/v1. Идентификаторы подписок берите из /subscriptions, серверов — из /subscriptions/{id}/hosts. Байты возвращаются строками, даты — ISO 8601 UTC. Пагинация: page и limit, от 1 до 50 элементов на страницу.

27 / 27
GET
/me

Профиль, баланс сатоши и лимиты

GET / PATCH
/settings

Настройки: isAnonymous, notificationsEnabled, showHostExpiry, groupServers (boolean)

GET
/subscription

Персональная ссылка подключения

POST
/subscription/rotate

Перевыпустить ссылку; старая ссылка и устройства отключаются

POST
/subscription/share

Временная ссылка: 1 час, раз в сутки

GET
/devices

Список своих устройств

DELETE
/devices/{key}

Удалить своё устройство по deviceKey

POST
/subscriptions/import

Пакетный импорт, 1–12 подписок. Ответ 202 и batchId

GET
/imports/{batchId}

Прогресс всех подписок пакета; история 30 дней

GET
/jobs/{jobId}

Прогресс отдельного импорта, проверки или синхронизации

GET
/subscriptions?scope=active&page=1&limit=20

Свои подписки. scope: active или deleted; limit: 1–50

GET
/subscriptions/{id}

Статус, срок, трафик провайдера и число хостов

GET
/subscriptions/{id}/hosts?page=1&limit=20

Серверы, последние проверки, ping (latencyMs) и защита

PATCH
/subscriptions/{id}/name

Переименовать: {"name":"Мой VPN"}, до 32 символов

PATCH
/subscriptions/{id}/url

Заменить ссылку через очередь: {"url":"https://provider.example/sub/token"}; затем запустите sync

DELETE
/subscriptions/{id}

Переместить в архив на 3 дня

DELETE
/subscriptions/{id}/purge

Навсегда удалить свою архивную подписку

POST
/subscriptions/{id}/sync

Синхронизация через очередь; не чаще раза в минуту на пользователя

POST
/subscriptions/{id}/restore

Восстановить из архива только после успешной проверки

POST
/subscriptions/{id}/device

Обновить идентификатор устройства провайдера; раз в минуту

PATCH
/subscriptions/{id}/hosts/{hostId}

Выбрать/исключить сервер: {"selected":true}

PATCH
/subscriptions/{id}/hosts

Выбрать/исключить все доступные серверы: {"selected":true}

POST
/subscriptions/{id}/hosts/{hostId}/check

Поставить повторную проверку сервера в последовательную очередь

PATCH
/subscriptions/{id}/protection

ShareSub Nodes: {"enabled":true}; БС-хосты остаются без защиты

GET
/shop

Каталог магазина

GET
/shop/purchases

Свои покупки

POST
/shop/{productId}/buy

Купить товар за сатоши

04 / RESPONSES & ERRORS

Понятные ответы. Предсказуемые ошибки.

В ответе всегда есть результат операции и метаданные. Сохраняйте requestId — он помогает найти конкретный запрос при диагностике.

JSON / пример ошибки
{
  "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. Подключите свою автоматизацию — подписки и проверки останутся под вашим контролем.

Вернуться к быстрому старту