Сессия — Справочник API
Сессия панели управления: учетные данные, которые хранит браузер, и единственные, которые он когда-либо использует. API-ключ предназначен для машин и никогда не применяется в веб-страницах.
Вход выполняется в одно действие: страница получает челлендж (POST /v1/accounts/challenge), кошелек подписывает его — бесплатно, без транзакции, приватные ключи не покидают кошелек — и подпись передается в POST /v1/session, который устанавливает cookie с флагом httpOnly. Сессия сохраняется при перезагрузках и переходах, автоматически продлевается при использовании и восстанавливается в фоне через GET /v1/session.
Поскольку учетными данными является cookie, каждый небезопасный метод (мутирующий состояние) дополнительно требует заголовок X-CSRF-Token, значение которого берется из поля csrf_token ответа сессии. Сторонний сайт не имеет доступа к этому ответу и не может сформировать данный заголовок.
| Метод | Путь | Описание |
|---|---|---|
GET | /v1/session | Фоновое восстановление сессии |
POST | /v1/session | Вход в панель управления |
DELETE | /v1/session | Выход из системы |
POST | /v1/session/refresh | Продление сессии |
POST | /v1/session/revoke-all | Выход на всех устройствах |
GET | /v1/session/history | История недавних входов |
Сгенерировано из openapi.yaml во время сборки. Базовый URL https://api.tenergy.me/v1 или https://api-nile.tenergy.me/v1 в сети Nile (Окружения). Каждый запрос ниже подписывается в соответствии с разделом Аутентификация, если в строке Аутентификация не указано иное.
Фоновое восстановление сессии
GET /v1/session · getSession
Аутентификация: Cookie сессии панели управления + X-CSRF-Token.
Вызывается панелью управления при каждой загрузке страницы. Возвращает активную сессию или 1013 session_expired, если в браузере нет сессии — что не является ошибкой для пользователя, а лишь сигналом показать окно входа.
Ответы
| Статус | Значение |
|---|---|
200 | OK |
401 | 1013 session_expired — нет сессии, срок действия истек или был выполнен выход. |
500 | Ошибка на нашей стороне. |
Поля ответа (Session)
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
account_id | string | да | Для поля «ID аккаунта (для поддержки)». В интерфейсе его не нужно показывать где-либо еще — заголовком аккаунта служит display_name или сокращенный owner_address. |
account_status | enum: unfunded, active, suspended, closed | да | |
display_name | string | null | ||
owner_address | string | null | Кошелек-владелец аккаунта; вход с него восстанавливает доступ. | |
address | string | да | Адрес, с которого выполнен вход. Владелец или приглашенный участник. |
role | enum: owner, editor, viewer | null | да | Роль подписавшего в аккаунте. Она определяет доступные действия. |
network | enum: mainnet, nile | ||
csrf_token | string | да | Передавайте в заголовке X-CSRF-Token при каждом POST, PATCH и DELETE этой сессии. |
expires_at | string (date-time) | да | |
created_at | string (date-time) | ||
ttl_seconds | integer | Полное время жизни сессии в секундах, сбрасываемое при продлении. |
Вход в панель управления
POST /v1/session · createSession
Аутентификация: Публичный — учетные данные не требуются.
Проверяет челлендж, подписанный адресом TRON, и открывает сессию браузера, возвращаемую в виде httpOnly cookie. Если у адреса еще нет аккаунта на этой платформе, он создается автоматически со статусом status: unfunded (так же, как при вызове POST /v1/accounts), поэтому первый и повторные входы происходят одинаково.
Подписание челленджа бесплатно и не является транзакцией: средства не расходуются, приватные ключи не покидают кошелек.
Тело ответа содержит csrf_token. Передавайте его в заголовке X-CSRF-Token во всех последующих запросах POST, PATCH или DELETE, выполняемых в рамках этой сессии.
Тело запроса
JSON (SessionRequest), обязательно.
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
address | string | да | TRON-адрес Base58Check (начинается с T, 34 символа). |
nonce | string | да | Из вызова POST /v1/accounts/challenge. Одноразовый. |
signature | string | да | Подпись кошелька под message челленджа. |
Ответы
| Статус | Значение |
|---|---|
201 | Вход выполнен. Cookie сессии установлена. |
400 | Некорректный запрос — невалидный JSON, неизвестное поле или неверный тип. |
401 | 1010 challenge_invalid — неизвестный, истекший или повторно использованный nonce, либо подпись не соответствует адресу. |
429 | Слишком много запросов. |
500 | Ошибка на нашей стороне. |
Поля ответа (Session)
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
account_id | string | да | Для поля «ID аккаунта (для поддержки)». В интерфейсе его не нужно показывать где-либо еще — заголовком аккаунта служит display_name или сокращенный owner_address. |
account_status | enum: unfunded, active, suspended, closed | да | |
display_name | string | null | ||
owner_address | string | null | Кошелек-владелец аккаунта; вход с него восстанавливает доступ. | |
address | string | да | Адрес, с которого выполнен вход. Владелец или приглашенный участник. |
role | enum: owner, editor, viewer | null | да | Роль подписавшего в аккаунте. Она определяет доступные действия. |
network | enum: mainnet, nile | ||
csrf_token | string | да | Передавайте в заголовке X-CSRF-Token при каждом POST, PATCH и DELETE этой сессии. |
expires_at | string (date-time) | да | |
created_at | string (date-time) | ||
ttl_seconds | integer | Полное время жизни сессии в секундах, сбрасываемое при продлении. |
Выход из системы
DELETE /v1/session · deleteSession
Аутентификация: Cookie сессии панели управления + X-CSRF-Token.
Отзывает текущую сессию на сервере и удаляет cookie. Другие сессии того же аккаунта (в других браузерах или на других устройствах) остаются неизменными.
Ответы
| Статус | Значение |
|---|---|
204 | Выход выполнен. Тело ответа пустое. |
401 | Отсутствуют, некорректны или отклонены учетные данные. |
403 | 1014 csrf_token_invalid — заголовок X-CSRF-Token отсутствует или неверен. |
500 | Ошибка на нашей стороне. |
Продление сессии
POST /v1/session/refresh · refreshSession
Аутентификация: Cookie сессии панели управления + X-CSRF-Token.
Сдвигает время окончания срока действия и перевыпускает cookie с обновленным временем жизни. Сессия также обновляется автоматически при использовании; данный эндпоинт полезен для вкладок, остававшихся открытыми длительное время без запросов.
Ответы
| Статус | Значение |
|---|---|
200 | Продлена |
401 | Отсутствуют, некорректны или отклонены учетные данные. |
403 | 1014 csrf_token_invalid. |
500 | Ошибка на нашей стороне. |
Поля ответа (Session)
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
account_id | string | да | Для поля «ID аккаунта (для поддержки)». В интерфейсе его не нужно показывать где-либо еще — заголовком аккаунта служит display_name или сокращенный owner_address. |
account_status | enum: unfunded, active, suspended, closed | да | |
display_name | string | null | ||
owner_address | string | null | Кошелек-владелец аккаунта; вход с него восстанавливает доступ. | |
address | string | да | Адрес, с которого выполнен вход. Владелец или приглашенный участник. |
role | enum: owner, editor, viewer | null | да | Роль подписавшего в аккаунте. Она определяет доступные действия. |
network | enum: mainnet, nile | ||
csrf_token | string | да | Передавайте в заголовке X-CSRF-Token при каждом POST, PATCH и DELETE этой сессии. |
expires_at | string (date-time) | да | |
created_at | string (date-time) | ||
ttl_seconds | integer | Полное время жизни сессии в секундах, сбрасываемое при продлении. |
Выход на всех устройствах
POST /v1/session/revoke-all · revokeAllSessions
Аутентификация: Cookie сессии панели управления + X-CSRF-Token.
Отзывает все активные сессии авторизованного кошелька в данном аккаунте (на всех браузерах и устройствах, включая текущее) и удаляет cookie. Сессии других участников не затрагиваются. Создает запись в журнале аудита (session.revoke_all). Доступно только для сессии панели управления, роль участника viewer или выше; API-ключи отклоняются.
Ответы
| Статус | Значение |
|---|---|
204 | Выход выполнен на всех устройствах. Тело ответа пустое. |
401 | Отсутствуют, некорректны или отклонены учетные данные. |
403 | 1014 csrf_token_invalid. |
500 | Ошибка на нашей стороне. |
История недавних входов
GET /v1/session/history · getSessionHistory
Аутентификация: Cookie сессии панели управления + X-CSRF-Token.
Последние десять входов в панель управления авторизованного кошелька в данном аккаунте, начиная с самых новых: время, IP-адрес, адрес кошелька. Вход фиксируется при генерации сессии через POST /v1/session; запись истории ведется с 2026-09-25.
Входы других участников не отображаются в целях безопасности и конфиденциальности. Доступно только для сессии панели управления, роль участника viewer или выше.
Ответы
| Статус | Значение |
|---|---|
200 | OK |
401 | Отсутствуют, некорректны или отклонены учетные данные. |
500 | Ошибка на нашей стороне. |
Поля ответа
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
data | array of object (SignIn) | да | |
data[].signed_in_at | string (date-time) | да | |
data[].ip | string | null | да | |
data[].address | string | да | TRON-адрес Base58Check (начинается с T, 34 символа). |
Пример ответа 200 из контракта (значения приведены для иллюстрации):
{
"data": [
{
"signed_in_at": "2026-09-25T09:41:12.000Z",
"ip": "203.0.113.10",
"address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE"
}
]
}