AlorVPN B2B White Label API

Техническая документация по интеграции VPN-инфраструктуры для ваших ботов, сайтов и CRM-систем. Управляйте серверами и доступом не отвлекаясь на настройки нод.

Общие сведения

Наше White Label API позволяет вам продавать или выдавать VPN-подписки сторонним клиентам, используя мощности нашей глобальной сети серверов. Вы полностью управляете тарифами, брендингом и логикой во внешнем проекте, в то время как AlorVPN берет на себя всю техническую часть:

Авторизация запросов

Все запросы к нашему API должны выполняться по протоколу HTTPS на базовый URL https://sub.alorvpn.fun.

Каждое обращение к API должно сопровождаться обязательным HTTP-заголовком с секретным API-ключом партнера:

X-API-Key: alor-partner-xxxxxxxxxxxxxxxxxxxxx

API-ключ партнера регистрируется администратором в панели управления бота.

Создание подписки

POST /api/v1/external/subscription/create

Метод регистрирует новую 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..."
  ]
}

Проверка статуса

POST /api/v1/external/subscription/status

Метод проверяет статус активности подписки, актуальность купонов, дату истечения и выдает актуальные конфигурации.

Параметры запроса (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..."
  ]
}

Блокировка / Активация

POST /api/v1/external/subscription/toggle

Метод позволяет вам со своей стороны приостановить или возобновить действие любой подписки (например, при неоплате тарифа в вашем боте).

Параметры запроса (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), наш сервер автоматически отдает конфигурацию в нужном формате:

Если вы хотите, чтобы ваш домен полностью скрывал 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()