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

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

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

Обзор

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


GET /configs

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

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

Query Parameters

ParameterTypeRequiredDescription
limitnumberНетКоличество записей на страницу (по умолчанию 100)
offsetnumberНетСмещение для пагинации

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

curl -X GET "https://api.stealthsurf.net/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, amnezia-wg-2)
    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        // Дней для автопродления
    ipv6?: string | null                    // IPv6 адрес (если назначен)
  }>
}

GET /configs/tariffs

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

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

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

curl -X GET "https://api.stealthsurf.net/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ДаПротокол: vless, trojan, trojan-2901, outline, hysteria2, vless-2410, shadowsocks-2022, wg, amnezia-wg-2

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

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

Ответ

Возвращается до 5 серверов, отсортированных по убыванию свободных слотов.

{
  status: true,
  statusCode: 200,
  data: Array<{
    id: number                // ID сервера
    ip: string                // IP адрес сервера
    available_slots: number   // Свободные слоты (max_configs - config_count)
  }>
}

GET /configs/:config_id/serverStats

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

Rate Limit: 3 req / 5 sec

URL Parameters

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

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

curl -X GET "https://api.stealthsurf.net/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
    }>
  } | null                    // null, если у сервера нет адреса/статистики
}

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НетПредпочтительный сервер (выбирается автоматически, если не указан; взаимоисключающий с server_ids)
server_idsnumber[]НетСписок предпочтительных серверов по возрастанию задержки, сначала самые быстрые (1-50, взаимоисключающий с server_id)
payment_method_idnumberНетID способа оплаты
tariff_idnumberНетID тарифа
promocodestringНетПромокод (4-32 символа). Взаимоисключим с payment_method_id/tariff_id; недопустим вместе с as_key
use_extended_settingsbooleanНетВключить расширенные настройки
use_warpbooleanНетИспользовать Cloudflare WARP
disable_flow_realitybooleanНетОтключить Flow Reality
disable_realitybooleanНетОтключить Reality
change_snibooleanНетИзменить SNI
disable_snibooleanНетУстановить QQ-fingerprint
enable_family_filterbooleanНетСемейный фильтр
pass_all_traffic_through_vpnbooleanНетВесь трафик через VPN
block_bittorrentbooleanНетБлокировать BitTorrent
use_xhttpbooleanНетИспользовать XHTTP вместо TCP (не сочетается с use_grpc)
use_grpcbooleanНетИспользовать gRPC вместо TCP (не сочетается с use_xhttp)
randomize_fingerprintbooleanНетРандомизированный uTLS-отпечаток вместо chrome
grpc_multi_modebooleanНетВключить gRPC multi mode (TunMulti); требует use_grpc = true
use_loopbacksbooleanНетПерелив трафика в следующую группу балансировщика при полном отказе группы
as_keybooleanНетКупить как ключ активации
enable_auto_renewalbooleanНетВключить автопродление

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

curl -X POST "https://api.stealthsurf.net/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
    xray_config?: string
    awg_config?: string
    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
promocodestringНетПромокод (4-32 символа). Взаимоисключим с payment_method_id/tariff_id
payment_method_idnumberНетID способа оплаты
tariff_idnumberНетID тарифа
enable_auto_renewalbooleanНетВключить автопродление

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

curl -X POST "https://api.stealthsurf.net/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НетПредпочтительный сервер (взаимоисключающий с server_ids)
server_idsnumber[]НетСписок предпочтительных серверов по возрастанию задержки, сначала самые быстрые (1-50, взаимоисключающий с server_id)
use_extended_settingsbooleanНетРасширенные настройки
use_warpbooleanНетWARP
disable_realitybooleanНетОтключить Reality
change_snibooleanНетИзменить SNI
enable_family_filterbooleanНетСемейный фильтр
disable_flow_realitybooleanНетОтключить Flow Reality
disable_snibooleanНетУстановить QQ-fingerprint
block_bittorrentbooleanНетБлокировать BitTorrent
pass_all_traffic_through_vpnbooleanНетВесь трафик через VPN
use_xhttpbooleanНетXHTTP (не сочетается с use_grpc)
use_grpcbooleanНетgRPC (не сочетается с use_xhttp)
randomize_fingerprintbooleanНетРандомизированный uTLS-отпечаток вместо chrome
grpc_multi_modebooleanНетВключить gRPC multi mode (TunMulti); требует use_grpc = true
use_loopbacksbooleanНетПерелив трафика в следующую группу балансировщика при полном отказе группы

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

curl -X PATCH "https://api.stealthsurf.net/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.net/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НетПубличный ключ
use_loopbacksbooleanНетПерелив трафика в следующую группу балансировщика при полном отказе группы

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

curl -X PATCH "https://api.stealthsurf.net/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
  }
}

POST /configs/:config_id/resetXrayConfig

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

Rate Limit: 1 req / 4 sec

URL Parameters

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

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

curl -X POST "https://api.stealthsurf.net/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 size (должен быть ≥ jmin)1-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
h1stringНетДиапазон обфускации заголовка h1 (формат min-max)
h2stringНетДиапазон обфускации заголовка h2 (формат min-max)
h3stringНетДиапазон обфускации заголовка h3 (формат min-max)
h4stringНетДиапазон обфускации заголовка h4 (формат min-max)
i1stringНетСигнатурный CPS-пакет i1
i2stringНетСигнатурный CPS-пакет i2
i3stringНетСигнатурный CPS-пакет i3
i4stringНетСигнатурный CPS-пакет i4
i5stringНетСигнатурный CPS-пакет i5

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

curl -X PATCH "https://api.stealthsurf.net/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
    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.net/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.net/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/protocols

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

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

URL Parameters

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

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

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

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    protocols: string[]   // Доступные протоколы (http, socks5, mtproto)
  }
}

Возможна ошибка NOT_FOUND, если конфигурация не найдена.


GET /configs/:config_id/subconfig

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

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

URL Parameters

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

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

curl -X GET "https://api.stealthsurf.net/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)
  } | null                      // null, если субконфиг не создан
}

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

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

curl -X POST "https://api.stealthsurf.net/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
    tls_domain?: string       // TLS домен (для MTProto)
  }
}

PATCH /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

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

curl -X PATCH "https://api.stealthsurf.net/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
    tls_domain?: string       // TLS домен (для MTProto)
  }
}

DELETE /configs/:config_id/subconfig

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

Rate Limit: 1 req / 1 sec

URL Parameters

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

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

curl -X DELETE "https://api.stealthsurf.net/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/subconfig/protocolsURL ParametersПример запросаОтвет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Пример запросаОтвет