Skip to content
Translated page. The English version is the source of truth.

POST /apiv2/subusergen

Создать нового SUB-пользователя (субаккаунт), привязанного к вашему основному аккаунту. У SUB-пользователей есть собственный API-ключ, адрес для депозита и отдельный баланс для независимых операций с Energy.

URL эндпоинта

POST https://netts.io/apiv2/subusergen

Заголовки запроса

ЗаголовокОбязательныйОписание
Content-TypeДаapplication/json
X-API-KEYДаВаш API-ключ из панели управления Netts
X-Real-IPДаIP-адрес из вашего белого списка

Тело запроса

json
{}

Параметры не требуются. SUB-пользователь автоматически привязывается к аккаунту, идентифицированному по API-ключу.

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

cURL

bash
curl -X POST https://netts.io/apiv2/subusergen \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: your_api_key" \
  -H "X-Real-IP: your_whitelisted_ip" \
  -d '{}'

Python

python
import requests

url = "https://netts.io/apiv2/subusergen"
headers = {
    "Content-Type": "application/json",
    "X-API-KEY": "your_api_key",
    "X-Real-IP": "your_whitelisted_ip"
}

response = requests.post(url, headers=headers, json={})
data = response.json()

if response.status_code == 200:
    print(f"SUB User ID: {data['user_id']}")
    print(f"Google ID: {data['google_id']}")
    print(f"Email: {data['email']}")
    print(f"Deposit Address: {data['deposit_address']}")
    print(f"API Key: {data['api_key']}")
    print(f"Referral Code: {data['referral_code']}")
    print(f"Parent User ID: {data['referrer_user_id']}")
else:
    print(f"Error: {data.get('detail', 'Unknown error')}")

Node.js

javascript
const axios = require('axios');

async function createSubUser(apiKey, whitelistedIp) {
    const url = 'https://netts.io/apiv2/subusergen';

    const response = await axios.post(url, {}, {
        headers: {
            'Content-Type': 'application/json',
            'X-API-KEY': apiKey,
            'X-Real-IP': whitelistedIp
        },
        timeout: 30000
    });

    const data = response.data;
    console.log(`SUB User ID: ${data.user_id}`);
    console.log(`API Key: ${data.api_key}`);
    console.log(`Deposit Address: ${data.deposit_address}`);
    return data;
}

// Usage
createSubUser('your_api_key', 'your_whitelisted_ip')
    .then(result => console.log('Created:', result))
    .catch(err => console.error('Error:', err.response?.data || err.message));

PHP

php
<?php
$url = 'https://netts.io/apiv2/subusergen';

$options = [
    'http' => [
        'header' => implode("\r\n", [
            "Content-Type: application/json",
            "X-API-KEY: your_api_key",
            "X-Real-IP: your_whitelisted_ip"
        ]),
        'method' => 'POST',
        'content' => '{}',
        'timeout' => 30
    ]
];

$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
$data = json_decode($response, true);

echo "SUB User ID: {$data['user_id']}\n";
echo "API Key: {$data['api_key']}\n";
echo "Deposit Address: {$data['deposit_address']}\n";
?>

Ответ

Успешный ответ (200 OK)

json
{
    "user_id": 1379,
    "google_id": "SUB123456789012345678",
    "email": "[email protected]",
    "name": "SUB123456789012345678",
    "deposit_address": "TExampleAddress1234567890123456789",
    "api_key": "mock1234567890abcdef1234567890ab",
    "referral_code": "A2B4K9",
    "created_at": "2026-03-14T12:00:00",
    "referrer_user_id": 42,
    "comment": "SUB user linked to main user (referrer_user_id). Google ID, Email and Name are mock data (not real) that can be updated via separate endpoint. For API services usage, requests must include this SUB user's API key and IP from main user's whitelist. Calculations use SUB user's balance. Generated deposit address is not active."
}

Поля ответа

ПолеТипОписание
user_idintegerУникальный ID созданного SUB-пользователя
google_idstringФиктивный идентификатор (формат: SUB + 18 цифр). Не является реальным Google-аккаунтом — используется только для внутренней идентификации SUB-пользователя
emailstringФиктивный email (google_id + @gmail.com). Не является реальным адресом электронной почты — используется только для внутренней идентификации
namestringОтображаемое имя (по умолчанию google_id). Может быть изменено в панели управления
deposit_addressstringСгенерированный адрес депозита TRON (по умолчанию не активен)
api_keystringAPI-ключ для SUB-пользователя (префикс: mock)
referral_codestringСгенерированный реферальный код (6 символов)
created_atstringВременная метка создания в формате ISO 8601
referrer_user_idintegerID родительского пользователя (аккаунт, создавший этого SUB-пользователя)
commentstringИнструкции по использованию и примечания

Фиктивные данные Google

Поля google_id, email и name содержат фиктивные данные — они не являются реальными аккаунтами Google или адресами электронной почты. Эти поля существуют исключительно для внутренней идентификации SUB-пользователя в системе. Имя и тег SUB-пользователя можно изменить в панели управления.

Как работают SUB-пользователи

Ключевые концепции

  • Отдельный баланс: у каждого SUB-пользователя собственный баланс TRX, независимый от родительского
  • Общий белый список IP: запросы к API от имени SUB-пользователя проверяются по белому списку IP родительского аккаунта
  • Собственный API-ключ: каждый SUB-пользователь получает уникальный API-ключ для аутентификации
  • Привязка к родительскому аккаунту: SUB-пользователь навсегда привязан к создавшему его аккаунту через реферальную систему
  • Все эндпоинты API: SUB-пользователи могут использовать все эндпоинты API (order1h, time/order и т. д.) со своим собственным API-ключом и балансом

Порядок использования

  1. Создайте SUB-пользователя с помощью этого эндпоинта
  2. Пополните баланс SUB-пользователя, отправив TRX на его адрес депозита или переведя средства с баланса
  3. Используйте API-ключ SUB-пользователя в последующих запросах к API (order1h, time/order и т. д.)
  4. Отслеживайте состояние через эндпоинт userinfo с использованием API-ключа SUB-пользователя

Ответы с ошибками

Ошибка аутентификации (401)

json
{
    "detail": "X-API-KEY header required"
}

Доступ запрещен (403)

json
{
    "detail": "Invalid API key or IP not whitelisted"
}

Ошибка валидации (422)

json
{
    "detail": [...],
    "body": {...}
}

Внутренняя ошибка сервера (500)

json
{
    "detail": "Failed to create mock user: ..."
}

Справочник кодов ошибок

HTTP-статусОписание
200SUB-пользователь успешно создан
401Отсутствует заголовок с API-ключом
403Неверный API-ключ или IP отсутствует в белом списке
422Ошибка валидации запроса
500Внутренняя ошибка сервера

Примечания

  • Требуется пустое тело запроса {} (Content-Type должен быть application/json)
  • Сгенерированный адрес депозита по умолчанию не активен
  • Поля SUB-пользователя google_id и email содержат фиктивные данные (не реальные Google-аккаунты) и используются только для внутренней идентификации
  • Имя и тег SUB-пользователя можно изменить в панели управления
  • API-ключ SUB-пользователя начинается с префикса mock
  • Для проверки белого списка IP используется белый список родительского пользователя
  • Каждый SUB-пользователь имеет собственный баланс, отдельный от родительского
  • SUB-пользователей можно удалить через эндпоинт DELETE /apiv2/subuserdel
  • Адрес депозита можно сменить через эндпоинт POST /apiv2/address/rotate