Конструктор подписок
Методы для управления пользовательскими подписками: создание, изменение, удаление.
Обзор
Модуль для работы с пользовательскими подписками. Позволяет создавать, редактировать и управлять кастомными подписками.
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
| Parameter | Type | Required | Description |
|---|---|---|---|
id | number | Да | 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
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Да | Название (1-64 символа) |
items | Array | Да | Элементы подписки (1-50) |
items[].item_type | string | Да | user_config | cloud_server_config | paid_option | paid_option_index |
items[].item_reference_id | number | Да | ID элемента |
items[].item_index | number | Нет | Индекс для 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
| Parameter | Type | Required | Description |
|---|---|---|---|
id | number | Да | ID подписки |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Да | Новое название (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
| Parameter | Type | Required | Description |
|---|---|---|---|
id | number | Да | ID подписки |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
items | Array | Да | Новые элементы (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
| Parameter | Type | Required | Description |
|---|---|---|---|
id | number | Да | 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
| Parameter | Type | Required | Description |
|---|---|---|---|
id | number | Да | 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
| Parameter | Type | Required | Description |
|---|---|---|---|
id | number | Да | ID подписки |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
page | number | Нет | Номер страницы (по умолчанию: 1) |
limit | number | Нет | Записей на странице (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
| Parameter | Type | Required | Description |
|---|---|---|---|
id | number | Да | 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
| Parameter | Type | Required | Description |
|---|---|---|---|
id | number | Да | ID подписки |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
block_unknown_devices | boolean | Нет | Блокировать неизвестные устройства |
device_limit | number | Нет | Лимит устройств (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
| Parameter | Type | Required | Description |
|---|---|---|---|
id | number | Да | ID подписки |
deviceId | number | Да | ID устройства |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
is_blocked | boolean | Да | Статус блокировки |
Пример запроса
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
| Parameter | Type | Required | Description |
|---|---|---|---|
id | number | Да | ID подписки |
deviceId | number | Да | 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
| Parameter | Type | Required | Description |
|---|---|---|---|
id | number | Да | 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 // Количество удалённых устройств
}
}Помогла ли вам эта статья?