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

Платные опции

Методы для управления платными опциями: покупка, управление устройствами, лимитами и настройками.

Обзор

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


GET /paid-options

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

Rate Limit: 20 req / 60 sec

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

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

Ответ

{
  status: true,
  statusCode: 200,
  data: Array<{
    option_id: number       // ID типа платной опции
    expires_at: number      // Unix timestamp
    configs?: Array<{       // Для white_internet
      index: number
      original_title: string
      custom_title: string | null
      is_online: boolean
    }>
    auto_renewal: boolean
    auto_renewal_days: number | null
  }>
}

GET /paid-options/tariffs

Получить тарифы платных опций.

Rate Limit: 20 req / 60 sec

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

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

Ответ

{
  status: true,
  statusCode: 200,
  data: Array<{
    id: number              // ID платной опции
    option_key: string      // Ключ опции (white_internet, etc.)
    title: string
    caption: string
    description: string
    payment_methods: Array<{
      id: number
      display_name: string
      currency: string
      min_amount: number | null
      tariffs: Array<{
        id: number
        days: number
        price: number
        old_price?: number      // Старая цена (для отображения скидки)
      }>
    }>
  }>
}

POST /paid-options

Создать заказ на платную опцию.

Rate Limit: 1 req / 1 sec

Request Body

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

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

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

Ответ

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

GET /paid-options/:id/devices

Получить устройства Remnawave.

Rate Limit: 20 req / 60 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID платной опции

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

curl -X GET "https://api.stealthsurf.app/paid-options/123/devices" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    total: number
    devices: Array<{
      hwid: string
      platform: string
      os_version: string
      device_model: string
      created_at: number
    }>
  }
}

GET /paid-options/:id/subscription

Получить информацию о подписке платной опции.

Rate Limit: 20 req / 60 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID платной опции

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

curl -X GET "https://api.stealthsurf.app/paid-options/123/subscription" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    used_traffic_bytes: number
    lifetime_used_traffic_bytes: number
    device_limit: number | null       // null = безлимит
    traffic_limit_bytes: number       // 0 = безлимит
    status: string                    // active | disabled | limited | expired
  }
}

PATCH /paid-options/:id/limits

Обновить лимиты устройств и трафика.

Rate Limit: 1 req / 5 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID платной опции

Request Body

FieldTypeRequiredDescription
device_limitnumberНетЛимит устройств (0 = безлимит)
traffic_limitnumberНетЛимит трафика в байтах (0 = безлимит)

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

curl -X PATCH "https://api.stealthsurf.app/paid-options/123/limits" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY" \
  -H "Content-Type: application/json" \
  -d '{
    "device_limit": 5,
    "traffic_limit": 10737418240
  }'

Ответ

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

PATCH /paid-options/:id/titles/:index

Установить пользовательское название для конфига white_internet.

Rate Limit: 5 req / 2 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID платной опции
indexnumberДаИндекс конфига

Request Body

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

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

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

Ответ

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

DELETE /paid-options/:id/titles/:index

Удалить пользовательское название.

Rate Limit: 5 req / 2 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID платной опции
indexnumberДаИндекс конфига

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

curl -X DELETE "https://api.stealthsurf.app/paid-options/123/titles/0" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

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

GET /paid-options/:id/stats/:index

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

Rate Limit: 3 req / 5 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID платной опции
indexnumberДаИндекс конфига

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

curl -X GET "https://api.stealthsurf.app/paid-options/123/stats/0" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    host: string
    status: string
    uptime_days: number
    cpu_model: string
    stats: Array<{
      date: string
      cpu: number
      ram: number
      up: number
      down: number
    }>
  }
}

DELETE /paid-options/:id/devices/:device_id

Удалить устройство Remnawave.

Rate Limit: 10 req / 60 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID платной опции
device_idstringДаID устройства (hwid)

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

curl -X DELETE "https://api.stealthsurf.app/paid-options/123/devices/abc123" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

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

DELETE /paid-options/:id/devices

Удалить все устройства Remnawave.

Rate Limit: 1 req / 5 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID платной опции

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

curl -X DELETE "https://api.stealthsurf.app/paid-options/123/devices" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

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

PATCH /paid-options/:id/auto-renewal

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

Rate Limit: 1 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID платной опции

Request Body

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

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

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

Конфигурации платных опций


POST /paid-options/:id/configs

Создать VPN конфиг для платной опции.

Rate Limit: 1 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID платной опции пользователя

Request Body

FieldTypeRequiredDescription
protocolstringДаПротокол: vless, trojan, trojan-2901, outline, hysteria2, vless-2410, shadowsocks-2022
titlestringНетНазвание конфига (1-64 символа)
use_extended_settingsbooleanНетРасширенные настройки
use_warpbooleanНет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

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

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

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    id: number
    server_id: number
    connection_url: string
    title: string | null
    protocol: string
    created_at: number
    is_extended_settings_enabled: boolean
    is_online: boolean
  }
}

PATCH /paid-options/:id/configs/:configId/settings

Обновить настройки конфига платной опции.

Rate Limit: 1 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID платной опции пользователя
configIdnumberДаID конфига

Request Body

FieldTypeRequiredDescription
protocolstringДаНовый протокол
use_extended_settingsbooleanНетРасширенные настройки
use_warpbooleanНетWARP
...Остальные настройки аналогичны POST

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

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

Ответ

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

PATCH /paid-options/:id/configs/:configId/xray

Обновить XRay конфиг для конфига платной опции.

Rate Limit: 1 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID платной опции пользователя
configIdnumberДаID конфига

Request Body

FieldTypeRequiredDescription
xray_configstringДаXRay конфигурация
public_keystringДаПубличный ключ

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

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

Ответ

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

PATCH /paid-options/:id/configs/:configId/title

Обновить название конфига платной опции.

Rate Limit: 1 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID платной опции пользователя
configIdnumberДаID конфига

Request Body

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

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

curl -X PATCH "https://api.stealthsurf.app/paid-options/123/configs/456/title" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Новое название"
  }'

Ответ

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

GET /paid-options/:id/configs/:configId/stats

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

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

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID платной опции пользователя
configIdnumberДаID конфига

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

curl -X GET "https://api.stealthsurf.app/paid-options/123/configs/456/stats" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    host: string
    status: string
    uptime_days: number
    cpu_model: string
    stats: Array<{
      date: string
      cpu: number
      ram: number
      up: number
      down: number
    }>
  }
}

Субконфиги платных опций


GET /paid-options/:id/configs/:configId/subconfig

Получить субконфиг конфигурации платной опции.

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

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID платной опции пользователя
configIdnumberДаID конфига

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

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

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    id: number
    protocol: string            // http | socks5
    connection_url: string      // http://user:pass@server:8080
  }
}

POST /paid-options/:id/configs/:configId/subconfig

Создать субконфиг для конфигурации платной опции.

Rate Limit: 1 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID платной опции пользователя
configIdnumberДаID конфига

Request Body

FieldTypeRequiredDescription
protocolstringДаПротокол: http или socks5

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

curl -X POST "https://api.stealthsurf.app/paid-options/123/configs/456/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 /paid-options/:id/configs/:configId/subconfig

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

Rate Limit: 1 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID платной опции пользователя
configIdnumberДаID конфига

Request Body

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

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

curl -X PATCH "https://api.stealthsurf.app/paid-options/123/configs/456/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 /paid-options/:id/configs/:configId/subconfig

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

Rate Limit: 1 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID платной опции пользователя
configIdnumberДаID конфига

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

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

Ответ

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

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

Содержание

ОбзорGET /paid-optionsПример запросаОтветGET /paid-options/tariffsПример запросаОтветPOST /paid-optionsRequest BodyПример запросаОтветGET /paid-options/:id/devicesURL ParametersПример запросаОтветGET /paid-options/:id/subscriptionURL ParametersПример запросаОтветPATCH /paid-options/:id/limitsURL ParametersRequest BodyПример запросаОтветPATCH /paid-options/:id/titles/:indexURL ParametersRequest BodyПример запросаОтветDELETE /paid-options/:id/titles/:indexURL ParametersПример запросаОтветGET /paid-options/:id/stats/:indexURL ParametersПример запросаОтветDELETE /paid-options/:id/devices/:device_idURL ParametersПример запросаОтветDELETE /paid-options/:id/devicesURL ParametersПример запросаОтветPATCH /paid-options/:id/auto-renewalURL ParametersRequest BodyПример запросаОтветКонфигурации платных опцийPOST /paid-options/:id/configsURL ParametersRequest BodyПример запросаОтветPATCH /paid-options/:id/configs/:configId/settingsURL ParametersRequest BodyПример запросаОтветPATCH /paid-options/:id/configs/:configId/xrayURL ParametersRequest BodyПример запросаОтветPATCH /paid-options/:id/configs/:configId/titleURL ParametersRequest BodyПример запросаОтветGET /paid-options/:id/configs/:configId/statsURL ParametersПример запросаОтветСубконфиги платных опцийGET /paid-options/:id/configs/:configId/subconfigURL ParametersПример запросаОтветPOST /paid-options/:id/configs/:configId/subconfigURL ParametersRequest BodyПример запросаОтветPATCH /paid-options/:id/configs/:configId/subconfigURL ParametersRequest BodyПример запросаОтветDELETE /paid-options/:id/configs/:configId/subconfigURL ParametersПример запросаОтвет