API v3
Включён
TProtoRU
API для разработчиков: персональная VLESS-ссылка на каждого пользователя.
JSON
https://vbotpn.sytes.net/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
Документация (эта страница). JSON: https://vbotpn.sytes.net/api?format=json
POST /api/vless
Создаёт персональную ссылку подписки для пользователя
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
key | string | да | Ключ разработчика |
password | string | да | Пароль |
userId | string | да | ID конечного пользователя |
validDays | number | да | Срок в днях |
Тело запроса
{
"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'];
Ошибки
503api_disabled — API выключен403password_not_set — пароль не активирован403key_frozen — ключ заморожен400valid_days_exceeded — срок больше остатка по ключу