AlorVPN B2B White Label API
Техническая документация по интеграции VPN-инфраструктуры для ваших ботов, сайтов и CRM-систем. Управляйте серверами и доступом не отвлекаясь на настройки нод.
Общие сведения
Наше White Label API позволяет вам продавать или выдавать VPN-подписки сторонним клиентам, используя мощности нашей глобальной сети серверов. Вы полностью управляете тарифами, брендингом и логикой во внешнем проекте, в то время как AlorVPN берет на себя всю техническую часть:
- Настройку протоколов обхода блокировок (Trojan Reality).
- Мгновенное добавление и удаление ключей на серверах.
- Генерацию оптимальных конфигураций под разные приложения (Happ, Nekobox, v2rayNG и др.).
Авторизация запросов
Все запросы к нашему API должны выполняться по протоколу HTTPS на базовый URL https://sub.alorvpn.fun.
Каждое обращение к API должно сопровождаться обязательным HTTP-заголовком с секретным API-ключом партнера:
X-API-Key: alor-partner-xxxxxxxxxxxxxxxxxxxxx
API-ключ партнера регистрируется администратором в панели управления бота.
Создание подписки
Метод регистрирует новую VPN-подписку в системе, генерирует уникальный UUID и возвращает готовые конфигурации серверов.
Параметры запроса (JSON):
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| plan_days | integer | нет | Срок подписки в днях. По умолчанию 30 дней. |
| uuid | string | нет | Ваш кастомный UUID. Если не указан, сгенерируется автоматически. |
| names / rename | string | нет | Переименование серверов. Формат: id:НовоеИмя,id2:Имя2 (например: germany:🇩🇪 Германия VIP,finland:🇫🇮 Финляндия). |
| limit | integer | нет | Лимит на количество возвращаемых серверов в подписке. |
| prefix / suffix | string | нет | Префикс или суффикс для добавления ко всем именам серверов (например: "prefix": "[AlorVPN] "). |
| order | string | нет | Кастомная сортировка серверов по ID через запятую (например: germany,finland). |
| include / nodes | string | нет | Белый список разрешенных ID серверов через запятую. Остальные будут скрыты. |
| exclude / exclude_nodes | string | нет | Черный список скрываемых ID серверов через запятую. |
| only_rf / only_regular | boolean / string | нет | Если true, оставляет только сервера обхода глушилок (only_rf) или только стандартные сервера (only_regular). |
Пример запроса с кастомизацией (curl):
curl -X POST https://sub.alorvpn.fun/api/v1/external/subscription/create -H "X-API-Key: alor-partner-ваш_ключ" -H "Content-Type: application/json" -d '{
"plan_days": 30,
"names": "germany:🇩🇪 VIP Berlin,finland:🇫🇮 VIP Helsinki",
"prefix": "⚡ ",
"limit": 3,
"only_regular": "true"
}'
Ответ при успешном создании (200 OK):
{
"ok": true,
"token": "7a3f8b9c2d1e...",
"uuid": "4f55dbbb-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"subscription_url": "https://sub.alorvpn.fun/sub/7a3f8b9c2d1e...",
"expires_at": "2026-06-22T20:00:00.000000+00:00",
"plan_days": 30,
"vless_links": [
"trojan://4f55dbbb-xxxx-xxxx-xxxx-xxxxxxxxxxxx@de.alorvpn.fun:443?security=reality...",
"trojan://4f55dbbb-xxxx-xxxx-xxxx-xxxxxxxxxxxx@fi.alorvpn.fun:443?security=reality..."
]
}
Проверка статуса
Метод проверяет статус активности подписки, актуальность купонов, дату истечения и выдает актуальные конфигурации.
Параметры запроса (JSON):
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| token | string | да | Секретный токен подписки, полученный при создании. |
Пример запроса (curl):
curl -X POST https://sub.alorvpn.fun/api/v1/external/subscription/status -H "X-API-Key: alor-partner-ваш_ключ" -H "Content-Type: application/json" -d '{"token": "7a3f8b9c2d1e..."}'
Ответ при успешной проверке (200 OK):
{
"ok": true,
"token": "7a3f8b9c2d1e...",
"uuid": "4f55dbbb-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"is_active": true,
"expires_at": "2026-06-22T20:00:00.000000+00:00",
"created_at": "2026-05-23T20:00:00.000000+00:00",
"vless_links": [
"trojan://4f55dbbb-xxxx-xxxx-xxxx-xxxxxxxxxxxx@de.alorvpn.fun:443?security=reality...",
"trojan://4f55dbbb-xxxx-xxxx-xxxx-xxxxxxxxxxxx@fi.alorvpn.fun:443?security=reality..."
]
}
Блокировка / Активация
Метод позволяет вам со своей стороны приостановить или возобновить действие любой подписки (например, при неоплате тарифа в вашем боте).
Параметры запроса (JSON):
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| token | string | да | Секретный токен подписки. |
| is_active | integer | да | 1 — разблокировать, 0 — заблокировать подписку. |
Пример запроса (curl):
curl -X POST https://sub.alorvpn.fun/api/v1/external/subscription/toggle -H "X-API-Key: alor-partner-ваш_ключ" -H "Content-Type: application/json" -d '{"token": "7a3f8b9c2d1e...", "is_active": 0}'
Ответ (200 OK):
{
"ok": true,
"token": "7a3f8b9c2d1e...",
"is_active": false
}
Формат подключения для клиентов
Выданная в API ссылка subscription_url является универсальной точкой входа.
В зависимости от того, какое приложение делает к ней запрос (определяется по заголовку User-Agent), наш сервер автоматически отдает конфигурацию в нужном формате:
- Nekobox / v2rayNG / V2rayN: возвращает сырой плоский список Trojan-ссылок на все доступные сервера.
- Clash / Clash Verge / Shadowrocket: возвращает автонастройку в формате YAML.
- Happ: возвращает зашифрованный JSON-профиль.
Если вы хотите, чтобы ваш домен полностью скрывал AlorVPN от глаз пользователей, вы можете настроить проксирование (Reverse Proxy) на Nginx вашего сайта:
location ~ ^/sub/(.*)$ {
proxy_pass https://sub.alorvpn.fun/sub/$1;
proxy_set_header Host sub.alorvpn.fun;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header User-Agent $http_user_agent;
proxy_ssl_server_name on;
}
Гибкая кастомизация серверов (Query-параметры)
Вы можете на лету кастомизировать список, названия, лимиты и порядок серверов в подписке, просто добавляя GET-параметры к выданной subscription_url:
| Параметр | Описание | Пример использования |
|---|---|---|
| limit | Ограничивает максимальное количество серверов в подписке. | ?limit=3 |
| nodes / include | Включает в подписку только перечисленные ID серверов (через запятую). | ?nodes=germany,finland |
| exclude | Исключает определенные сервера из подписки. | ?exclude=germany |
| prefix | Добавляет указанную строку-префикс к названиям всех серверов. | ?prefix=🚀 Alor - |
| suffix | Добавляет указанную строку-суффикс к названиям всех серверов. | ?suffix= (Pro) |
| names / rename | Кастомное переименование конкретных серверов в формате id:name. |
?names=germany:🇩🇪 Германия,finland:🇫🇮 Финка |
| order | Задает точный порядок сортировки серверов по их ID. Остальные будут в конце. | ?order=finland,germany |
| only_rf | Оставляет только сервера для обхода глушилок (TSPU). | ?only_rf=true |
| only_regular | Исключает сервера для обхода глушилок, оставляя только обычные зарубежные. | ?only_regular=true |
Вы можете свободно комбинировать эти параметры, например:
https://sub.alorvpn.fun/sub/TOKEN?limit=3&prefix=⭐+&names=germany:Германия
Python Интеграция
Готовый класс для отправки запросов к API, который можно легко скопировать и вставить в проект вашего Telegram-бота:
import requests class AlorVPNAPI: def __init__(self, api_key: str, base_url: str = "https://sub.alorvpn.fun"): self.base_url = base_url.rstrip("/") self.headers = { "X-API-Key": api_key, "Content-Type": "application/json" } def create_subscription(self, plan_days: int = 30, custom_uuid: str = None) -> dict: # Создает подписку и возвращает данные с VLESS-ссылками url = f"{self.base_url}/api/v1/external/subscription/create" payload = {"plan_days": plan_days} if custom_uuid: payload["uuid"] = custom_uuid response = requests.post(url, json=payload, headers=self.headers) return response.json() def get_status(self, token: str) -> dict: # Проверяет статус активности подписки url = f"{self.base_url}/api/v1/external/subscription/status" payload = {"token": token} response = requests.post(url, json=payload, headers=self.headers) return response.json() def toggle_subscription(self, token: str, is_active: bool) -> dict: # Блокирует (is_active=False) или разблокирует (is_active=True) подписку url = f"{self.base_url}/api/v1/external/subscription/toggle" payload = { "token": token, "is_active": 1 if is_active else 0 } response = requests.post(url, json=payload, headers=self.headers) return response.json()