StealthSurf VPNStealthSurf VPN
Доступные методы

Конфигурации

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

Обзор

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


GET /configs

Получить список всех VPN конфигураций пользователя.

Rate Limit: глобальный (300 req/min)

Query Parameters

ParameterTypeRequiredDescription
limitnumberНетМаксимальное количество записей (1-1000)
offsetnumberНетСмещение для пагинации

Пример запроса

curl -X GET "https://api.stealthsurf.app/configs?limit=10&offset=0" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

{
  status: true,
  statusCode: 200,
  data: Array<{
    id: number                              // ID конфигурации
    connection_url: string                  // URL подключения (vless://, ss://, etc.)
    title: string | null                    // Название конфигурации
    location_id: number                     // ID локации сервера
    server_id: number                       // ID сервера
    protocol: string                        // Протокол (vless, trojan, trojan-2901, outline, hysteria2, vless-2410, shadowsocks-2022, wg)
    expires_at: number                      // Unix timestamp окончания подписки
    created_at: number                      // Unix timestamp создания
    is_extended_settings_enabled?: boolean  // Расширенные настройки включены
    xray_config?: string                    // Xray конфиг (если расширенные настройки)
    awg_config?: string                     // AWG конфиг (если AmneziaWG)
    flags?: string[]                        // Флаги (noChangeCountry, etc.)
    is_online: boolean | null               // Статус сервера
    auto_renewal: boolean                   // Автопродление включено
    auto_renewal_days: number | null        // Дней для автопродления
  }>
}

GET /configs/tariffs

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

Rate Limit: глобальный (300 req/min)

Пример запроса

curl -X GET "https://api.stealthsurf.app/configs/tariffs" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

{
  status: true,
  statusCode: 200,
  data: Array<{
    id: number                    // ID платежного метода
    display_name: string          // Название (SBP, Card, TON, USDT TRC20, etc.)
    currency: string              // Валюта (RUB, TON, USDT)
    min_amount: number            // Минимальная сумма платежа
    tariffs: Array<{
      id: number                  // ID тарифа
      days: number                // Количество дней
      price: number               // Цена
      old_price?: number          // Старая цена (для отображения скидки)
    }>
  }>
}

GET /configs/available-servers

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

Rate Limit: 5 req / 5 sec

Query Parameters

ParameterTypeRequiredDescription
location_idnumberДаID локации
protocolstringДаVPN-протокол

Пример запроса

curl -X GET "https://api.stealthsurf.app/configs/available-servers?location_id=1&protocol=vless" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

{
  status: true,
  statusCode: 200,
  data: Array<{
    id: number                // ID сервера
    available_slots: number   // Доступные слоты
  }>
}

GET /configs/:config_id/serverStats

Получить статистику сервера конфигурации.

Rate Limit: 3 req / 5 sec

URL Parameters

ParameterTypeRequiredDescription
config_idnumberДаID конфигурации

Пример запроса

curl -X GET "https://api.stealthsurf.app/configs/123/serverStats" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    host: string              // IP адрес сервера
    status: string            // Статус (up, down)
    uptime_days: number       // Время работы в днях
    cpu_model: string         // Модель CPU
    stats: Array<{
      date: string            // Дата (YYYY-MM-DD)
      cpu: number             // CPU usage %
      ram: number             // RAM usage %
      up: number              // Upload Mbps
      down: number            // Download Mbps
    }>
  }
}

POST /configs

Создать новую VPN конфигурацию.

Rate Limit: 1 req / 1 sec

Request Body

FieldTypeRequiredDescription
location_idnumberДа*ID локации (*не нужно если as_key=true)
protocolstringДа*vless, trojan, trojan-2901, outline, hysteria2, vless-2410, shadowsocks-2022, wg, amnezia-wg-2 (*не нужно если as_key=true)
server_idnumberНетПредпочтительный сервер (выбирается автоматически, если не указан)
payment_method_idnumberНетID способа оплаты
tariff_idnumberНетID тарифа
promocodestringНетПромокод (4-32 символа)
use_extended_settingsbooleanНетВключить расширенные настройки
use_warpbooleanНетИспользовать Cloudflare WARP
disable_flow_realitybooleanНетОтключить Flow Reality
disable_realitybooleanНетОтключить Reality
change_snibooleanНетИзменить SNI
block_local_networkbooleanНетБлокировать локальную сеть
disable_snibooleanНетОтключить SNI
enable_family_filterbooleanНетСемейный фильтр
pass_all_traffic_through_vpnbooleanНетВесь трафик через VPN
block_bittorrentbooleanНетБлокировать BitTorrent
use_xhttpbooleanНетИспользовать XHTTP
use_grpcbooleanНетИспользовать gRPC
as_keybooleanНетКупить как ключ активации
enable_auto_renewalbooleanНетВключить автопродление

Пример запроса

curl -X POST "https://api.stealthsurf.app/configs" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY" \
  -H "Content-Type: application/json" \
  -d '{
    "location_id": 1,
    "protocol": "vless",
    "promocode": "MYCODE"
  }'

Ответ (успех с промокодом)

{
  status: true,
  statusCode: 201,
  data: {
    id: number
    connection_url: string
    title: string | null
    location_id: number
    server_id: number
    protocol: string
    expires_at: number
    created_at: number
    is_extended_settings_enabled?: boolean
    is_online: boolean
    auto_renewal: boolean
    auto_renewal_days: number | null
  }
}

Ответ (требуется оплата)

{
  status: true,
  statusCode: 201,
  data: {
    link: string    // URL для оплаты
  }
}

Ответ (как ключ активации)

{
  status: true,
  statusCode: 201,
  data: {
    promocode: string    // Ключ активации
    days: number         // Количество дней
  }
}

POST /configs/renewal/:config_id

Продлить конфигурацию.

Rate Limit: 1 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
config_idnumberДаID конфигурации

Request Body

FieldTypeRequiredDescription
payment_method_idnumberНетID способа оплаты
tariff_idnumberНетID тарифа
promocodestringНетПромокод (4-32 символа)
enable_auto_renewalbooleanНетВключить автопродление

Пример запроса

curl -X POST "https://api.stealthsurf.app/configs/renewal/123" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY" \
  -H "Content-Type: application/json" \
  -d '{
    "payment_method_id": 1,
    "tariff_id": 2
  }'

Ответ (успех)

{
  status: true,
  statusCode: 201,
  data: {
    id: number          // ID конфигурации
    expires_at: number  // Новый Unix timestamp окончания
  }
}

Ответ (требуется оплата)

{
  status: true,
  statusCode: 201,
  data: {
    link: string    // URL для оплаты
  }
}

PATCH /configs/:config_id/settings

Изменить настройки конфигурации (локацию, протокол).

Rate Limit: 1 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
config_idnumberДаID конфигурации

Request Body

FieldTypeRequiredDescription
location_idnumberДаID новой локации
protocolstringДаПротокол: vless, trojan, trojan-2901, outline, hysteria2, vless-2410, shadowsocks-2022, wg, amnezia-wg-2
server_idnumberНетПредпочтительный сервер
use_extended_settingsbooleanНетРасширенные настройки
use_warpbooleanНетWARP
disable_realitybooleanНетОтключить Reality
change_snibooleanНетИзменить SNI
enable_family_filterbooleanНетСемейный фильтр
disable_flow_realitybooleanНетОтключить Flow Reality
disable_snibooleanНетОтключить SNI
block_local_networkbooleanНетБлокировать локальную сеть
block_bittorrentbooleanНетБлокировать BitTorrent
pass_all_traffic_through_vpnbooleanНетВесь трафик через VPN
use_xhttpbooleanНетXHTTP
use_grpcbooleanНетgRPC

Пример запроса

curl -X PATCH "https://api.stealthsurf.app/configs/123/settings" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY" \
  -H "Content-Type: application/json" \
  -d '{
    "location_id": 5,
    "protocol": "vless"
  }'

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    connection_url: string   // Новый URL подключения
    server_id: number        // ID нового сервера
    xray_config?: string     // Xray конфиг (если расширенные настройки)
    awg_config?: string      // AWG конфиг (если AmneziaWG)
  }
}

POST /configs/makeBridge

Создать мост между двумя конфигурациями (двойной VPN).

Rate Limit: 1 req / 1 sec

Request Body

FieldTypeRequiredDescription
first_config_idnumberДаID входной конфигурации
second_config_idnumberДаID выходной конфигурации
first_typestringНет"config", "paid_option" или "cloud" (по умолчанию "config")
second_typestringНет"config", "paid_option" или "cloud" (по умолчанию "config")

Пример запроса

curl -X POST "https://api.stealthsurf.app/configs/makeBridge" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY" \
  -H "Content-Type: application/json" \
  -d '{
    "first_config_id": 123,
    "second_config_id": 456
  }'

Ответ

{
  status: true,
  statusCode: 201,
  data: true
}

PATCH /configs/:config_id/XrayConfig

Обновить Xray конфигурацию.

Rate Limit: 1 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
config_idnumberДаID конфигурации

Request Body

FieldTypeRequiredDescription
xray_configstringДаНовый Xray конфиг
public_keystring | nullНетПубличный ключ

Пример запроса

curl -X PATCH "https://api.stealthsurf.app/configs/123/XrayConfig" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY" \
  -H "Content-Type: application/json" \
  -d '{
    "xray_config": "{...}"
  }'

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    connection_url: string
    server_id: number
    xray_config?: string
  }
}

POST /configs/:config_id/resetXrayConfig

Сбросить XRay конфигурацию к настройкам по умолчанию.

Rate Limit: 1 req / 4 sec

URL Parameters

ParameterTypeRequiredDescription
config_idnumberДаID конфигурации

Пример запроса

curl -X POST "https://api.stealthsurf.app/configs/123/resetXrayConfig" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    connection_url: string
    server_id: number
    xray_config?: string
  }
}

PATCH /configs/:config_id/awgConfig

Обновить AWG конфиг (AmneziaWG параметры обфускации).

Rate Limit: 1 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
config_idnumberДаID конфигурации

Request Body

FieldTypeRequiredDescriptionRange
portnumberНетUDP порт10000-65535
jcnumberНетJunk packet count1-128
jminnumberНетJunk min size1-1280
jmaxnumberНетJunk max size1-1280
s1numberНетInit packet junk size0-4294967295
s2numberНетResponse packet junk size0-4294967295
s3numberНетInit packet magic header0-4294967295
s4numberНетResponse packet magic header0-4294967295
h1numberНетHeader obfuscation h11-4294967295
h2numberНетHeader obfuscation h21-4294967295
h3numberНетHeader obfuscation h31-4294967295
h4numberНетHeader obfuscation h41-4294967295

Пример запроса

curl -X PATCH "https://api.stealthsurf.app/configs/123/awgConfig" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY" \
  -H "Content-Type: application/json" \
  -d '{
    "jc": 4,
    "jmin": 50,
    "jmax": 1000
  }'

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    connection_url: string
    server_id: number
    xray_config?: string
    awg_config?: string
  }
}

PATCH /configs/title/:config_id

Обновить название конфигурации.

Rate Limit: 1 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
config_idnumberДаID конфигурации

Request Body

FieldTypeRequiredDescription
titlestring | nullДаНовое название (1-64 символа) или null

Пример запроса

curl -X PATCH "https://api.stealthsurf.app/configs/title/123" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Мой конфиг"
  }'

Ответ

{
  status: true,
  statusCode: 200,
  data: true
}

PATCH /configs/:config_id/auto-renewal

Переключить автопродление конфига.

Rate Limit: 1 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
config_idnumberДаID конфигурации

Request Body

FieldTypeRequiredDescription
enabledbooleanДаВключить/выключить автопродление
daysnumberНетКоличество дней для автопродления (обязательно при включении)

Пример запроса

curl -X PATCH "https://api.stealthsurf.app/configs/123/auto-renewal" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY" \
  -H "Content-Type: application/json" \
  -d '{
    "enabled": true,
    "days": 30
  }'

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    auto_renewal: boolean
    auto_renewal_days: number | null
  }
}

Субконфиги

Субконфиги — это дополнительные HTTP/SOCKS5/MTProto прокси для существующего конфига.


GET /configs/:config_id/subconfig

Получить субконфиг.

Rate Limit: глобальный (300 req/min)

URL Parameters

ParameterTypeRequiredDescription
config_idnumberДаID конфигурации

Пример запроса

curl -X GET "https://api.stealthsurf.app/configs/123/subconfig" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    id: number
    protocol: string            // http | socks5 | mtproto
    connection_url: string      // http://user:pass@server:8080
    tls_domain?: string         // TLS домен (для MTProto)
  }
}

POST /configs/:config_id/subconfig

Создать субконфиг.

Rate Limit: 1 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
config_idnumberДаID конфигурации

Request Body

FieldTypeRequiredDescription
protocolstringДаПротокол: http, socks5 или mtproto
tls_domainstringНетTLS домен (SNI) для MTProto

Протокол mtproto недоступен для конфигов на локации 12 (Россия ).

Пример запроса

curl -X POST "https://api.stealthsurf.app/configs/123/subconfig" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY" \
  -H "Content-Type: application/json" \
  -d '{
    "protocol": "http"
  }'

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    id: number
    protocol: string
    connection_url: string
  }
}

PATCH /configs/:config_id/subconfig

Изменить протокол субконфига.

Rate Limit: 1 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
config_idnumberДаID конфигурации

Request Body

FieldTypeRequiredDescription
protocolstringДаНовый протокол: http, socks5 или mtproto

Пример запроса

curl -X PATCH "https://api.stealthsurf.app/configs/123/subconfig" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY" \
  -H "Content-Type: application/json" \
  -d '{
    "protocol": "socks5"
  }'

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    id: number
    protocol: string
    connection_url: string
  }
}

DELETE /configs/:config_id/subconfig

Удалить субконфиг.

Rate Limit: 1 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
config_idnumberДаID конфигурации

Пример запроса

curl -X DELETE "https://api.stealthsurf.app/configs/123/subconfig" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

{
  status: true,
  statusCode: 200,
  data: true
}

Помогла ли вам эта статья?

Содержание

ОбзорGET /configsQuery ParametersПример запросаОтветGET /configs/tariffsПример запросаОтветGET /configs/available-serversQuery ParametersПример запросаОтветGET /configs/:config_id/serverStatsURL ParametersПример запросаОтветPOST /configsRequest BodyПример запросаОтвет (успех с промокодом)Ответ (требуется оплата)Ответ (как ключ активации)POST /configs/renewal/:config_idURL ParametersRequest BodyПример запросаОтвет (успех)Ответ (требуется оплата)PATCH /configs/:config_id/settingsURL ParametersRequest BodyПример запросаОтветPOST /configs/makeBridgeRequest BodyПример запросаОтветPATCH /configs/:config_id/XrayConfigURL ParametersRequest BodyПример запросаОтветPOST /configs/:config_id/resetXrayConfigURL ParametersПример запросаОтветPATCH /configs/:config_id/awgConfigURL ParametersRequest BodyПример запросаОтветPATCH /configs/title/:config_idURL ParametersRequest BodyПример запросаОтветPATCH /configs/:config_id/auto-renewalURL ParametersRequest BodyПример запросаОтветСубконфигиGET /configs/:config_id/subconfigURL ParametersПример запросаОтветPOST /configs/:config_id/subconfigURL ParametersRequest BodyПример запросаОтветPATCH /configs/:config_id/subconfigURL ParametersRequest BodyПример запросаОтветDELETE /configs/:config_id/subconfigURL ParametersПример запросаОтвет