DadwaySubs 1.4

Инструкция по 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, название, площадку region (msk или spb), 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",
    "region": "msk",
    "public_id": "client-001",
    "remark": "dadway.ru",
    "cost": 1490.00,
    "active": true,
    "expires_at": "2026-12-31T23:59:59Z",
    "update_interval_hours": 1
  }'
ПолеОбязательноОписание
nameДаНазвание, до 120 символов
environmentНетprod или test; по умолчанию test
regionНетmsk, spb или all; по умолчанию all
public_idНетУникальный ID; если не указан, генерируется автоматически
remarkНетПримечание при импорте, по умолчанию dadway.ru
costНетСправочная стоимость для отчётов, неотрицательное число с двумя знаками после запятой
activeНетПо умолчанию true
expires_atНетДата окончания в ISO 8601 или null
created_atНетДата и время создания в ISO 8601; по умолчанию устанавливается текущее время, позднее может быть изменена в панели
source_idsНетЕсли отсутствует — автовыбор по region; явные ID должны соответствовать площадке
update_interval_hoursНетОт 1 до 24, по умолчанию 1 час
msk автоматически назначает все источники msk, spb — все источники spb, all — все источники. Явный source_ids может ограничить выбор совместимым подмножеством.

Минимальное тело запроса: {"name":"Новая подписка"}. Будет выбрана площадка all, назначены все источники и возвращён готовый 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]}'

Все указанные источники должны соответствовать region итоговой подписки; для all разрешены обе площадки.

Окончившаяся подписка возвращает пустой ответ 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.