API v3 Включён

TProtoRU

API для разработчиков: персональная VLESS-ссылка на каждого пользователя.

Как это работает

1
Ключ — получи в Telegram-боте (кнопка «Получить ключ»)
2
Пароль — активируется администратором, после этого ключ работает
3
Happ — в боте задай название, описание, объявление и Telegram для подписок
4
POST /api/vless — передай key, password, userId, validDays → получи subscriptionUrl

Авторизация

Все поля ниже передаются в теле JSON-запроса к POST /api/vless

ПолеОбязательноОписание
keyдаКлюч разработчика (из Telegram-бота)
passwordдаПароль (выдаётся после активации)
userIdдаУникальный ID конечного пользователя. 1 userId = 1 подключение
validDaysдаСрок в днях, не больше остатка по ключу

GET /api

GET /api

Документация (эта страница). JSON: https://vbotpn.sytes.net/api?format=json

POST /api/vless

POST /api/vless

Создаёт персональную ссылку подписки для пользователя

ПолеТипОбязательноОписание
keystringдаКлюч разработчика
passwordstringдаПароль
userIdstringдаID конечного пользователя
validDaysnumberдаСрок в днях

Тело запроса

{
  "key": "nvk_a1b2c3d4e5f6",
  "password": "my-secret-password",
  "userId": "user_1042",
  "validDays": 7
}

Ответ

{
  "ok": true,
  "userId": "user_1042",
  "validDays": 7,
  "expiresAt": "2026-06-22T12:00:00.000Z",
  "subscriptionUrl": "https://vbotpn.sytes.net/sub/c4a8f2b1e3",
  "created": true,
  "serverCount": 12
}

Примеры кода

Выбери язык — пример обновится ниже

curl -X POST "https://vbotpn.sytes.net/api/vless" \
  -H "Content-Type: application/json" \
  -d '{
    "key": "nvk_your_key",
    "password": "your_password",
    "userId": "user_123",
    "validDays": 7
  }'
const res = await fetch('https://vbotpn.sytes.net/api/vless', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    key: 'nvk_your_key',
    password: 'your_password',
    userId: 'user_123',
    validDays: 7,
  }),
});
const data = await res.json();
console.log(data.subscriptionUrl);
import requests

r = requests.post(
    'https://vbotpn.sytes.net/api/vless',
    json={
        'key': 'nvk_your_key',
        'password': 'your_password',
        'userId': 'user_123',
        'validDays': 7,
    },
)
print(r.json()['subscriptionUrl'])
$ch = curl_init('https://vbotpn.sytes.net/api/vless');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS => json_encode([
        'key' => 'nvk_your_key',
        'password' => 'your_password',
        'userId' => 'user_123',
        'validDays' => 7,
    ]),
    CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
echo $data['subscriptionUrl'];

Ошибки

  • 503 api_disabled — API выключен
  • 403 password_not_set — пароль не активирован
  • 403 key_frozen — ключ заморожен
  • 400 valid_days_exceeded — срок больше остатка по ключу