• Как устроено
  • Быстрый старт
  • Доступ и токен
    • Страницы
      • Frontmatter
      • Синтаксис markdown
      • Переводы страниц
    • Фреймы
      • Вставки onpress/
      • Бинды data-op-bind
      • Сборка и копии
    • Готовые фреймы
      • assistant
      • outline
      • faq
      • article
      • docs
      • site__header
      • site__footer
      • article__faq
      • landing
      • assistant__chat
      • site__404
      • news
      • news__category
      • news__post
      • news__more
      • news__share
      • author__page
      • author__byline
      • author__card
      • author__avatar
      • author__socials
      • author__head
      • home
      • pricing
    • Данные
      • Повторитель onpress/repeat
  • Стили
  • Меню
  • Сайдбар документации
  • Языки сайта
  • Настройки и кэш
  • SEO
  • Медиа
  • Сайты и домены
  • Пользователи и профиль
  • Дашборд и вход
    • Рецепты
      • Сайт с нуля
      • Раздел документации
      • Лендинг
      • FAQ
      • Свой фрейм из готового
      • Многоязычный сайт
      • Поменять меню
      • Перенести страницу
      • Картинки в статье
      • Список из данных
      • Сменить оформление
    • Справочник API
      • Страницы
      • Переводы
      • Фреймы
      • Данные
      • Меню
      • Сайдбар документации
      • Стили
      • Настройки, главная, кэш
      • Языки
      • SEO
      • Медиа
      • Сайты
      • Пользователи и профиль
      • Вход и служебное
    • Ошибки и проблемы
      • Коды ошибок
OnPress OnPress
  • Документация
  • Контакты
Войти
  • Как устроено
  • Быстрый старт
  • Доступ и токен
    • Страницы
      • Frontmatter
      • Синтаксис markdown
      • Переводы страниц
    • Фреймы
      • Вставки onpress/
      • Бинды data-op-bind
      • Сборка и копии
    • Готовые фреймы
      • assistant
      • outline
      • faq
      • article
      • docs
      • site__header
      • site__footer
      • article__faq
      • landing
      • assistant__chat
      • site__404
      • news
      • news__category
      • news__post
      • news__more
      • news__share
      • author__page
      • author__byline
      • author__card
      • author__avatar
      • author__socials
      • author__head
      • home
      • pricing
    • Данные
      • Повторитель onpress/repeat
  • Стили
  • Меню
  • Сайдбар документации
  • Языки сайта
  • Настройки и кэш
  • SEO
  • Медиа
  • Сайты и домены
  • Пользователи и профиль
  • Дашборд и вход
    • Рецепты
      • Сайт с нуля
      • Раздел документации
      • Лендинг
      • FAQ
      • Свой фрейм из готового
      • Многоязычный сайт
      • Поменять меню
      • Перенести страницу
      • Картинки в статье
      • Список из данных
      • Сменить оформление
    • Справочник API
      • Страницы
      • Переводы
      • Фреймы
      • Данные
      • Меню
      • Сайдбар документации
      • Стили
      • Настройки, главная, кэш
      • Языки
      • SEO
      • Медиа
      • Сайты
      • Пользователи и профиль
      • Вход и служебное
    • Ошибки и проблемы
      • Коды ошибок
Документация OnPress v2
Markdown
Открыть в ИИ
  • Открыть в ChatGPT
  • Открыть в Claude
  • Открыть в Gemini
  • Открыть в Perplexity
  • Открыть в Grok
  • Открыть в DeepSeek

Пользователи и профиль

В v2 у сайта одна роль — администратор этого сайта. Добавить человека на сайт — значит сделать его администратором; ролей «редактор» или «читатель» в API нет. Суперадмин сети отличается охватом (видит все сайты и делает сетевые операции), а не правами на сайте.

Пользователи сайта

Ручки под $API/site/$SITE/users; доступны администратору этого сайта и суперадмину.

Список

curl -s -H "Authorization: Bearer $OP_TOKEN" "$API/site/$SITE/users" | jq '{total, users: [.users[] | {id, invite_id, email, name, status, added_at, last_login_at}]}'
{
  "total": 2,
  "users": [
    { "id": 42, "invite_id": null, "email": "anna@example.com", "name": "Anna", "status": "active", "added_at": "2026-09-22T18:14:41.000Z", "last_login_at": "2026-09-25T09:02:10.000Z" },
    { "id": null, "invite_id": 12, "email": "new@example.com", "name": "Новый человек", "status": "invited", "added_at": "2026-09-25T20:25:37.000Z", "last_login_at": null }
  ]
}

Строка двух видов, форма одна:

ПолеСмысл
statusactive — человек сети, состоящий на сайте; invited — приглашённая почта, учётной записи ещё нет
idid пользователя; у приглашения null
invite_idid приглашения; у человека null
email, name, avatarпочта, отображаемое имя, аватар Gravatar
is_super_adminсуперадмин сети
added_atкогда добавлен на сайт (у давних — дата регистрации), у приглашения — когда приглашён
last_login_atпоследний вход; отсчёт начат 22.09.2026, у входивших раньше null
invited_byкто пригласил (у приглашения)

Сначала идут участники, затем приглашения. Суперадмин, которого не добавляли на сайт, в списке не появляется: доступ у него есть, но участником сайта он не является.

Добавить

curl -s -X POST "$API/site/$SITE/users" \
  -H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
  -d '{"email": "new@example.com", "name": "Новый человек"}' | jq '{user: .user | {id, invite_id, status}, created, invited, already_member}'
{ "user": { "id": null, "invite_id": 12, "status": "invited" }, "created": true, "invited": true, "already_member": false }

Два исхода:

  • почта уже есть в сети — человек сразу становится администратором сайта: created: false, invited: false, в user его карточка;
  • почты в сети нет — создаётся только приглашение (201, created: true, invited: true). Ни учётной записи, ни пароля, ни письма. Как только человек войдёт с этой почтой любым способом (дашборд через Firebase, форма входа, регистрация), он получит роль администратора на всех пригласивших его сайтах, а приглашения закроются сами.

Письмо платформа не шлёт — сообщите человеку адрес дашборда сами: https://onpress.pro/dashboard/.

Отказы: 400 invalid_email (не адрес, длиннее 100 символов или запрещённый домен), 400 invalid_name, 409 already_member, 409 already_invited (в теле — карточка).

Снять с сайта

curl -s -X DELETE "$API/site/$SITE/users/42"       -H "Authorization: Bearer $OP_TOKEN" | jq .removed   # человек
curl -s -X DELETE "$API/site/$SITE/users/invite-12" -H "Authorization: Bearer $OP_TOKEN" | jq .removed   # приглашение

Человек снимается с сайта, но не удаляется из сети — он может состоять на других сайтах. Запреты: себя снять нельзя (409 cannot_remove_self), последнего администратора — нельзя (409 last_admin), суперадмина может снять только суперадмин (403 insufficient_role). Нет такого — 404 not_member или 404 invite_not_found; путь не id и не invite-<id> — 400 invalid_user_id.

Свой профиль

/me — сетевые ручки: префикса сайта нет, blog_id и заголовки выбора сайта не читаются. Каждый видит и правит только себя. Работают и с токеном, и с сессией дашборда.

curl -s -H "Authorization: Bearer $OP_TOKEN" "$API/me" | jq .
{
  "success": true,
  "user": {
    "id": 42,
    "name": "Anna",
    "email": "anna@example.com",
    "avatar": "https://secure.gravatar.com/avatar/…?s=96&d=mm&r=g",
    "is_super_admin": false,
    "registered": "2025-03-01T10:00:00.000Z",
    "last_login_at": "2026-09-25T09:02:10.000Z",
    "dashboard_lang": "ru"
  },
  "sites_count": 3,
  "api_token": { "prefix": "op_xxxxxxxx", "created_at": "2026-09-16T13:04:25.000Z", "last_used_at": "2026-09-25T20:11:36.000Z" }
}

sites_count — сколько живых сайтов вы администрируете (у суперадмина — вся сеть). api_token — только префикс и даты, сам токен здесь не бывает никогда; null — токена нет.

Изменить

curl -s -X PATCH "$API/me" \
  -H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
  -d '{"name": "Анна", "dashboard_lang": "ru"}' | jq .user
ПолеПравило
nameотображаемое имя, не пустое, до 250 символов
emailадрес, свободный во всей сети (409 email_taken); меняется сразу, без письма-подтверждения
dashboard_langязык интерфейса дашборда: en или ru; "" — сбросить выбор (дашборд снова угадывает по браузеру). Это не язык сайта и не язык содержимого

Пустое тело — 400 nothing_to_update. Ответ — тот же вид, что у GET /me. Пароля в профиле нет: вход идёт через Firebase. Аватар — Gravatar по почте, своей загрузки нет.

Токен

# выпустить заново — единственный раз, когда токен виден
curl -s -X POST "$API/me/api-token" -H "Authorization: Bearer $OP_TOKEN" | jq '{prefix: .api_token.prefix, token}'

# отозвать
curl -s -X DELETE "$API/me/api-token" -H "Authorization: Bearer $OP_TOKEN" | jq '{revoked, api_token}'

Перевыпуск убивает прежний токен сразу, отзыв оставляет без токена (revoked: true, если было что отзывать). В дашборде то же самое: меню пользователя → «Настройки» → «API-ключи» (https://onpress.pro/dashboard/settings/api), блоки «Токен API» и «Отзыв токена». Подробно про свойства токена — доступ.

arrow_backНазад
Сайты и домены
Далееarrow_forward
Дашборд и вход
На этой странице
  • Пользователи сайта
    • Список
      • Добавить
        • Снять с сайта
      • Свой профиль
        • Изменить
          • Токен
        OnPress
        OnPress
        ИП Зуев И.В. ИНН: 360408359441
        © 2026
        политика конфиденциальности публичная оферта
        • visa
        • mastercard
        • sber
        • tpay