StealthSurf VPNStealthSurf VPN
Доступные методыПрофиль

Конструктор подписок

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

Обзор

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


GET /profile/custom-subscriptions

Получить список пользовательских подписок.

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

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

curl -X GET "https://api.stealthsurf.app/profile/custom-subscriptions" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

{
  status: true,
  statusCode: 200,
  data: Array<{
    id: number
    title: string
    subscription_key: string
    items_count: number
  }>
}

GET /profile/custom-subscriptions/available-items

Получить доступные элементы для создания подписки.

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

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

curl -X GET "https://api.stealthsurf.app/profile/custom-subscriptions/available-items" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    configs: Array<{
      id: number
      title: string
      protocol: string
      location_emoji?: string
      expires_at: number
      is_online: boolean
      source: "user_config" | "cloud_server_config"
      cloud_server_id?: number
    }>
    paid_options: Array<{
      id: number
      title: string
      config_count: number
      configs: Array<{
        index: number
        original_title: string
        custom_title: string | null
      }>
    }>
  }
}

GET /profile/custom-subscriptions/:id

Получить детали пользовательской подписки.

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

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID подписки

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

curl -X GET "https://api.stealthsurf.app/profile/custom-subscriptions/123" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    id: number
    title: string
    subscription_key: string
    items_count: number
    items: Array<{
      id: number
      item_type: string
      item_reference_id: number
      item_index?: number | null
      resolved_title: string | null
      is_valid: boolean
    }>
  }
}

POST /profile/custom-subscriptions

Создать пользовательскую подписку.

Rate Limit: 3 req / 5 sec

Request Body

FieldTypeRequiredDescription
titlestringДаНазвание (1-64 символа)
itemsArrayДаЭлементы подписки (1-50)
items[].item_typestringДаuser_config | cloud_server_config | paid_option | paid_option_index
items[].item_reference_idnumberДаID элемента
items[].item_indexnumberНетИндекс для paid_option_index (0-20)

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

curl -X POST "https://api.stealthsurf.app/profile/custom-subscriptions" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Моя подписка",
    "items": [
      { "item_type": "user_config", "item_reference_id": 123 },
      { "item_type": "paid_option_index", "item_reference_id": 456, "item_index": 0 }
    ]
  }'

Ответ

{
  status: true,
  statusCode: 201,
  data: {
    id: number
    title: string
    subscription_key: string
    items_count: number
    items: Array<{
      id: number
      item_type: string
      item_reference_id: number
      item_index?: number | null
      resolved_title: string | null
      is_valid: boolean
    }>
  }
}

PATCH /profile/custom-subscriptions/:id/title

Обновить название подписки.

Rate Limit: 5 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID подписки

Request Body

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

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

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

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    id: number
    title: string
    subscription_key: string
    items_count: number
  }
}

PUT /profile/custom-subscriptions/:id/items

Заменить элементы подписки.

Rate Limit: 3 req / 2 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID подписки

Request Body

FieldTypeRequiredDescription
itemsArrayДаНовые элементы (1-50)

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

curl -X PUT "https://api.stealthsurf.app/profile/custom-subscriptions/123/items" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      { "item_type": "user_config", "item_reference_id": 789 }
    ]
  }'

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    id: number
    title: string
    subscription_key: string
    items_count: number
    items: Array<{...}>
  }
}

POST /profile/custom-subscriptions/:id/reset-key

Переиздать ключ подписки.

Rate Limit: 2 req / 10 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID подписки

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

curl -X POST "https://api.stealthsurf.app/profile/custom-subscriptions/123/reset-key" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

{
  status: true,
  statusCode: 201,
  data: {
    id: number
    title: string
    subscription_key: string    // Новый ключ
    items_count: number
  }
}

После переиздания ключа старый ключ перестанет работать. Убедитесь, что обновили ключ во всех приложениях.


DELETE /profile/custom-subscriptions/:id

Удалить подписку.

Rate Limit: 3 req / 2 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID подписки

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

curl -X DELETE "https://api.stealthsurf.app/profile/custom-subscriptions/123" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

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

Устройства подписки

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


GET /profile/custom-subscriptions/:id/devices

Получить список устройств подписки.

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

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID подписки

Query Parameters

ParameterTypeRequiredDescription
pagenumberНетНомер страницы (по умолчанию: 1)
limitnumberНетЗаписей на странице (1-100, по умолчанию: 20)

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

curl -X GET "https://api.stealthsurf.app/profile/custom-subscriptions/123/devices?page=1&limit=20" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    devices: Array<{
      id: number
      device_name: string
      device_type: string           // ios, android, windows, macos, linux
      device_model: string
      os_version: string
      is_blocked: boolean
      last_seen_at: number          // Unix timestamp
      created_at: number            // Unix timestamp
    }>
    total: number
    page: number
    limit: number
  }
}

GET /profile/custom-subscriptions/:id/devices/settings

Получить настройки устройств подписки.

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

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID подписки

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

curl -X GET "https://api.stealthsurf.app/profile/custom-subscriptions/123/devices/settings" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    block_unknown_devices: boolean
    device_limit: number            // 0 = безлимит
  }
}

PATCH /profile/custom-subscriptions/:id/devices/settings

Обновить настройки устройств подписки.

Rate Limit: 5 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID подписки

Request Body

FieldTypeRequiredDescription
block_unknown_devicesbooleanНетБлокировать неизвестные устройства
device_limitnumberНетЛимит устройств (0-100, 0 = безлимит)

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

curl -X PATCH "https://api.stealthsurf.app/profile/custom-subscriptions/123/devices/settings" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY" \
  -H "Content-Type: application/json" \
  -d '{
    "block_unknown_devices": false,
    "device_limit": 5
  }'

Ответ

Такой же как GET /profile/custom-subscriptions/:id/devices/settings.


PATCH /profile/custom-subscriptions/:id/devices/:deviceId/blocked

Заблокировать или разблокировать устройство.

Rate Limit: 5 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID подписки
deviceIdnumberДаID устройства

Request Body

FieldTypeRequiredDescription
is_blockedbooleanДаСтатус блокировки

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

curl -X PATCH "https://api.stealthsurf.app/profile/custom-subscriptions/123/devices/456/blocked" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY" \
  -H "Content-Type: application/json" \
  -d '{
    "is_blocked": true
  }'

Ответ

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

DELETE /profile/custom-subscriptions/:id/devices/:deviceId

Удалить устройство из подписки.

Rate Limit: 5 req / 1 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID подписки
deviceIdnumberДаID устройства

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

curl -X DELETE "https://api.stealthsurf.app/profile/custom-subscriptions/123/devices/456" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

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

DELETE /profile/custom-subscriptions/:id/devices

Удалить все устройства из подписки.

Rate Limit: 3 req / 2 sec

URL Parameters

ParameterTypeRequiredDescription
idnumberДаID подписки

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

curl -X DELETE "https://api.stealthsurf.app/profile/custom-subscriptions/123/devices" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    deleted_count: number  // Количество удалённых устройств
  }
}

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

Содержание