API управления

Аккаунт и сессии

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

На этой странице · 7

Единственный домен, где два способа входа отличаются не только удобством: у серверного ключа своей сессии нет, поэтому смена пароля из скрипта гасит вообще все сессии кабинета, а из браузера — все, кроме своей.

GET /account

Владелец ключа или сессии, которой пришёл запрос. Область: account:read.

curl -s "$STEND/api/v1/account" -H "Authorization: Bearer $STEND_KEY"
{
  "id": "cmtt67iv2000053m3t7mn1qu8",
  "login": "demo",
  "email": "demo@apistend.ru",
  "name": "Игорь Герасимов",
  "initials": "ИГ",
  "planLabel": "Бесплатный доступ",
  "createdAt": "2026-09-08T21:17:25.694Z",
  "sandboxCount": 1,
  "access": {
    "via": "key",
    "apiKeyId": "cmtt67iwi000753m3a3omagx3",
    "scopes": [],
    "defaultSandboxId": "cmtt67ivj000153m3oir9dc6f"
  }
}

Блок access — самое полезное здесь для скрипта: scopes: [] означает полный доступ, defaultSandboxId — песочницу, которая подставится без ?sandboxId=.

PATCH /account

Область: account:write. Меняет name, initials, login, email.

Имя, инициалы и почту можно менять без подтверждения: почта — способ связи, вход по ней не идёт, а email: null её стирает. Смена ЛОГИНА требует поля currentPassword: логин — это вход, и подменивший его получает аккаунт целиком. Тот же логин, что уже стоит у аккаунта, сменой не считается. Сессии и ключи после смены логина продолжают работать: он не участвует в проверке ни того, ни другого.

curl -s -X PATCH "$STEND/api/v1/account" \
  -H "Authorization: Bearer $STEND_KEY" -H 'Content-Type: application/json' \
  -d '{"name":"Игорь Герасимов","initials":"ИГ"}'

Занятый логин отвечает 409 — как и почта, уже указанная в другом аккаунте.

POST /account/password

Область: account:write. Тело — currentPassword и newPassword.

Требует текущего пароля: одной украденной cookie или одного ключа не должно хватать, чтобы отобрать аккаунт. После смены гаснут остальные сессии — ровно ради этого пароль обычно и меняют.

Ответ

ПолеЧто означает
okпароль изменён
sessionsRevokedсколько сессий кабинета погашено
currentSessionKeptосталась ли своя сессия — по ключу всегда false

По серверному ключу своей сессии нет, и гаснут все, включая браузер владельца. Ключи доступа смена пароля не трогает: это отдельные секреты, они отзываются через /keys.

GET /account/sessions

Область: account:read. Входы в кабинет, свежие сверху; просроченные не показываются. Ключи сюда не попадают — их список отдаёт /keys.

curl -s "$STEND/api/v1/account/sessions?limit=2" -H "Authorization: Bearer $STEND_KEY"
{
  "items": [
    {
      "id": "cmttxzbtn000f7am3ifnc4ujd",
      "device": "скрипт",
      "userAgent": "curl/8.7.1",
      "ip": "127.0.0.1",
      "createdAt": "2026-09-09T10:14:52.571Z",
      "expiresAt": "2026-09-23T10:14:52.571Z",
      "current": false
    }
  ],
  "nextCursor": null
}

device — короткая узнаваемая подпись («Chrome на macOS»), собранная из User-Agent без библиотеки; неизвестное остаётся null, а не превращается в «Другое устройство». Флаг current стоит у сессии, которой пришёл запрос; при входе по ключу он не стоит ни у одной.

DELETE /account/sessions/{id}

Область: account:write. Сессия перестаёт работать сразу: токен проверяется по записи в базе, а не только по подписи.

Ответ — { ok, id, wasCurrent }. Погасить можно и текущую — это выход из кабинета: cookie в ответе очищается, следующий запрос по ней получит 401. Чужой или уже погашенный идентификатор — 404.

POST /account/sessions/revoke-all

Область: account:write. Аварийная кнопка на случай украденного ноутбука.

Ответ — { ok, revoked, currentSessionKept }, где revoked — число погашенных сессий. Своя сессия остаётся, чтобы не выкидывать из кабинета того, кто нажал кнопку. По серверному ключу своей сессии нет — тогда гаснут все. Пароль при этом не меняется: если скомпрометирован он, начинать надо с POST /account/password, который гасит сессии сам.

DELETE /account

Область: account:write.

Восстановления нет

Вместе с аккаунтом каскадом уходят все песочницы, а с ними ключи, журнал запросов, вебхуки и доставки, сценарии, серии событий, свои моки, локальные приложения Bitrix24 и изменения поверх демо-данных. Копий данных мы не храним. Тот же адрес почты после удаления можно зарегистрировать заново — это будет пустой аккаунт.

Подтверждение — точный логин удаляемого аккаунта в поле login. При входе по cookie-сессии дополнительно требуется password: оставленный без присмотра браузер не должен уметь стереть аккаунт одним запросом. По серверному ключу пароль не нужен — сам ключ уже даёт полный доступ.

curl -s -X DELETE "$STEND/api/v1/account" \
  -H "Authorization: Bearer $STEND_KEY" -H 'Content-Type: application/json' \
  -d '{"login":"demo"}'

Ответ — сводка того, что именно и в каком количестве исчезло: ok, deletedAt, account с идентификатором и почтой, stoppedBursts и объект removed со счётчиками sandboxes, apiKeys, requestLogs, webhooks, webhookDeliveries, scenarios, eventBursts, customMocks, sandboxOverlays, b24Apps, sessions.