DadwaySubs 1.2

Инструкция по API

Управление итоговыми подписками из внешних систем

Начало работы

API позволяет получать источники 3x-ui, создавать итоговые подписки, назначать им источники, изменять срок действия и активность, а также удалять подписки.

Базовый адрес
https://subs.dadway.ru
Интерактивная схема

Получение токена

  1. Вернитесь в административную панель.
  2. Откройте раздел Настройки.
  3. Нажмите Сгенерировать API-токен.
  4. Скопируйте и сохраните токен: полное значение показывается только один раз.

Авторизация

Каждый запрос к /api/v1/* должен содержать заголовок Bearer. Для запросов с телом добавьте Content-Type: application/json.

Authorization: Bearer dws_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json
Не передавайте API-токен в URL и не сохраняйте его в Git. Перевыпуск токена немедленно отключает предыдущий.

Получение ID источников

Перед созданием подписки запросите числовые ID доступных источников.

GET/api/v1/sources
curl -sS https://subs.dadway.ru/api/v1/sources \
  -H "Authorization: Bearer $API_TOKEN"

Ответ содержит id, unique_id, название, URL, порядок сортировки, статус и срок каждого источника.

Создание итоговой подписки

POST/api/v1/subscriptions
curl -sS -X POST https://subs.dadway.ru/api/v1/subscriptions \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Клиент №1",
    "environment": "test",
    "public_id": "client-001",
    "remark": "dadway.ru",
    "active": true,
    "expires_at": "2026-12-31T23:59:59Z",
    "source_ids": [1, 2, 5],
    "update_interval_hours": 1
  }'
ПолеОбязательноОписание
nameДаНазвание, до 120 символов
environmentНетprod или test; по умолчанию test
public_idНетУникальный ID; если не указан, генерируется автоматически
remarkНетПримечание при импорте, по умолчанию dadway.ru
activeНетПо умолчанию true
expires_atНетДата ISO 8601 или null
source_idsНетМассив числовых ID источников
update_interval_hoursНетОт 1 до 24, по умолчанию 1 час

Минимальное тело запроса: {"name":"Новая подписка"}. Сервер вернёт готовый public_url.

Получение и изменение подписки

МетодМаршрутНазначение
GET/api/v1/subscriptionsВсе подписки
GET/api/v1/subscriptions/{public_id}Одна подписка
PATCH/api/v1/subscriptions/{public_id}/expirationИзменить срок
PATCH/api/v1/subscriptions/{public_id}/statusБлокировать или активировать
PUT/api/v1/subscriptions/{public_id}/sourcesПолностью заменить список источников

Продлить срок

curl -sS -X PATCH \
  https://subs.dadway.ru/api/v1/subscriptions/client-001/expiration \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"expires_at":"2027-01-31T23:59:59Z"}'

Заблокировать

curl -sS -X PATCH \
  https://subs.dadway.ru/api/v1/subscriptions/client-001/status \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"active":false}'

Заменить источники

curl -sS -X PUT \
  https://subs.dadway.ru/api/v1/subscriptions/client-001/sources \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"source_ids":[2,3,7]}'
Окончившаяся подписка возвращает пустой ответ 410 Gone. Отключённая подписка возвращает пустой 404 Not Found; источники при этом не запрашиваются.

Удаление подписки

DELETE/api/v1/subscriptions/{public_id}
curl -sS -X DELETE \
  https://subs.dadway.ru/api/v1/subscriptions/client-001 \
  -H "Authorization: Bearer $API_TOKEN"

Успешный ответ: 204 No Content. Публичная ссылка перестаёт существовать.

Коды ответов

200 OKЗапрос выполнен
201 CreatedПодписка создана
204 No ContentПодписка удалена или токен отозван
401 UnauthorizedТокен отсутствует или недействителен
404 Not FoundПодписка не найдена или отключена
409 Conflictpublic_id уже существует
410 GoneСрок публичной подписки истёк
422 Unprocessable EntityНекорректные поля или ID источников

Важные ограничения

  • Используйте API только через HTTPS.
  • Храните токен в переменной окружения или менеджере секретов.
  • При подозрении на утечку перевыпустите токен в «Настройках».
  • Блокировка в DadwaySubs закрывает получение и обновление подписки. Уже импортированные VLESS/VMess-ключи необходимо дополнительно отключать на серверах 3x-ui.