Профиль
Методы для получения данных профиля пользователя.
Обзор
Модуль для получения данных профиля текущего пользователя.
GET /profile
Получить данные профиля пользователя.
Rate Limit: глобальный (60 req/min)
Пример запроса
curl -X GET "https://api.stealthsurf.net/profile" \
-H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"Ответ
{
status: true,
statusCode: 200,
data: {
id: number
email: string | null
uuid: string | null
subscription_key: string | null
sign_in_method: string // google | telegram | vk | authCode | signIn
referral_balance: number // Реферальный баланс в рублях
balance: number // Баланс аккаунта в рублях
referrals_count: number
is_telegram_connected: boolean
referral_code: string
onboarding_completed: boolean
developer_mode: boolean
partner_mode: boolean
is_verified: boolean
pricing_rules?: Array<{ // Персональные скидки/наценки (если есть)
type: string // Тип продукта: all | config | configs | cloud_server | cloud_servers | paid_option | paid_options
product_title: string // Название продукта на русском
percent: number // Процент скидки/наценки (отрицательный = скидка, положительный = наценка)
comment: string | null // Комментарий к правилу
}>
linked_providers?: Array<{ // Привязанные провайдеры входа (если есть)
id: number
provider: string // google | telegram | vk | etc.
provider_display: string // Отображаемое значение (например, замаскированный email)
is_primary: boolean // Основной способ входа
linked_at: number // Unix timestamp привязки
}>
}
}Пример ответа
{
"status": true,
"statusCode": 200,
"data": {
"id": 12345,
"email": "user@example.com",
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"subscription_key": "abc123def456",
"sign_in_method": "telegram",
"referral_balance": 1590,
"balance": 1000,
"referrals_count": 5,
"is_telegram_connected": true,
"referral_code": "MYREF123",
"onboarding_completed": true,
"developer_mode": false,
"partner_mode": false,
"is_verified": false,
"pricing_rules": [
{
"type": "all",
"product_title": "Все услуги",
"percent": -15,
"comment": "VIP скидка"
}
],
"linked_providers": [
{
"id": 1,
"provider": "google",
"provider_display": "t***@example.com",
"is_primary": true,
"linked_at": 1716153600
}
]
}
}Реферальный баланс указан в рублях. Поле pricing_rules присутствует только если у пользователя есть персональные скидки или наценки. Поле linked_providers также присутствует только при наличии привязанных провайдеров входа.
Ошибки
| errorCode | message | Когда |
|---|---|---|
| 0 | access denied | Нет доступа / неверный токен |
| 2 | user not found | Пользователь не найден |
GET /profile/notification-settings
Получить настройки уведомлений.
Rate Limit: глобальный (60 req/min)
Пример запроса
curl -X GET "https://api.stealthsurf.net/profile/notification-settings" \
-H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"Ответ
{
status: true,
statusCode: 200,
data: {
renewal_reminders: boolean // Напоминания о продлении (по умолчанию true)
notification_start_hour: number // Начало времени уведомлений (0-23, по умолчанию 10)
notification_end_hour: number // Конец времени уведомлений (0-23, по умолчанию 22)
timezone_offset: number // Смещение часового пояса в минутах (по умолчанию 180)
}
}Ошибки
| errorCode | message | Когда |
|---|---|---|
| 2 | user not found | Пользователь не найден |
PATCH /profile/notification-settings
Обновить настройки уведомлений.
Rate Limit: 5 req/min
Request Body
| Field | Type | Required | Validation | Description |
|---|---|---|---|---|
renewal_reminders | boolean | Нет | @IsBoolean | Напоминания о продлении |
notification_start_hour | number | Нет | @IsInt @Min(0) @Max(23) | Начало времени уведомлений (0-23) |
notification_end_hour | number | Нет | @IsInt @Min(0) @Max(23) | Конец времени уведомлений (0-23) |
timezone_offset | number | Нет | @IsInt @Min(-720) @Max(840) | Смещение часового пояса (-720 до 840) |
Пример запроса
curl -X PATCH "https://api.stealthsurf.net/profile/notification-settings" \
-H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY" \
-H "Content-Type: application/json" \
-d '{
"renewal_reminders": true,
"notification_start_hour": 10,
"notification_end_hour": 22,
"timezone_offset": 180
}'Ответ
Такой же как GET /profile/notification-settings.
Ошибки
| errorCode | message | Когда |
|---|---|---|
| 2 | user not found | Пользователь не найден |
PATCH /profile/subscriptionLink
Перегенерировать ссылку подписки.
Rate Limit: 2 req/min
Пример запроса
curl -X PATCH "https://api.stealthsurf.net/profile/subscriptionLink" \
-H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"Ответ
{
status: true,
statusCode: 200,
data: string // Новый subscription_key (32 символа)
}Ошибки
| errorCode | message | Когда |
|---|---|---|
| 3 | bad request | Неверный запрос |
При перегенерации ссылки подписки все привязанные устройства будут удалены, а доступ Remnawave будет отозван.
Помогла ли вам эта статья?